{"version":3,"file":"vendor.1c76274b29326e0a.js","mappings":"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IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;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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,MAAMu+c,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,SAASC,OAAT,CAAiBrnjB,IAAjB,EAAuBsnjB,WAAvB,EAAoC;EAChC,OAAO;IAAEh1jB,IAAI,EAAE;IAAE;IAAV;IAA+C0N,IAA/C;IAAqDsnjB,WAArD;IAAkEz3jB,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,SAAS4jN,OAAT,CAAiB8zW,OAAjB,EAA0B3ojB,MAAM,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEtM,IAAI,EAAE;IAAE;IAAV;IAA+CsM,MAA/C;IAAuD2ojB;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,SAASlxgB,KAAT,CAAemxgB,KAAf,EAAsB33jB,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAA6Ck1jB,KAA7C;IAAoD33jB;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,SAASmhP,QAAT,CAAkBw2U,KAAlB,EAAyB33jB,OAAO,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAAgDk1jB,KAAhD;IAAuD33jB;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,SAAS8Z,KAAT,CAAe89iB,MAAf,EAAuB;EACnB,OAAO;IAAEn1jB,IAAI,EAAE;IAAE;IAAV;IAA6CsM,MAAM,EAAE6ojB,MAArD;IAA6Dz7iB,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,SAAS1N,KAAT,CAAe0B,IAAf,EAAqBpB,MAArB,EAA6B/O,OAA7B,EAAsC;EAClC,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAA6C0N,IAA7C;IAAmDpB,MAAnD;IAA2D/O;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,SAAS63jB,SAAT,CAAmBF,KAAnB,EAA0B;EACtB,OAAO;IAAEl1jB,IAAI,EAAE;IAAE;IAAV;IAAiDk1jB;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,SAASnwX,UAAT,CAAoBswX,eAApB,EAAqCH,KAArC,EAA4C33jB,OAAO,GAAG,IAAtD,EAA4D;EACxD,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAAkDs1jB,IAAI,EAAED,eAAxD;IAAyEE,SAAS,EAAEL,KAApF;IAA2F33jB;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,SAASg4jB,SAAT,CAAmBL,KAAnB,EAA0B33jB,OAAO,GAAG,IAApC,EAA0C;EACtC,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAAiDu1jB,SAAS,EAAEL,KAA5D;IAAmE33jB;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASi4jB,YAAT,CAAsBj4jB,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEyC,IAAI,EAAE;IAAE;IAAV;IAAoDzC;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASk4jB,YAAT,CAAsBF,SAAtB,EAAiCh4jB,OAAO,GAAG,IAA3C,EAAiD;EAC7C,OAAO;IAAEyC,IAAI,EAAE;IAAG;IAAX;IAAmDu1jB,SAAnD;IAA8Dh4jB;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,SAASm4jB,KAAT,CAAepuiB,QAAf,EAAyBiuiB,SAAzB,EAAoCh4jB,OAAO,GAAG,IAA9C,EAAoD;EAChD,OAAO;IAAEyC,IAAI,EAAE;IAAG;IAAX;IAA8CsnB,QAA9C;IAAwDiuiB,SAAxD;IAAmEh4jB;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;A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AAIkxB,MAAM,KAAKg6iB,YAAY,CAACmC,eAA5B,EAA6C;MACzC,OAAO99mB,IAAI,CAACq2mB,4EAAD,CAAJ,CAAqCsF,YAAY,CAACoC,OAAlD,CAAP;IACH,CAFD,MAGK,IAAIp8iB,MAAM,KAAKg6iB,YAAY,CAACqC,aAA5B,EAA2C;MAC5C,OAAOh+mB,IAAI,CAACq2mB,4EAAD,CAAJ,CAAqCsF,YAAY,CAAC54O,KAAlD,CAAP;IACH;EACJ;;EACD,OAAOtyV,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,SAASwtkB,qBAAT,CAA+BtlP,MAA/B,EAAuC/3X,IAAvC,EAA6C;EACzC,MAAMZ,IAAI,GAAGo2mB,iEAAe,CAACz9O,MAAD,CAA5B;EACA,OAAO34X,IAAI,CAACq2mB,4EAAD,CAAJ,CAAqCz1mB,IAArC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu9mB,uBAAT,CAAiCxlP,MAAjC,EAAyC;EACrC,MAAM34X,IAAI,GAAGo2mB,iEAAe,CAACz9O,MAAD,CAA5B;EACA,OAAO34X,IAAI,CAACq2mB,6EAAD,CAAJ,IAAyC,IAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgI,qBAAT,CAA+B1lP,MAA/B,EAAuC;EACnC,MAAM34X,IAAI,GAAGo2mB,iEAAe,CAACz9O,MAAD,CAA5B;EACA,OAAO34X,IAAI,CAACq2mB,2EAAD,CAAJ,IAAuC,IAA9C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkI,qBAAT,CAA+B5lP,MAA/B,EAAuC;EACnC,OAAO29O,wEAAsB,CAAC39O,MAAD,CAA7B;AACH;AACD;AACA;AACA;AACA;AACA;AA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A5B,EAAmC;IAC1C,KAAKi4iB,SAAL,GAAiBA,SAAjB;IACA,KAAKukC,OAAL,GAAeA,OAAf;IACA,KAAKhtnB,KAAL,GAAaA,KAAb;IACA,KAAKwwC,KAAL,GAAaA,KAAb;EACH;;EACQ,IAALroB,KAAK,GAAG;IACR,OAAO,KAAKnoB,KAAL,KAAe,CAAtB;EACH;;EACO,IAAJvB,IAAI,GAAG;IACP,OAAO,KAAKuB,KAAL,KAAe,KAAKwwC,KAAL,GAAa,CAAnC;EACH;;EACO,IAAJw5T,IAAI,GAAG;IACP,OAAO,KAAKhqW,KAAL,GAAa,CAAb,KAAmB,CAA1B;EACH;;EACM,IAAHu2mB,GAAG,GAAG;IACN,OAAO,CAAC,KAAKvsQ,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,MAAMijR,OAAN,CAAc;EACVnvnB,WAAW,CAACovnB,cAAD,EAAiBvY,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKsY,cAAL,GAAsBA,cAAtB;IACA,KAAKvY,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKuY,QAAL,GAAgB,IAAhB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKlY,OAAL,GAAe,IAAf;EACH;EACD;AACJ;AACA;AACA;;;EAC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AI,EAAEgmB,sDAAcu+kB;IAAtB,CAAhC,EAA0D;MAAEvkmB,IAAI,EAAEgmB,0DAAkBmvlB;IAA1B,CAA1D,CAAP;EAAiG,CAN3I,EAM6J;IAAEwW,OAAO,EAAE,CAAC;MACzJ3rnB,IAAI,EAAEmmB,gDAAKA;IAD8I,CAAD,CAAX;IAE7I6lmB,YAAY,EAAE,CAAC;MACfhsnB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CAF+H;IAI7I+lmB,aAAa,EAAE,CAAC;MAChBlsnB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD;EAJ8H,CAN7J;AAAA;;AAaA,SAASkmmB,eAAT,CAAyBjuc,IAAzB,EAA+Bgoa,MAA/B,EAAuC;EACnChoa,IAAI,CAAC3lJ,OAAL,CAAa2ujB,SAAb,GAAyBhB,MAAM,CAAC3gkB,IAAhC;AACH;;AACD,SAAS2mmB,WAAT,CAAqBpsnB,IAArB,EAA2B;EACvB,OAAOA,IAAI,CAAC,MAAD,CAAJ,IAAgB,OAAOA,IAA9B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwsnB,IAAN,CAAW;EACP/vnB,WAAW,CAACovnB,cAAD,EAAiBnlC,WAAjB,EAA8B;IACrC,KAAKmlC,cAAL,GAAsBA,cAAtB;IACA,KAAK5uH,QAAL,GAAgB,IAAIwvH,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,GAAwBhmC,WAAxB;EACH;EACD;AACJ;AACA;;;EACY,IAAJomC,IAAI,CAAC14kB,SAAD,EAAY;IAChB,KAAK6od,QAAL,CAAcmqF,SAAd,GAA0B,KAAKnqF,QAAL,CAAc6vH,IAAd,GAAqB14kB,SAA/C;;IACA,KAAK24kB,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARC,QAAQ,CAACtmC,WAAD,EAAc;IACtBumC,cAAc,CAAC,UAAD,EAAavmC,WAAb,CAAd;IACA,KAAKgmC,gBAAL,GAAwBhmC,WAAxB;IACA,KAAKkmC,YAAL,GAAoB,IAApB,CAHsB,CAGI;;IAC1B,KAAKG,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARG,QAAQ,CAACxmC,WAAD,EAAc;IACtBumC,cAAc,CAAC,UAAD,EAAavmC,WAAb,CAAd;IACA,KAAKimC,gBAAL,GAAwBjmC,WAAxB;IACA,KAAKmmC,YAAL,GAAoB,IAApB,CAHsB,CAGI;;IAC1B,KAAKE,WAAL;EACH;;EACDA,WAAW,GAAG;IACV,IAAI,KAAK9vH,QAAL,CAAcmqF,SAAlB,EAA6B;MACzB,IAAI,CAAC,KAAKwlC,YAAV,EAAwB;QACpB,KAAKf,cAAL,CAAoBrtnB,KAApB;;QACA,KAAKqunB,YAAL,GAAoB,IAApB;;QACA,IAAI,KAAKH,gBAAT,EAA2B;UACvB,KAAKE,YAAL,GACI,KAAKf,cAAL,CAAoBplC,kBAApB,CAAuC,KAAKimC,gBAA5C,EAA8D,KAAKzvH,QAAnE,CADJ;QAEH;MACJ;IACJ,CATD,MAUK;MACD,IAAI,CAAC,KAAK4vH,YAAV,EAAwB;QACpB,KAAKhB,cAAL,CAAoBrtnB,KAApB;;QACA,KAAKounB,YAAL,GAAoB,IAApB;;QACA,IAAI,KAAKD,gBAAT,EAA2B;UACvB,KAAKE,YAAL,GACI,KAAKhB,cAAL,CAAoBplC,kBAApB,CAAuC,KAAKkmC,gBAA5C,EAA8D,KAAK1vH,QAAnE,CADJ;QAEH;MACJ;IACJ;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACiC,OAAtBsvH,sBAAsB,CAAC/mgB,GAAD,EAAMk2P,GAAN,EAAW;IACpC,OAAO,IAAP;EACH;;AAjEM;;AAmEX8wQ,IAAI,CAACltnB,IAAL;EAAA,iBAAiGktnB,IAAjG,EA30GmGxmmB,+DA20GnG,CAAuHA,2DAAvH,GA30GmGA,+DA20GnG,CAAuJA,sDAAvJ;AAAA;;AACAwmmB,IAAI,CAAC3nC,IAAL,kBA50GmG7+jB,+DA40GnG;EAAA,MAAqFwmmB,IAArF;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDA70GmGxmmB,+DA60GnG,CAA2FwmmB,IAA3F,EAA6G,CAAC;IAClGxsnB,IAAI,EAAE4jlB,oDAD4F;IAElGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,QADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAF4F,CAAD,CAA7G,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAD,EAAgC;MAAErsC,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAhC,CAAP;EAAmE,CAN7G,EAM+H;IAAEuoB,IAAI,EAAE,CAAC;MACxH9snB,IAAI,EAAEmmB,gDAAKA;IAD6G,CAAD,CAAR;IAE/G6mmB,QAAQ,EAAE,CAAC;MACXhtnB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAFqG;IAI/G+mmB,QAAQ,EAAE,CAAC;MACXltnB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD;EAJqG,CAN/H;AAAA;AAaA;AACA;AACA;;;AACA,MAAMsmmB,WAAN,CAAkB;EACdhwnB,WAAW,GAAG;IACV,KAAK2qlB,SAAL,GAAiB,IAAjB;IACA,KAAK0lC,IAAL,GAAY,IAAZ;EACH;;AAJa;;AAMlB,SAASG,cAAT,CAAwBn1mB,QAAxB,EAAkC4ukB,WAAlC,EAA+C;EAC3C,MAAMymC,mBAAmB,GAAG,CAAC,EAAE,CAACzmC,WAAD,IAAgBA,WAAW,CAACD,kBAA9B,CAA7B;;EACA,IAAI,CAAC0mC,mBAAL,EAA0B;IACtB,MAAM,IAAIpwnB,KAAJ,CAAW,GAAE+a,QAAS,yCAAwCi+lB,4DAAU,CAACrvB,WAAD,CAAc,IAAtF,CAAN;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0mC,UAAN,CAAiB;EACb3wnB,WAAW,CAAC+tmB,iBAAD,EAAoB6iB,YAApB,EAAkC;IACzC,KAAK7iB,iBAAL,GAAyBA,iBAAzB;IACA,KAAK6iB,YAAL,GAAoBA,YAApB;IACA,KAAK13G,QAAL,GAAgB,KAAhB;EACH;;EACD/hd,MAAM,GAAG;IACL,KAAK+hd,QAAL,GAAgB,IAAhB;;IACA,KAAK60F,iBAAL,CAAuB/jB,kBAAvB,CAA0C,KAAK4mC,YAA/C;EACH;;EACDr/mB,OAAO,GAAG;IACN,KAAK2ngB,QAAL,GAAgB,KAAhB;;IACA,KAAK60F,iBAAL,CAAuBhsmB,KAAvB;EACH;;EACD8unB,YAAY,CAACxgU,OAAD,EAAU;IAClB,IAAIA,OAAO,IAAI,CAAC,KAAK6oN,QAArB,EAA+B;MAC3B,KAAK/hd,MAAL;IACH,CAFD,MAGK,IAAI,CAACk5P,OAAD,IAAY,KAAK6oN,QAArB,EAA+B;MAChC,KAAK3ngB,OAAL;IACH;EACJ;;AArBY;AAuBjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMu/mB,QAAN,CAAe;EACX9wnB,WAAW,GAAG;IACV,KAAK+wnB,YAAL,GAAoB,KAApB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAKC,mBAAL,GAA2B,CAA3B;IACA,KAAKC,iBAAL,GAAyB,KAAzB;EACH;;EACW,IAARC,QAAQ,CAACpmkB,QAAD,EAAW;IACnB,KAAKqmkB,SAAL,GAAiBrmkB,QAAjB;;IACA,IAAI,KAAKimkB,UAAL,KAAoB,CAAxB,EAA2B;MACvB,KAAKK,mBAAL,CAAyB,IAAzB;IACH;EACJ;EACD;;;EACAC,QAAQ,GAAG;IACP,OAAO,KAAKN,UAAL,EAAP;EACH;EACD;;;EACAO,WAAW,CAAC5vc,IAAD,EAAO;IACd,IAAI,CAAC,KAAK6vc,aAAV,EAAyB;MACrB,KAAKA,aAAL,GAAqB,EAArB;IACH;;IACD,KAAKA,aAAL,CAAmBlrnB,IAAnB,CAAwBq7K,IAAxB;EACH;EACD;;;EACA8vc,UAAU,CAACpxnB,KAAD,EAAQ;IACd,MAAM2nB,OAAO,GAAG3nB,KAAK,IAAI,KAAK+wnB,SAA9B;IACA,KAAKF,iBAAL,GAAyB,KAAKA,iBAAL,IAA0BlpmB,OAAnD;IACA,KAAKipmB,mBAAL;;IACA,IAAI,KAAKA,mBAAL,KAA6B,KAAKD,UAAtC,EAAkD;MAC9C,KAAKK,mBAAL,CAAyB,CAAC,KAAKH,iBAA/B;;MACA,KAAKD,mBAAL,GAA2B,CAA3B;MACA,KAAKC,iBAAL,GAAyB,KAAzB;IACH;;IACD,OAAOlpmB,OAAP;EACH;;EACDqpmB,mBAAmB,CAACK,UAAD,EAAa;IAC5B,IAAI,KAAKF,aAAL,IAAsBE,UAAU,KAAK,KAAKX,YAA9C,EAA4D;MACxD,KAAKA,YAAL,GAAoBW,UAApB;;MACA,KAAK,IAAIrwmB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKmwmB,aAAL,CAAmB5vnB,MAAvC,EAA+Cyf,CAAC,EAAhD,EAAoD;QAChD,MAAMzI,WAAW,GAAG,KAAK44mB,aAAL,CAAmBnwmB,CAAnB,CAApB;QACAzI,WAAW,CAACi4mB,YAAZ,CAAyBa,UAAzB;MACH;IACJ;EACJ;;AA5CU;;AA8CfZ,QAAQ,CAACjunB,IAAT;EAAA,iBAAqGiunB,QAArG;AAAA;;AACAA,QAAQ,CAAC1oC,IAAT,kBAz/GmG7+jB,+DAy/GnG;EAAA,MAAyFunmB,QAAzF;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDA1/GmGvnmB,+DA0/GnG,CAA2FunmB,QAA3F,EAAiH,CAAC;IACtGvtnB,IAAI,EAAE4jlB,oDADgG;IAEtGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,YADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFgG,CAAD,CAAjH,QAM4B;IAAEgiU,QAAQ,EAAE,CAAC;MACzB5tnB,IAAI,EAAEmmB,gDAAKA;IADc,CAAD;EAAZ,CAN5B;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMiomB,YAAN,CAAmB;EACf3xnB,WAAW,CAACwtmB,aAAD,EAAgBvjB,WAAhB,EAA6BknC,QAA7B,EAAuC;IAC9C,KAAKA,QAAL,GAAgBA,QAAhB;;IACA,IAAI,CAAC,OAAO9tnB,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmD,CAAC8tnB,QAAxD,EAAkE;MAC9DS,kCAAkC,CAAC,cAAD,EAAiB,cAAjB,CAAlC;IACH;;IACDT,QAAQ,CAACG,QAAT;;IACA,KAAKO,KAAL,GAAa,IAAIlB,UAAJ,CAAenjB,aAAf,EAA8BvjB,WAA9B,CAAb;EACH;EACD;AACJ;AACA;AACA;;;EACI8tB,SAAS,GAAG;IACR,KAAK8Z,KAAL,CAAWhB,YAAX,CAAwB,KAAKM,QAAL,CAAcM,UAAd,CAAyB,KAAKK,YAA9B,CAAxB;EACH;;AAfc;;AAiBnBH,YAAY,CAAC9unB,IAAb;EAAA,iBAAyG8unB,YAAzG,EArjHmGpomB,+DAqjHnG,CAAuIA,2DAAvI,GArjHmGA,+DAqjHnG,CAAuKA,sDAAvK,GArjHmGA,+DAqjHnG,CAAkMunmB,QAAlM;AAAA;;AACAa,YAAY,CAACvpC,IAAb,kBAtjHmG7+jB,+DAsjHnG;EAAA,MAA6FoomB,YAA7F;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAvjHmGpomB,+DAujHnG,CAA2FoomB,YAA3F,EAAqH,CAAC;IAC1GpunB,IAAI,EAAE4jlB,oDADoG;IAE1GjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,gBADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFoG,CAAD,CAArH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAD,EAAgC;MAAErsC,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAhC,EAA0D;MAAEvkmB,IAAI,EAAEutnB,QAAR;MAAkBlonB,UAAU,EAAE,CAAC;QACtHrF,IAAI,EAAEnE,mDAAQA;MADwG,CAAD,EAEtH;QACCmE,IAAI,EAAEk2mB,+CAAIA;MADX,CAFsH;IAA9B,CAA1D,CAAP;EAIlB,CAVxB,EAU0C;IAAEqY,YAAY,EAAE,CAAC;MAC3CvunB,IAAI,EAAEmmB,gDAAKA;IADgC,CAAD;EAAhB,CAV1C;AAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqomB,eAAN,CAAsB;EAClB/xnB,WAAW,CAACwtmB,aAAD,EAAgBvjB,WAAhB,EAA6BknC,QAA7B,EAAuC;IAC9C,IAAI,CAAC,OAAO9tnB,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmD,CAAC8tnB,QAAxD,EAAkE;MAC9DS,kCAAkC,CAAC,iBAAD,EAAoB,iBAApB,CAAlC;IACH;;IACDT,QAAQ,CAACI,WAAT,CAAqB,IAAIZ,UAAJ,CAAenjB,aAAf,EAA8BvjB,WAA9B,CAArB;EACH;;AANiB;;AAQtB8nC,eAAe,CAAClvnB,IAAhB;EAAA,iBAA4GkvnB,eAA5G,EA1lHmGxomB,+DA0lHnG,CAA6IA,2DAA7I,GA1lHmGA,+DA0lHnG,CAA6KA,sDAA7K,GA1lHmGA,+DA0lHnG,CAAwMunmB,QAAxM;AAAA;;AACAiB,eAAe,CAAC3pC,IAAhB,kBA3lHmG7+jB,+DA2lHnG;EAAA,MAAgGwomB,eAAhG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA5lHmGxomB,+DA4lHnG,CAA2FwomB,eAA3F,EAAwH,CAAC;IAC7GxunB,IAAI,EAAE4jlB,oDADuG;IAE7GjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,mBADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFuG,CAAD,CAAxH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAD,EAAgC;MAAErsC,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAhC,EAA0D;MAAEvkmB,IAAI,EAAEutnB,QAAR;MAAkBlonB,UAAU,EAAE,CAAC;QACtHrF,IAAI,EAAEnE,mDAAQA;MADwG,CAAD,EAEtH;QACCmE,IAAI,EAAEk2mB,+CAAIA;MADX,CAFsH;IAA9B,CAA1D,CAAP;EAIlB,CAVxB;AAAA;;AAWA,SAASmY,kCAAT,CAA4CI,QAA5C,EAAsDC,aAAtD,EAAqE;EACjE,MAAM,IAAI12D,2DAAJ,CAAkB;EAAK;EAAvB,EAA2E,wBAAuBy2D,QAAS,cAAjC,GAC3E,kBAAiBC,aAAc,+EAD4C,GAE3E,iCAFC,CAAN;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,QAAN,CAAe;EACXlynB,WAAW,CAACmynB,aAAD,EAAgB;IACvB,KAAKA,aAAL,GAAqBA,aAArB;IACA,KAAKC,UAAL,GAAkB,EAAlB;EACH;;EACW,IAARC,QAAQ,CAAChynB,KAAD,EAAQ;IAChB,KAAKiynB,YAAL,GAAoBjynB,KAApB;;IACA,KAAKiwnB,WAAL;EACH;;EACDiC,OAAO,CAAClynB,KAAD,EAAQmynB,UAAR,EAAoB;IACvB,KAAKJ,UAAL,CAAgB/xnB,KAAhB,IAAyBmynB,UAAzB;EACH;;EACDlC,WAAW,GAAG;IACV,KAAKmC,WAAL;;IACA,MAAM1G,KAAK,GAAGlqnB,MAAM,CAACC,IAAP,CAAY,KAAKswnB,UAAjB,CAAd;IACA,MAAMnwnB,GAAG,GAAG6pnB,iBAAiB,CAAC,KAAKwG,YAAN,EAAoBvG,KAApB,EAA2B,KAAKoG,aAAhC,CAA7B;;IACA,KAAKO,aAAL,CAAmB,KAAKN,UAAL,CAAgBnwnB,GAAhB,CAAnB;EACH;;EACDwwnB,WAAW,GAAG;IACV,IAAI,KAAKE,WAAT,EACI,KAAKA,WAAL,CAAiBphnB,OAAjB;EACP;;EACDmhnB,aAAa,CAAC/wc,IAAD,EAAO;IAChB,IAAIA,IAAJ,EAAU;MACN,KAAKgxc,WAAL,GAAmBhxc,IAAnB;;MACA,KAAKgxc,WAAL,CAAiBx7jB,MAAjB;IACH;EACJ;;AA3BU;;AA6Bf+6jB,QAAQ,CAACrvnB,IAAT;EAAA,iBAAqGqvnB,QAArG,EAhrHmG3omB,+DAgrHnG,CAA+HqimB,cAA/H;AAAA;;AACAsG,QAAQ,CAAC9pC,IAAT,kBAjrHmG7+jB,+DAirHnG;EAAA,MAAyF2omB,QAAzF;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAlrHmG3omB,+DAkrHnG,CAA2F2omB,QAA3F,EAAiH,CAAC;IACtG3unB,IAAI,EAAE4jlB,oDADgG;IAEtGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,YADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFgG,CAAD,CAAjH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEqonB;IAAR,CAAD,CAAP;EAAoC,CAN9E,EAMgG;IAAEyG,QAAQ,EAAE,CAAC;MAC7F9unB,IAAI,EAAEmmB,gDAAKA;IADkF,CAAD;EAAZ,CANhG;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkpmB,YAAN,CAAmB;EACf5ynB,WAAW,CAACK,KAAD,EAAQyqB,QAAR,EAAkB0ilB,aAAlB,EAAiC6kB,QAAjC,EAA2C;IAClD,KAAKhynB,KAAL,GAAaA,KAAb;IACA,MAAMwynB,SAAS,GAAG,CAAC/lnB,KAAK,CAAC2uC,MAAM,CAACp7C,KAAD,CAAP,CAAxB;IACAgynB,QAAQ,CAACE,OAAT,CAAiBM,SAAS,GAAI,IAAGxynB,KAAM,EAAb,GAAiBA,KAA3C,EAAkD,IAAIswnB,UAAJ,CAAenjB,aAAf,EAA8B1ilB,QAA9B,CAAlD;EACH;;AALc;;AAOnB8nmB,YAAY,CAAC/vnB,IAAb;EAAA,iBAAyG+vnB,YAAzG,EAttHmGrpmB,+DAstHnG,CAAuI,cAAvI,GAttHmGA,+DAstHnG,CAAmLA,sDAAnL,GAttHmGA,+DAstHnG,CAA8MA,2DAA9M,GAttHmGA,+DAstHnG,CAA8O2omB,QAA9O;AAAA;;AACAU,YAAY,CAACxqC,IAAb,kBAvtHmG7+jB,+DAutHnG;EAAA,MAA6FqpmB,YAA7F;EAAA;EAAA;AAAA;;AACA;EAAA,mDAxtHmGrpmB,+DAwtHnG,CAA2FqpmB,YAA3F,EAAqH,CAAC;IAC1GrvnB,IAAI,EAAE4jlB,oDADoG;IAE1GjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,gBADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFoG,CAAD,CAArH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAEm2mB,oDADwD;QAE9DxzmB,IAAI,EAAE,CAAC,cAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAE3C,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAH2B,EAGD;MAAEvkmB,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAHC,EAG8B;MAAErsC,IAAI,EAAE2unB,QAAR;MAAkBtpnB,UAAU,EAAE,CAAC;QAC1FrF,IAAI,EAAEk2mB,+CAAIA;MADgF,CAAD;IAA9B,CAH9B,CAAP;EAKlB,CAXxB;AAAA;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,MAAMqZ,OAAN,CAAc;EACV9ynB,WAAW,CAACgtnB,KAAD,EAAQlW,QAAR,EAAkBmW,SAAlB,EAA6B;IACpC,KAAKD,KAAL,GAAaA,KAAb;IACA,KAAKlW,QAAL,GAAgBA,QAAhB;IACA,KAAKmW,SAAL,GAAiBA,SAAjB;IACA,KAAK8F,QAAL,GAAgB,IAAhB;IACA,KAAK3b,OAAL,GAAe,IAAf;EACH;;EACU,IAAP4b,OAAO,CAACjhlB,MAAD,EAAS;IAChB,KAAKghlB,QAAL,GAAgBhhlB,MAAhB;;IACA,IAAI,CAAC,KAAKqlkB,OAAN,IAAiBrlkB,MAArB,EAA6B;MACzB,KAAKqlkB,OAAL,GAAe,KAAKN,QAAL,CAAc50lB,IAAd,CAAmB6vB,MAAnB,EAA2BolB,MAA3B,EAAf;IACH;EACJ;;EACD4gjB,SAAS,GAAG;IACR,IAAI,KAAKX,OAAT,EAAkB;MACd,MAAMnokB,OAAO,GAAG,KAAKmokB,OAAL,CAAajwmB,IAAb,CAAkB,KAAK4rnB,QAAvB,CAAhB;;MACA,IAAI9jlB,OAAJ,EAAa;QACT,KAAKipkB,aAAL,CAAmBjpkB,OAAnB;MACH;IACJ;EACJ;;EACDgklB,SAAS,CAACC,WAAD,EAAc7ynB,KAAd,EAAqB;IAC1B,MAAM,CAAC4Q,IAAD,EAAOuxjB,IAAP,IAAe0wD,WAAW,CAAClpnB,KAAZ,CAAkB,GAAlB,CAArB;IACA,MAAMqxa,KAAK,GAAGpqa,IAAI,CAAChG,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAvB,GAA2B7I,SAA3B,GAAuCu3mB,uEAArD;;IACA,IAAIt5mB,KAAK,IAAI,IAAb,EAAmB;MACf,KAAK4snB,SAAL,CAAemG,QAAf,CAAwB,KAAKpG,KAAL,CAAWh3lB,aAAnC,EAAkD/kB,IAAlD,EAAwDuxjB,IAAI,GAAI,GAAEnikB,KAAM,GAAEmikB,IAAK,EAAnB,GAAuBnikB,KAAnF,EAA0Fg7a,KAA1F;IACH,CAFD,MAGK;MACD,KAAK4xM,SAAL,CAAeoG,WAAf,CAA2B,KAAKrG,KAAL,CAAWh3lB,aAAtC,EAAqD/kB,IAArD,EAA2Doqa,KAA3D;IACH;EACJ;;EACD68L,aAAa,CAACjpkB,OAAD,EAAU;IACnBA,OAAO,CAACg/kB,kBAAR,CAA4BtkC,MAAD,IAAY,KAAKspC,SAAL,CAAetpC,MAAM,CAAC1nlB,GAAtB,EAA2B,IAA3B,CAAvC;IACAgtC,OAAO,CAAC6+kB,gBAAR,CAA0BnkC,MAAD,IAAY,KAAKspC,SAAL,CAAetpC,MAAM,CAAC1nlB,GAAtB,EAA2B0nlB,MAAM,CAACvhhB,YAAlC,CAArC;IACAn5B,OAAO,CAAC++kB,kBAAR,CAA4BrkC,MAAD,IAAY,KAAKspC,SAAL,CAAetpC,MAAM,CAAC1nlB,GAAtB,EAA2B0nlB,MAAM,CAACvhhB,YAAlC,CAAvC;EACH;;AApCS;;AAsCd0qjB,OAAO,CAACjwnB,IAAR;EAAA,iBAAoGiwnB,OAApG,EAtzHmGvpmB,+DAszHnG,CAA6HA,qDAA7H,GAtzHmGA,+DAszHnG,CAAuJA,0DAAvJ,GAtzHmGA,+DAszHnG,CAAsLA,oDAAtL;AAAA;;AACAupmB,OAAO,CAAC1qC,IAAR,kBAvzHmG7+jB,+DAuzHnG;EAAA,MAAwFupmB,OAAxF;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAxzHmGvpmB,+DAwzHnG,CAA2FupmB,OAA3F,EAAgH,CAAC;IACrGvvnB,IAAI,EAAE4jlB,oDAD+F;IAErGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,WADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAF+F,CAAD,CAAhH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,EAA0B;MAAEpsC,IAAI,EAAEgmB,0DAAkB4kmB;IAA1B,CAA1B,EAAwD;MAAE5qnB,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAAxD,CAAP;EAAyF,CANnI,EAMqJ;IAAE+Y,OAAO,EAAE,CAAC;MACjJzvnB,IAAI,EAAEmmB,gDAD2I;MAEjJxjB,IAAI,EAAE,CAAC,SAAD;IAF2I,CAAD;EAAX,CANrJ;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMotnB,gBAAN,CAAuB;EACnBtznB,WAAW,CAAC+tmB,iBAAD,EAAoB;IAC3B,KAAKA,iBAAL,GAAyBA,iBAAzB;IACA,KAAKwlB,QAAL,GAAgB,IAAhB;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAKC,uBAAL,GAA+B,IAA/B;IACA;AACR;AACA;;IACQ,KAAKC,gBAAL,GAAwB,IAAxB;IACA;;IACA,KAAKC,wBAAL,GAAgC,IAAhC;EACH;EACD;;;EACA1klB,WAAW,CAACC,OAAD,EAAU;IACjB,IAAIA,OAAO,CAAC,kBAAD,CAAP,IAA+BA,OAAO,CAAC,0BAAD,CAA1C,EAAwE;MACpE,MAAM9a,gBAAgB,GAAG,KAAK45kB,iBAA9B;;MACA,IAAI,KAAKwlB,QAAT,EAAmB;QACfp/lB,gBAAgB,CAACiuG,MAAjB,CAAwBjuG,gBAAgB,CAAClpB,OAAjB,CAAyB,KAAKsonB,QAA9B,CAAxB;MACH;;MACD,IAAI,KAAKE,gBAAT,EAA2B;QACvB,MAAM;UAAEA,gBAAgB,EAAE3omB,QAApB;UAA8B0omB,uBAAuB,EAAEx3lB,OAAvD;UAAgE03lB,wBAAwB,EAAExnB;QAA1F,IAAuG,IAA7G;QACA,KAAKqnB,QAAL,GAAgBp/lB,gBAAgB,CAAC61jB,kBAAjB,CAAoCl/jB,QAApC,EAA8CkR,OAA9C,EAAuDkwkB,QAAQ,GAAG;UAAEA;QAAF,CAAH,GAAkB9pmB,SAAjF,CAAhB;MACH,CAHD,MAIK;QACD,KAAKmxnB,QAAL,GAAgB,IAAhB;MACH;IACJ,CAZD,MAaK,IAAI,KAAKA,QAAL,IAAiBtklB,OAAO,CAAC,yBAAD,CAAxB,IAAuD,KAAKuklB,uBAAhE,EAAyF;MAC1F,KAAKD,QAAL,CAAcv3lB,OAAd,GAAwB,KAAKw3lB,uBAA7B;IACH;EACJ;;AApCkB;;AAsCvBF,gBAAgB,CAACzwnB,IAAjB;EAAA,iBAA6GywnB,gBAA7G,EAx4HmG/pmB,+DAw4HnG,CAA+IA,2DAA/I;AAAA;;AACA+pmB,gBAAgB,CAAClrC,IAAjB,kBAz4HmG7+jB,+DAy4HnG;EAAA,MAAiG+pmB,gBAAjG;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WAz4HmG/pmB,kEAy4HnG;AAAA;;AACA;EAAA,mDA14HmGA,+DA04HnG,CAA2F+pmB,gBAA3F,EAAyH,CAAC;IAC9G/vnB,IAAI,EAAE4jlB,oDADwG;IAE9GjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,oBADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFwG,CAAD,CAAzH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAD,CAAP;EAAyC,CANnF,EAMqG;IAAE4jlB,uBAAuB,EAAE,CAAC;MACjHjwnB,IAAI,EAAEmmB,gDAAKA;IADsG,CAAD,CAA3B;IAErF+pmB,gBAAgB,EAAE,CAAC;MACnBlwnB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAFmE;IAIrFgqmB,wBAAwB,EAAE,CAAC;MAC3BnwnB,IAAI,EAAEmmB,gDAAKA;IADgB,CAAD;EAJ2D,CANrG;AAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMiqmB,iBAAiB,GAAG,CACtB9G,OADsB,EAEtBuB,iBAFsB,EAGtBe,OAHsB,EAItBY,IAJsB,EAKtBuD,gBALsB,EAMtBR,OANsB,EAOtBhC,QAPsB,EAQtBa,YARsB,EAStBI,eATsB,EAUtBG,QAVsB,EAWtBU,YAXsB,CAA1B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASgB,wBAAT,CAAkCrwnB,IAAlC,EAAwClD,KAAxC,EAA+C;EAC3C,OAAO,IAAIk7jB,2DAAJ,CAAkB;EAAK;EAAvB,EAAqEl4jB,SAAS,IAAK,yBAAwBhD,KAAM,eAAci5mB,4DAAU,CAAC/1mB,IAAD,CAAO,GAAhJ,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMswnB,oBAAN,CAA2B;EACvBC,kBAAkB,CAACz0kB,KAAD,EAAQ00kB,iBAAR,EAA2B;IACzC,OAAO10kB,KAAK,CAACr+C,SAAN,CAAgB;MACnBoR,IAAI,EAAE2hnB,iBADa;MAEnB/mnB,KAAK,EAAG8kC,CAAD,IAAO;QACV,MAAMA,CAAN;MACH;IAJkB,CAAhB,CAAP;EAMH;;EACDuojB,OAAO,CAACp2C,YAAD,EAAe;IAClBA,YAAY,CAAC7ijB,WAAb;EACH;;AAXsB;;AAa3B,MAAM4ynB,eAAN,CAAsB;EAClBF,kBAAkB,CAACz0kB,KAAD,EAAQ00kB,iBAAR,EAA2B;IACzC,OAAO10kB,KAAK,CAAC7tC,IAAN,CAAWuinB,iBAAX,EAA8BjilB,CAAC,IAAI;MACtC,MAAMA,CAAN;IACH,CAFM,CAAP;EAGH;;EACDuojB,OAAO,CAACp2C,YAAD,EAAe,CAAG;;AANP;;AAQtB,MAAMgwE,gBAAgB,GAAG,IAAID,eAAJ,EAAzB;;AACA,MAAME,qBAAqB,GAAG,IAAIL,oBAAJ,EAA9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,SAAN,CAAgB;EACZn0nB,WAAW,CAACwwE,GAAD,EAAM;IACb,KAAK4jjB,YAAL,GAAoB,IAApB;IACA,KAAK7hB,aAAL,GAAqB,IAArB;IACA,KAAK8hB,IAAL,GAAY,IAAZ;IACA,KAAKC,SAAL,GAAiB,IAAjB,CAJa,CAKb;IACA;;IACA,KAAK5inB,IAAL,GAAY8+D,GAAZ;EACH;;EACD9nE,WAAW,GAAG;IACV,IAAI,KAAK6pmB,aAAT,EAAwB;MACpB,KAAKgiB,QAAL;IACH,CAHS,CAIV;IACA;IACA;IACA;;;IACA,KAAK7inB,IAAL,GAAY,IAAZ;EACH;;EACD0G,SAAS,CAAC+6B,GAAD,EAAM;IACX,IAAI,CAAC,KAAKkhlB,IAAV,EAAgB;MACZ,IAAIlhlB,GAAJ,EAAS;QACL,KAAK4wgB,UAAL,CAAgB5wgB,GAAhB;MACH;;MACD,OAAO,KAAKihlB,YAAZ;IACH;;IACD,IAAIjhlB,GAAG,KAAK,KAAKkhlB,IAAjB,EAAuB;MACnB,KAAKE,QAAL;;MACA,OAAO,KAAKn8mB,SAAL,CAAe+6B,GAAf,CAAP;IACH;;IACD,OAAO,KAAKihlB,YAAZ;EACH;;EACDrwE,UAAU,CAAC5wgB,GAAD,EAAM;IACZ,KAAKkhlB,IAAL,GAAYlhlB,GAAZ;IACA,KAAKmhlB,SAAL,GAAiB,KAAKE,eAAL,CAAqBrhlB,GAArB,CAAjB;IACA,KAAKo/jB,aAAL,GAAqB,KAAK+hB,SAAL,CAAeR,kBAAf,CAAkC3glB,GAAlC,EAAwC9yC,KAAD,IAAW,KAAKo0nB,kBAAL,CAAwBthlB,GAAxB,EAA6B9yC,KAA7B,CAAlD,CAArB;EACH;;EACDm0nB,eAAe,CAACrhlB,GAAD,EAAM;IACjB,IAAIymkB,4DAAU,CAACzmkB,GAAD,CAAd,EAAqB;MACjB,OAAO8glB,gBAAP;IACH;;IACD,IAAIpa,iEAAe,CAAC1mkB,GAAD,CAAnB,EAA0B;MACtB,OAAO+glB,qBAAP;IACH;;IACD,MAAMN,wBAAwB,CAACO,SAAD,EAAYhhlB,GAAZ,CAA9B;EACH;;EACDohlB,QAAQ,GAAG;IACP;IACA;IACA,KAAKD,SAAL,CAAej6B,OAAf,CAAuB,KAAKkY,aAA5B;;IACA,KAAK6hB,YAAL,GAAoB,IAApB;IACA,KAAK7hB,aAAL,GAAqB,IAArB;IACA,KAAK8hB,IAAL,GAAY,IAAZ;EACH;;EACDI,kBAAkB,CAACp1kB,KAAD,EAAQh/C,KAAR,EAAe;IAC7B,IAAIg/C,KAAK,KAAK,KAAKg1kB,IAAnB,EAAyB;MACrB,KAAKD,YAAL,GAAoB/znB,KAApB,CADqB,CAErB;MACA;;MACA,KAAKqR,IAAL,CAAU0kmB,YAAV;IACH;EACJ;;AA9DW;;AAgEhB+d,SAAS,CAACtxnB,IAAV;EAAA,iBAAsGsxnB,SAAtG,EAtjImG5qmB,+DAsjInG,CAAiIA,4DAAjI;AAAA;;AACA4qmB,SAAS,CAACO,KAAV,kBAvjImGnrmB,0DAujInG;EAAA;EAAA,MAAoG4qmB,SAApG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAxjImG5qmB,+DAwjInG,CAA2F4qmB,SAA3F,EAAkH,CAAC;IACvG5wnB,IAAI,EAAEu2mB,+CADiG;IAEvG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,OADP;MAEC0jnB,IAAI,EAAE,KAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFiG,CAAD,CAAlH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAD,CAAP;EAA0C,CAPpF;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMse,aAAN,CAAoB;EAChBx8mB,SAAS,CAAC/X,KAAD,EAAQ;IACb,IAAIA,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;IACJ,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3B,MAAMuznB,wBAAwB,CAACgB,aAAD,EAAgBv0nB,KAAhB,CAA9B;IACH;;IACD,OAAOA,KAAK,CAACmX,WAAN,EAAP;EACH;;AARe;;AAUpBo9mB,aAAa,CAAC/xnB,IAAd;EAAA,iBAA0G+xnB,aAA1G;AAAA;;AACAA,aAAa,CAACF,KAAd,kBAlmImGnrmB,0DAkmInG;EAAA;EAAA,MAAwGqrmB,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAnmImGrrmB,+DAmmInG,CAA2FqrmB,aAA3F,EAAsH,CAAC;IAC3GrxnB,IAAI,EAAEu2mB,+CADqG;IAE3G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,WADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA,MAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0lU,gBAAgB,GAAG,orPAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,aAAN,CAAoB;EAChB18mB,SAAS,CAAC/X,KAAD,EAAQ;IACb,IAAIA,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;IACJ,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3B,MAAMuznB,wBAAwB,CAACkB,aAAD,EAAgBz0nB,KAAhB,CAA9B;IACH;;IACD,OAAOA,KAAK,CAAC0nB,OAAN,CAAc8smB,gBAAd,EAAiCE,GAAG,IAAIA,GAAG,CAAC,CAAD,CAAH,CAAOvllB,WAAP,KAAuBullB,GAAG,CAAC5ymB,KAAJ,CAAU,CAAV,EAAa3K,WAAb,EAA/D,CAAP;EACH;;AARe;;AAUpBs9mB,aAAa,CAACjynB,IAAd;EAAA,iBAA0GiynB,aAA1G;AAAA;;AACAA,aAAa,CAACJ,KAAd,kBA/oImGnrmB,0DA+oInG;EAAA;EAAA,MAAwGurmB,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAhpImGvrmB,+DAgpInG,CAA2FurmB,aAA3F,EAAsH,CAAC;IAC3GvxnB,IAAI,EAAEu2mB,+CADqG;IAE3G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,WADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6lU,aAAN,CAAoB;EAChB58mB,SAAS,CAAC/X,KAAD,EAAQ;IACb,IAAIA,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;IACJ,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3B,MAAMuznB,wBAAwB,CAACoB,aAAD,EAAgB30nB,KAAhB,CAA9B;IACH;;IACD,OAAOA,KAAK,CAACmvC,WAAN,EAAP;EACH;;AARe;;AAUpBwllB,aAAa,CAACnynB,IAAd;EAAA,iBAA0GmynB,aAA1G;AAAA;;AACAA,aAAa,CAACN,KAAd,kBA1qImGnrmB,0DA0qInG;EAAA;EAAA,MAAwGyrmB,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA3qImGzrmB,+DA2qInG,CAA2FyrmB,aAA3F,EAAsH,CAAC;IAC3GzxnB,IAAI,EAAEu2mB,+CADqG;IAE3G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,WADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM8lU,0BAA0B,GAAG,IAAIhuC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMiuC,QAAN,CAAe;EACXl1nB,WAAW,CAACs7X,MAAD,EAAS65P,eAAT,EAA0B;IACjC,KAAK75P,MAAL,GAAcA,MAAd;IACA,KAAK65P,eAAL,GAAuBA,eAAvB;EACH;;EACD/8mB,SAAS,CAAC/X,KAAD,EAAQyxH,MAAM,GAAG,YAAjB,EAA+B2wf,QAA/B,EAAyCnnP,MAAzC,EAAiD;IACtD,IAAIj7X,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,EAA3B,IAAiCA,KAAK,KAAKA,KAA/C,EACI,OAAO,IAAP;;IACJ,IAAI;MACA,OAAOm0T,UAAU,CAACn0T,KAAD,EAAQyxH,MAAR,EAAgBwpQ,MAAM,IAAI,KAAKA,MAA/B,EAAuCmnP,QAAQ,IAAI,KAAK0S,eAAjB,IAAoC/ynB,SAA3E,CAAjB;IACH,CAFD,CAGA,OAAO4K,KAAP,EAAc;MACV,MAAM4mnB,wBAAwB,CAACsB,QAAD,EAAWlonB,KAAK,CAAC6gH,OAAjB,CAA9B;IACH;EACJ;;AAdU;;AAgBfqngB,QAAQ,CAACrynB,IAAT;EAAA,iBAAqGqynB,QAArG,EA92ImG3rmB,+DA82InG,CAA+H4vlB,oDAA/H,OA92ImG5vlB,+DA82InG,CAAqJ0rmB,0BAArJ;AAAA;;AACAC,QAAQ,CAACR,KAAT,kBA/2ImGnrmB,0DA+2InG;EAAA;EAAA,MAAmG2rmB,QAAnG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAh3ImG3rmB,+DAg3InG,CAA2F2rmB,QAA3F,EAAiH,CAAC;IACtG3xnB,IAAI,EAAEu2mB,+CADgG;IAEtG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,MADP;MAEC0jnB,IAAI,EAAE,IAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFgG,CAAD,CAAjH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAElE,iDADwD;QAE9D6G,IAAI,EAAE,CAACizmB,oDAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAE51mB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAElE,iDAD4B;QAElC6G,IAAI,EAAE,CAAC+unB,0BAAD;MAF4B,CAAD,EAGlC;QACC1xnB,IAAI,EAAEnE,mDAAQA;MADf,CAHkC;IAA/B,CAH2B,CAAP;EAQlB,CAfxB;AAAA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg2nB,qBAAqB,GAAG,IAA9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;EACjBr1nB,WAAW,CAACmynB,aAAD,EAAgB;IACvB,KAAKA,aAAL,GAAqBA,aAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI/5mB,SAAS,CAAC/X,KAAD,EAAQi1nB,SAAR,EAAmBh6P,MAAnB,EAA2B;IAChC,IAAIj7X,KAAK,IAAI,IAAb,EACI,OAAO,EAAP;;IACJ,IAAI,OAAOi1nB,SAAP,KAAqB,QAArB,IAAiCA,SAAS,KAAK,IAAnD,EAAyD;MACrD,MAAM1B,wBAAwB,CAACyB,cAAD,EAAiBC,SAAjB,CAA9B;IACH;;IACD,MAAMrznB,GAAG,GAAG6pnB,iBAAiB,CAACzrnB,KAAD,EAAQwB,MAAM,CAACC,IAAP,CAAYwznB,SAAZ,CAAR,EAAgC,KAAKnD,aAArC,EAAoD72P,MAApD,CAA7B;IACA,OAAOg6P,SAAS,CAACrznB,GAAD,CAAT,CAAe8lB,OAAf,CAAuBqtmB,qBAAvB,EAA8C/0nB,KAAK,CAAC6D,QAAN,EAA9C,CAAP;EACH;;AAnBgB;;AAqBrBmxnB,cAAc,CAACxynB,IAAf;EAAA,iBAA2GwynB,cAA3G,EA56ImG9rmB,+DA46InG,CAA2IqimB,cAA3I;AAAA;;AACAyJ,cAAc,CAACX,KAAf,kBA76ImGnrmB,0DA66InG;EAAA;EAAA,MAAyG8rmB,cAAzG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA96ImG9rmB,+DA86InG,CAA2F8rmB,cAA3F,EAAuH,CAAC;IAC5G9xnB,IAAI,EAAEu2mB,+CADsG;IAE5G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,YADP;MAEC0jnB,IAAI,EAAE,IAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFsG,CAAD,CAAvH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEqonB;IAAR,CAAD,CAAP;EAAoC,CAP9E;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2J,cAAN,CAAqB;EACjB;AACJ;AACA;AACA;AACA;EACIn9mB,SAAS,CAAC/X,KAAD,EAAQm1nB,OAAR,EAAiB;IACtB,IAAIn1nB,KAAK,IAAI,IAAb,EACI,OAAO,EAAP;;IACJ,IAAI,OAAOm1nB,OAAP,KAAmB,QAAnB,IAA+B,OAAOn1nB,KAAP,KAAiB,QAApD,EAA8D;MAC1D,MAAMuznB,wBAAwB,CAAC2B,cAAD,EAAiBC,OAAjB,CAA9B;IACH;;IACD,IAAIA,OAAO,CAACp6mB,cAAR,CAAuB/a,KAAvB,CAAJ,EAAmC;MAC/B,OAAOm1nB,OAAO,CAACn1nB,KAAD,CAAd;IACH;;IACD,IAAIm1nB,OAAO,CAACp6mB,cAAR,CAAuB,OAAvB,CAAJ,EAAqC;MACjC,OAAOo6mB,OAAO,CAAC,OAAD,CAAd;IACH;;IACD,OAAO,EAAP;EACH;;AAnBgB;;AAqBrBD,cAAc,CAAC1ynB,IAAf;EAAA,iBAA2G0ynB,cAA3G;AAAA;;AACAA,cAAc,CAACb,KAAf,kBAr+ImGnrmB,0DAq+InG;EAAA;EAAA,MAAyGgsmB,cAAzG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAt+ImGhsmB,+DAs+InG,CAA2FgsmB,cAA3F,EAAuH,CAAC;IAC5GhynB,IAAI,EAAEu2mB,+CADsG;IAE5G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,YADP;MAEC0jnB,IAAI,EAAE,IAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFsG,CAAD,CAAvH;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsmU,QAAN,CAAe;EACX;AACJ;AACA;EACIr9mB,SAAS,CAAC/X,KAAD,EAAQ;IACb,OAAO6wC,IAAI,CAACC,SAAL,CAAe9wC,KAAf,EAAsB,IAAtB,EAA4B,CAA5B,CAAP;EACH;;AANU;;AAQfo1nB,QAAQ,CAAC5ynB,IAAT;EAAA,iBAAqG4ynB,QAArG;AAAA;;AACAA,QAAQ,CAACf,KAAT,kBA9gJmGnrmB,0DA8gJnG;EAAA;EAAA,MAAmGksmB,QAAnG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA/gJmGlsmB,+DA+gJnG,CAA2FksmB,QAA3F,EAAiH,CAAC;IACtGlynB,IAAI,EAAEu2mB,+CADgG;IAEtG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,MADP;MAEC0jnB,IAAI,EAAE,KAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFgG,CAAD,CAAjH;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASumU,gBAAT,CAA0BzznB,GAA1B,EAA+B5B,KAA/B,EAAsC;EAClC,OAAO;IAAE4B,GAAG,EAAEA,GAAP;IAAY5B,KAAK,EAAEA;EAAnB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMs1nB,YAAN,CAAmB;EACf31nB,WAAW,CAAC41nB,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKjrP,SAAL,GAAiB,EAAjB;IACA,KAAKkrP,SAAL,GAAiBxklB,iBAAjB;EACH;;EACDj5B,SAAS,CAACwhG,KAAD,EAAQi8gB,SAAS,GAAGxklB,iBAApB,EAAuC;IAC5C,IAAI,CAACuoE,KAAD,IAAW,EAAEA,KAAK,YAAY14F,GAAnB,KAA2B,OAAO04F,KAAP,KAAiB,QAA3D,EAAsE;MAClE,OAAO,IAAP;IACH;;IACD,IAAI,CAAC,KAAKk8gB,MAAV,EAAkB;MACd;MACA,KAAKA,MAAL,GAAc,KAAKF,OAAL,CAAa1zmB,IAAb,CAAkB03F,KAAlB,EAAyBziD,MAAzB,EAAd;IACH;;IACD,MAAM4+jB,aAAa,GAAG,KAAKD,MAAL,CAAY3unB,IAAZ,CAAiByyG,KAAjB,CAAtB;IACA,MAAMo8gB,gBAAgB,GAAGH,SAAS,KAAK,KAAKA,SAA5C;;IACA,IAAIE,aAAJ,EAAmB;MACf,KAAKprP,SAAL,GAAiB,EAAjB;MACAorP,aAAa,CAAChuT,WAAd,CAA2B9pR,CAAD,IAAO;QAC7B,KAAK0sV,SAAL,CAAerkY,IAAf,CAAoBovnB,gBAAgB,CAACz3kB,CAAC,CAACh8C,GAAH,EAAQg8C,CAAC,CAACmqB,YAAV,CAApC;MACH,CAFD;IAGH;;IACD,IAAI2tjB,aAAa,IAAIC,gBAArB,EAAuC;MACnC,KAAKrrP,SAAL,CAAenkX,IAAf,CAAoBqvmB,SAApB;MACA,KAAKA,SAAL,GAAiBA,SAAjB;IACH;;IACD,OAAO,KAAKlrP,SAAZ;EACH;;AA3Bc;;AA6BnBgrP,YAAY,CAAC9ynB,IAAb;EAAA,iBAAyG8ynB,YAAzG,EAnlJmGpsmB,+DAmlJnG,CAAuIA,0DAAvI;AAAA;;AACAosmB,YAAY,CAACjB,KAAb,kBAplJmGnrmB,0DAolJnG;EAAA;EAAA,MAAuGosmB,YAAvG;EAAA;EAAA;AAAA;;AACA;EAAA,mDArlJmGpsmB,+DAqlJnG,CAA2FosmB,YAA3F,EAAqH,CAAC;IAC1GpynB,IAAI,EAAEu2mB,+CADoG;IAE1G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,UADP;MAEC0jnB,IAAI,EAAE,KAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFoG,CAAD,CAArH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEgmB,0DAAkB4kmB;IAA1B,CAAD,CAAP;EAAwC,CAPlF;AAAA;;AAQA,SAAS98kB,iBAAT,CAA2B4klB,SAA3B,EAAsCC,SAAtC,EAAiD;EAC7C,MAAMzvmB,CAAC,GAAGwvmB,SAAS,CAACh0nB,GAApB;EACA,MAAMykB,CAAC,GAAGwvmB,SAAS,CAACj0nB,GAApB,CAF6C,CAG7C;;EACA,IAAIwkB,CAAC,KAAKC,CAAV,EACI,OAAO,CAAP,CALyC,CAM7C;;EACA,IAAID,CAAC,KAAKrkB,SAAV,EACI,OAAO,CAAP;EACJ,IAAIskB,CAAC,KAAKtkB,SAAV,EACI,OAAO,CAAC,CAAR,CAVyC,CAW7C;;EACA,IAAIqkB,CAAC,KAAK,IAAV,EACI,OAAO,CAAP;EACJ,IAAIC,CAAC,KAAK,IAAV,EACI,OAAO,CAAC,CAAR;;EACJ,IAAI,OAAOD,CAAP,IAAY,QAAZ,IAAwB,OAAOC,CAAP,IAAY,QAAxC,EAAkD;IAC9C,OAAOD,CAAC,GAAGC,CAAJ,GAAQ,CAAC,CAAT,GAAa,CAApB;EACH;;EACD,IAAI,OAAOD,CAAP,IAAY,QAAZ,IAAwB,OAAOC,CAAP,IAAY,QAAxC,EAAkD;IAC9C,OAAOD,CAAC,GAAGC,CAAX;EACH;;EACD,IAAI,OAAOD,CAAP,IAAY,SAAZ,IAAyB,OAAOC,CAAP,IAAY,SAAzC,EAAoD;IAChD,OAAOD,CAAC,GAAGC,CAAJ,GAAQ,CAAC,CAAT,GAAa,CAApB;EACH,CAxB4C,CAyB7C;;;EACA,MAAMyvmB,OAAO,GAAG5yjB,MAAM,CAAC98C,CAAD,CAAtB;EACA,MAAM2vmB,OAAO,GAAG7yjB,MAAM,CAAC78C,CAAD,CAAtB;EACA,OAAOyvmB,OAAO,IAAIC,OAAX,GAAqB,CAArB,GAAyBD,OAAO,GAAGC,OAAV,GAAoB,CAAC,CAArB,GAAyB,CAAzD;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,MAAMC,WAAN,CAAkB;EACdr2nB,WAAW,CAACs2nB,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIl+mB,SAAS,CAAC/X,KAAD,EAAQsonB,UAAR,EAAoBrtP,MAApB,EAA4B;IACjC,IAAI,CAACi7P,OAAO,CAACl2nB,KAAD,CAAZ,EACI,OAAO,IAAP;IACJi7X,MAAM,GAAGA,MAAM,IAAI,KAAKg7P,OAAxB;;IACA,IAAI;MACA,MAAMrnF,GAAG,GAAGunF,WAAW,CAACn2nB,KAAD,CAAvB;MACA,OAAOihS,YAAY,CAAC2tQ,GAAD,EAAM3zK,MAAN,EAAcqtP,UAAd,CAAnB;IACH,CAHD,CAIA,OAAO37mB,KAAP,EAAc;MACV,MAAM4mnB,wBAAwB,CAACyC,WAAD,EAAcrpnB,KAAK,CAAC6gH,OAApB,CAA9B;IACH;EACJ;;AAtBa;;AAwBlBwogB,WAAW,CAACxznB,IAAZ;EAAA,iBAAwGwznB,WAAxG,EA1tJmG9smB,+DA0tJnG,CAAqI4vlB,oDAArI;AAAA;;AACAkd,WAAW,CAAC3B,KAAZ,kBA3tJmGnrmB,0DA2tJnG;EAAA;EAAA,MAAsG8smB,WAAtG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA5tJmG9smB,+DA4tJnG,CAA2F8smB,WAA3F,EAAoH,CAAC;IACzG9ynB,IAAI,EAAEu2mB,+CADmG;IAEzG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,QADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFmG,CAAD,CAApH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAElE,iDADwD;QAE9D6G,IAAI,EAAE,CAACizmB,oDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CATxB;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsd,WAAN,CAAkB;EACdz2nB,WAAW,CAACs2nB,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIl+mB,SAAS,CAAC/X,KAAD,EAAQsonB,UAAR,EAAoBrtP,MAApB,EAA4B;IACjC,IAAI,CAACi7P,OAAO,CAACl2nB,KAAD,CAAZ,EACI,OAAO,IAAP;IACJi7X,MAAM,GAAGA,MAAM,IAAI,KAAKg7P,OAAxB;;IACA,IAAI;MACA,MAAMrnF,GAAG,GAAGunF,WAAW,CAACn2nB,KAAD,CAAvB;MACA,OAAOmqnB,aAAa,CAACv7E,GAAD,EAAM3zK,MAAN,EAAcqtP,UAAd,CAApB;IACH,CAHD,CAIA,OAAO37mB,KAAP,EAAc;MACV,MAAM4mnB,wBAAwB,CAAC6C,WAAD,EAAczpnB,KAAK,CAAC6gH,OAApB,CAA9B;IACH;EACJ;;AA/Ba;;AAiClB4ogB,WAAW,CAAC5znB,IAAZ;EAAA,iBAAwG4znB,WAAxG,EA3xJmGltmB,+DA2xJnG,CAAqI4vlB,oDAArI;AAAA;;AACAsd,WAAW,CAAC/B,KAAZ,kBA5xJmGnrmB,0DA4xJnG;EAAA;EAAA,MAAsGktmB,WAAtG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA7xJmGltmB,+DA6xJnG,CAA2FktmB,WAA3F,EAAoH,CAAC;IACzGlznB,IAAI,EAAEu2mB,+CADmG;IAEzG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,SADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFmG,CAAD,CAApH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAElE,iDADwD;QAE9D6G,IAAI,EAAE,CAACizmB,oDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CATxB;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMud,YAAN,CAAmB;EACf12nB,WAAW,CAACs2nB,OAAD,EAAUK,oBAAoB,GAAG,KAAjC,EAAwC;IAC/C,KAAKL,OAAL,GAAeA,OAAf;IACA,KAAKK,oBAAL,GAA4BA,oBAA5B;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;;;EACIv+mB,SAAS,CAAC/X,KAAD,EAAQgqnB,YAAY,GAAG,KAAKsM,oBAA5B,EAAkD/ob,OAAO,GAAG,QAA5D,EAAsE+6a,UAAtE,EAAkFrtP,MAAlF,EAA0F;IAC/F,IAAI,CAACi7P,OAAO,CAACl2nB,KAAD,CAAZ,EACI,OAAO,IAAP;IACJi7X,MAAM,GAAGA,MAAM,IAAI,KAAKg7P,OAAxB;;IACA,IAAI,OAAO1ob,OAAP,KAAmB,SAAvB,EAAkC;MAC9B,IAAI,CAAC,OAAOvqM,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDuyC,OAAnD,IAA8DA,OAAO,CAACC,IAA1E,EAAgF;QAC5ED,OAAO,CAACC,IAAR,CAAc,0MAAd;MACH;;MACD+3J,OAAO,GAAGA,OAAO,GAAG,QAAH,GAAc,MAA/B;IACH;;IACD,IAAIqtL,QAAQ,GAAGovP,YAAY,IAAI,KAAKsM,oBAApC;;IACA,IAAI/ob,OAAO,KAAK,MAAhB,EAAwB;MACpB,IAAIA,OAAO,KAAK,QAAZ,IAAwBA,OAAO,KAAK,eAAxC,EAAyD;QACrDqtL,QAAQ,GAAG6mP,iBAAiB,CAAC7mP,QAAD,EAAWrtL,OAAO,KAAK,QAAZ,GAAuB,MAAvB,GAAgC,QAA3C,EAAqD0tL,MAArD,CAA5B;MACH,CAFD,MAGK;QACDL,QAAQ,GAAGrtL,OAAX;MACH;IACJ;;IACD,IAAI;MACA,MAAMqhW,GAAG,GAAGunF,WAAW,CAACn2nB,KAAD,CAAvB;MACA,OAAO+pnB,cAAc,CAACn7E,GAAD,EAAM3zK,MAAN,EAAcL,QAAd,EAAwBovP,YAAxB,EAAsC1B,UAAtC,CAArB;IACH,CAHD,CAIA,OAAO37mB,KAAP,EAAc;MACV,MAAM4mnB,wBAAwB,CAAC8C,YAAD,EAAe1pnB,KAAK,CAAC6gH,OAArB,CAA9B;IACH;EACJ;;AAhEc;;AAkEnB6ogB,YAAY,CAAC7znB,IAAb;EAAA,iBAAyG6znB,YAAzG,EAj5JmGntmB,+DAi5JnG,CAAuI4vlB,oDAAvI,OAj5JmG5vlB,+DAi5JnG,CAA6JwwlB,gEAA7J;AAAA;;AACA2c,YAAY,CAAChC,KAAb,kBAl5JmGnrmB,0DAk5JnG;EAAA;EAAA,MAAuGmtmB,YAAvG;EAAA;EAAA;AAAA;;AACA;EAAA,mDAn5JmGntmB,+DAm5JnG,CAA2FmtmB,YAA3F,EAAqH,CAAC;IAC1GnznB,IAAI,EAAEu2mB,+CADoG;IAE1G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,UADP;MAECk+S,UAAU,EAAE;IAFb,CAAD;EAFoG,CAAD,CAArH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAElE,iDADwD;QAE9D6G,IAAI,EAAE,CAACizmB,oDAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAE51mB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAElE,iDAD4B;QAElC6G,IAAI,EAAE,CAAC6zmB,gEAAD;MAF4B,CAAD;IAA/B,CAH2B,CAAP;EAMlB,CAZxB;AAAA;;AAaA,SAASwc,OAAT,CAAiBl2nB,KAAjB,EAAwB;EACpB,OAAO,EAAEA,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,EAA3B,IAAiCA,KAAK,KAAKA,KAA7C,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASm2nB,WAAT,CAAqBn2nB,KAArB,EAA4B;EACxB;EACA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAACyM,KAAK,CAAC2uC,MAAM,CAACp7C,KAAD,CAAN,GAAgB2rE,UAAU,CAAC3rE,KAAD,CAA3B,CAAvC,EAA4E;IACxE,OAAOo7C,MAAM,CAACp7C,KAAD,CAAb;EACH;;EACD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC3B,MAAM,IAAIC,KAAJ,CAAW,GAAED,KAAM,kBAAnB,CAAN;EACH;;EACD,OAAOA,KAAP;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,MAAMu2nB,SAAN,CAAgB;EACZx+mB,SAAS,CAAC/X,KAAD,EAAQoI,KAAR,EAAeoR,GAAf,EAAoB;IACzB,IAAIxZ,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;IACJ,IAAI,CAAC,KAAK6zD,QAAL,CAAc7zD,KAAd,CAAL,EAA2B;MACvB,MAAMuznB,wBAAwB,CAACgD,SAAD,EAAYv2nB,KAAZ,CAA9B;IACH;;IACD,OAAOA,KAAK,CAAC8hB,KAAN,CAAY1Z,KAAZ,EAAmBoR,GAAnB,CAAP;EACH;;EACDq6C,QAAQ,CAAC/gB,GAAD,EAAM;IACV,OAAO,OAAOA,GAAP,KAAe,QAAf,IAA2BruC,KAAK,CAACikB,OAAN,CAAcoqB,GAAd,CAAlC;EACH;;AAXW;;AAahByjlB,SAAS,CAAC/znB,IAAV;EAAA,iBAAsG+znB,SAAtG;AAAA;;AACAA,SAAS,CAAClC,KAAV,kBAz+JmGnrmB,0DAy+JnG;EAAA;EAAA,MAAoGqtmB,SAApG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA1+JmGrtmB,+DA0+JnG,CAA2FqtmB,SAA3F,EAAkH,CAAC;IACvGrznB,IAAI,EAAEu2mB,+CADiG;IAEvG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE,OADP;MAEC0jnB,IAAI,EAAE,KAFP;MAGCxlU,UAAU,EAAE;IAHb,CAAD;EAFiG,CAAD,CAAlH;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM0nU,YAAY,GAAG,CACjB1C,SADiB,EAEjBa,aAFiB,EAGjBJ,aAHiB,EAIjBa,QAJiB,EAKjBmB,SALiB,EAMjBP,WANiB,EAOjBI,WAPiB,EAQjB3B,aARiB,EASjB4B,YATiB,EAUjBxB,QAViB,EAWjBG,cAXiB,EAYjBE,cAZiB,EAajBI,YAbiB,CAArB;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMmB,YAAN,CAAmB;;AAEnBA,YAAY,CAACj0nB,IAAb;EAAA,iBAAyGi0nB,YAAzG;AAAA;;AACAA,YAAY,CAACnrnB,IAAb,kBAjiKmG4d,8DAiiKnG;EAAA,MAA0GutmB;AAA1G;AACAA,YAAY,CAACjrnB,IAAb,kBAliKmG0d,8DAkiKnG;;AACA;EAAA,mDAniKmGA,+DAmiKnG,CAA2FutmB,YAA3F,EAAqH,CAAC;IAC1GvznB,IAAI,EAAEhE,mDADoG;IAE1G2G,IAAI,EAAE,CAAC;MACCoH,OAAO,EAAE,CAACqmnB,iBAAD,EAAoBkD,YAApB,CADV;MAEC3mlB,OAAO,EAAE,CAACyjlB,iBAAD,EAAoBkD,YAApB;IAFV,CAAD;EAFoG,CAAD,CAArH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,mBAAmB,GAAG,SAA5B;AACA,MAAMC,kBAAkB,GAAG,QAA3B;AACA,MAAMC,sBAAsB,GAAG,kBAA/B;AACA,MAAMC,qBAAqB,GAAG,iBAA9B;AACA;AACA;AACA;AACA;;AACA,SAAShuB,iBAAT,CAA2BzkmB,UAA3B,EAAuC;EACnC,OAAOA,UAAU,KAAKsynB,mBAAtB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASv3nB,gBAAT,CAA0BiF,UAA1B,EAAsC;EAClC,OAAOA,UAAU,KAAKuynB,kBAAtB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASG,mBAAT,CAA6B1ynB,UAA7B,EAAyC;EACrC,OAAOA,UAAU,KAAKwynB,sBAAtB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASG,kBAAT,CAA4B3ynB,UAA5B,EAAwC;EACpC,OAAOA,UAAU,KAAKyynB,qBAAtB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMG,OAAO,GAAG,IAAI52G,kDAAJ,CAAY,QAAZ,CAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM62G,gBAAN,CAAuB,GAEvB;AACA;;AACA;;;AACAA,gBAAgB,CAACt0nB,KAAjB,GAAyBC,oEAAkB,CAAC;EACxCC,KAAK,EAAEo0nB,gBADiC;EAExChwC,UAAU,EAAE,MAF4B;EAGxCnklB,OAAO,EAAE,MAAM,IAAIo0nB,uBAAJ,CAA4BnznB,0DAAQ,CAACgjlB,QAAD,CAApC,EAAgDr8kB,MAAhD;AAHyB,CAAD,CAA3C;AAKA;AACA;AACA;;AACA,MAAMwsnB,uBAAN,CAA8B;EAC1Bv3nB,WAAW,CAACyK,QAAD,EAAWM,MAAX,EAAmB;IAC1B,KAAKN,QAAL,GAAgBA,QAAhB;IACA,KAAKM,MAAL,GAAcA,MAAd;;IACA,KAAKkS,MAAL,GAAc,MAAM,CAAC,CAAD,EAAI,CAAJ,CAApB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIu6mB,SAAS,CAACv6mB,MAAD,EAAS;IACd,IAAInY,KAAK,CAACikB,OAAN,CAAc9L,MAAd,CAAJ,EAA2B;MACvB,KAAKA,MAAL,GAAc,MAAMA,MAApB;IACH,CAFD,MAGK;MACD,KAAKA,MAAL,GAAcA,MAAd;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACIw6mB,iBAAiB,GAAG;IAChB,IAAI,KAAKC,iBAAL,EAAJ,EAA8B;MAC1B,OAAO,CAAC,KAAK3snB,MAAL,CAAY8N,WAAb,EAA0B,KAAK9N,MAAL,CAAY+N,WAAtC,CAAP;IACH,CAFD,MAGK;MACD,OAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACI6+mB,gBAAgB,CAACvinB,QAAD,EAAW;IACvB,IAAI,KAAKsinB,iBAAL,EAAJ,EAA8B;MAC1B,KAAK3snB,MAAL,CAAYq6K,QAAZ,CAAqBhwK,QAAQ,CAAC,CAAD,CAA7B,EAAkCA,QAAQ,CAAC,CAAD,CAA1C;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIwinB,cAAc,CAACpunB,MAAD,EAAS;IACnB,IAAI,CAAC,KAAKkunB,iBAAL,EAAL,EAA+B;MAC3B;IACH;;IACD,MAAMG,UAAU,GAAGC,sBAAsB,CAAC,KAAKrtnB,QAAN,EAAgBjB,MAAhB,CAAzC;;IACA,IAAIqunB,UAAJ,EAAgB;MACZ,KAAKE,eAAL,CAAqBF,UAArB,EADY,CAEZ;MACA;MACA;MACA;MACA;MACA;;MACAA,UAAU,CAACvtgB,KAAX;IACH;EACJ;EACD;AACJ;AACA;;;EACI0tgB,2BAA2B,CAACC,iBAAD,EAAoB;IAC3C,IAAI,KAAKC,wBAAL,EAAJ,EAAqC;MACjC,MAAMjd,OAAO,GAAG,KAAKlwmB,MAAL,CAAYkwmB,OAA5B;;MACA,IAAIA,OAAO,IAAIA,OAAO,CAACgd,iBAAvB,EAA0C;QACtChd,OAAO,CAACgd,iBAAR,GAA4BA,iBAA5B;MACH;IACJ;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIF,eAAe,CAACljkB,EAAD,EAAK;IAChB,MAAMngD,IAAI,GAAGmgD,EAAE,CAACjmD,qBAAH,EAAb;IACA,MAAM4E,IAAI,GAAGkB,IAAI,CAAClB,IAAL,GAAY,KAAKzI,MAAL,CAAY8N,WAArC;IACA,MAAMlF,GAAG,GAAGe,IAAI,CAACf,GAAL,GAAW,KAAK5I,MAAL,CAAY+N,WAAnC;IACA,MAAMmE,MAAM,GAAG,KAAKA,MAAL,EAAf;IACA,KAAKlS,MAAL,CAAYq6K,QAAZ,CAAqB5xK,IAAI,GAAGyJ,MAAM,CAAC,CAAD,CAAlC,EAAuCtJ,GAAG,GAAGsJ,MAAM,CAAC,CAAD,CAAnD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIi7mB,wBAAwB,GAAG;IACvB,IAAI;MACA,IAAI,CAAC,KAAKR,iBAAL,EAAL,EAA+B;QAC3B,OAAO,KAAP;MACH,CAHD,CAIA;;;MACA,MAAMS,2BAA2B,GAAGC,4BAA4B,CAAC,KAAKrtnB,MAAL,CAAYkwmB,OAAb,CAA5B,IAChCmd,4BAA4B,CAACv2nB,MAAM,CAAC6zC,cAAP,CAAsB,KAAK3qC,MAAL,CAAYkwmB,OAAlC,CAAD,CADhC,CALA,CAOA;MACA;;MACA,OAAO,CAAC,CAACkd,2BAAF,IACH,CAAC,EAAEA,2BAA2B,CAACrilB,QAA5B,IAAwCqilB,2BAA2B,CAACt2mB,GAAtE,CADL;IAEH,CAXD,CAYA,MAAM;MACF,OAAO,KAAP;IACH;EACJ;;EACD61mB,iBAAiB,GAAG;IAChB,IAAI;MACA,OAAO,CAAC,CAAC,KAAK3snB,MAAP,IAAiB,CAAC,CAAC,KAAKA,MAAL,CAAYq6K,QAA/B,IAA2C,iBAAiB,KAAKr6K,MAAxE;IACH,CAFD,CAGA,MAAM;MACF,OAAO,KAAP;IACH;EACJ;;AA5HyB;;AA8H9B,SAASqtnB,4BAAT,CAAsCjllB,GAAtC,EAA2C;EACvC,OAAOtxC,MAAM,CAACq8C,wBAAP,CAAgC/K,GAAhC,EAAqC,mBAArC,CAAP;AACH;;AACD,SAAS2klB,sBAAT,CAAgCrtnB,QAAhC,EAA0CjB,MAA1C,EAAkD;EAC9C,MAAM6unB,cAAc,GAAG5tnB,QAAQ,CAAC6tnB,cAAT,CAAwB9unB,MAAxB,KAAmCiB,QAAQ,CAAC8tnB,iBAAT,CAA2B/unB,MAA3B,EAAmC,CAAnC,CAA1D;;EACA,IAAI6unB,cAAJ,EAAoB;IAChB,OAAOA,cAAP;EACH,CAJ6C,CAK9C;EACA;;;EACA,IAAI,OAAO5tnB,QAAQ,CAAC+tnB,gBAAhB,KAAqC,UAArC,IAAmD/tnB,QAAQ,CAACuM,IAA5D,KACCvM,QAAQ,CAACuM,IAAT,CAAc8zlB,gBAAd,IAAkCrgmB,QAAQ,CAACuM,IAAT,CAAc+zlB,YADjD,CAAJ,EACoE;IAChE,MAAM0tB,UAAU,GAAGhunB,QAAQ,CAAC+tnB,gBAAT,CAA0B/tnB,QAAQ,CAACuM,IAAnC,EAAyC0hnB,UAAU,CAACC,YAApD,CAAnB;IACA,IAAIzgnB,WAAW,GAAGugnB,UAAU,CAACvgnB,WAA7B;;IACA,OAAOA,WAAP,EAAoB;MAChB,MAAMgzlB,UAAU,GAAGhzlB,WAAW,CAACgzlB,UAA/B;;MACA,IAAIA,UAAJ,EAAgB;QACZ;QACA;QACA,MAAM5ilB,MAAM,GAAG4ilB,UAAU,CAACotB,cAAX,CAA0B9unB,MAA1B,KAAqC0hmB,UAAU,CAAC7tlB,aAAX,CAA0B,UAAS7T,MAAO,IAA1C,CAApD;;QACA,IAAI8e,MAAJ,EAAY;UACR,OAAOA,MAAP;QACH;MACJ;;MACDpQ,WAAW,GAAGugnB,UAAU,CAACxhhB,QAAX,EAAd;IACH;EACJ;;EACD,OAAO,IAAP;AACH;AACD;AACA;AACA;;;AACA,MAAM2hhB,oBAAN,CAA2B;EACvB;AACJ;AACA;EACIpB,SAAS,CAACv6mB,MAAD,EAAS,CAAG;EACrB;AACJ;AACA;;;EACIw6mB,iBAAiB,GAAG;IAChB,OAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;EACH;EACD;AACJ;AACA;;;EACIE,gBAAgB,CAACvinB,QAAD,EAAW,CAAG;EAC9B;AACJ;AACA;;;EACIwinB,cAAc,CAACiB,MAAD,EAAS,CAAG;EAC1B;AACJ;AACA;;;EACIb,2BAA2B,CAACC,iBAAD,EAAoB,CAAG;;AAtB3B;AAyB3B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMa,UAAN,CAAiB;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,MAAT,CAAgB9pkB,GAAhB,EAAqBv2C,GAArB,EAA0B;EACtB;EACA,OAAOsgnB,aAAa,CAAC/pkB,GAAD,CAAb,GAAqB,IAAIu6P,GAAJ,CAAQv6P,GAAR,CAArB,GAAoC,IAAIu6P,GAAJ,CAAQv6P,GAAR,EAAav2C,GAAG,CAACqd,QAAJ,CAAau2V,IAA1B,CAA3C;AACH,EACD;;;AACA,SAAS0sQ,aAAT,CAAuB/pkB,GAAvB,EAA4B;EACxB,OAAO,eAAel3C,IAAf,CAAoBk3C,GAApB,CAAP;AACH,EACD;AACA;;;AACA,SAASgqkB,eAAT,CAAyBtsnB,GAAzB,EAA8B;EAC1B,OAAOqsnB,aAAa,CAACrsnB,GAAD,CAAb,GAAsB,IAAI68S,GAAJ,CAAQ78S,GAAR,CAAD,CAAewqT,QAApC,GAA+CxqT,GAAtD;AACH;;AACD,SAASusnB,WAAT,CAAqBtjkB,IAArB,EAA2B;EACvB,MAAM2kc,QAAQ,GAAG,OAAO3kc,IAAP,KAAgB,QAAjC;;EACA,IAAI,CAAC2kc,QAAD,IAAa3kc,IAAI,CAACrf,IAAL,OAAgB,EAAjC,EAAqC;IACjC,OAAO,KAAP;EACH,CAJsB,CAKvB;;;EACA,IAAI;IACA,MAAM5pC,GAAG,GAAG,IAAI68S,GAAJ,CAAQ5zP,IAAR,CAAZ;IACA,OAAO,IAAP;EACH,CAHD,CAIA,MAAM;IACF,OAAO,KAAP;EACH;AACJ;;AACD,SAASujkB,aAAT,CAAuBvjkB,IAAvB,EAA6B;EACzB,OAAOA,IAAI,CAACo1E,QAAL,CAAc,GAAd,IAAqBp1E,IAAI,CAACzzC,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,CAArB,GAAyCyzC,IAAhD;AACH;;AACD,SAASwjkB,YAAT,CAAsBnqkB,GAAtB,EAA2B;EACvB,OAAOA,GAAG,CAACq0C,UAAJ,CAAe,GAAf,IAAsBr0C,GAAG,CAAC9sC,KAAJ,CAAU,CAAV,CAAtB,GAAqC8sC,GAA5C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMoqkB,eAAe,GAAI/of,MAAD,IAAYA,MAAM,CAACrhF,GAA3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqqkB,YAAY,GAAG,IAAIryC,yDAAJ,CAAmB,aAAnB,EAAkC;EACnDK,UAAU,EAAE,MADuC;EAEnDnklB,OAAO,EAAE,MAAMk2nB;AAFoC,CAAlC,CAArB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,iBAAT,CAA2BC,UAA3B,EAAuCC,WAAvC,EAAoD;EAChD,OAAO,SAASC,kBAAT,CAA4B9jkB,IAA5B,EAAkC;IACrC,IAAI,CAACsjkB,WAAW,CAACtjkB,IAAD,CAAhB,EAAwB;MACpB+jkB,qBAAqB,CAAC/jkB,IAAD,EAAO6jkB,WAAW,IAAI,EAAtB,CAArB;IACH,CAHoC,CAIrC;IACA;;;IACA7jkB,IAAI,GAAGujkB,aAAa,CAACvjkB,IAAD,CAApB;;IACA,MAAMgkkB,QAAQ,GAAItpf,MAAD,IAAY;MACzB,IAAI0of,aAAa,CAAC1of,MAAM,CAACrhF,GAAR,CAAjB,EAA+B;QAC3B;QACA;QACA;QACA;QACA;QACA4qkB,+BAA+B,CAACjkkB,IAAD,EAAO06E,MAAM,CAACrhF,GAAd,CAA/B;MACH;;MACD,OAAOuqkB,UAAU,CAAC5jkB,IAAD,EAAO,EAAE,GAAG06E,MAAL;QAAarhF,GAAG,EAAEmqkB,YAAY,CAAC9of,MAAM,CAACrhF,GAAR;MAA9B,CAAP,CAAjB;IACH,CAVD;;IAWA,MAAM1jD,SAAS,GAAG,CAAC;MAAEC,OAAO,EAAE8tnB,YAAX;MAAyBQ,QAAQ,EAAEF;IAAnC,CAAD,CAAlB;IACA,OAAOrunB,SAAP;EACH,CApBD;AAqBH;;AACD,SAASounB,qBAAT,CAA+B/jkB,IAA/B,EAAqC6jkB,WAArC,EAAkD;EAC9C,MAAM,IAAIl+D,2DAAJ,CAAkB;EAAK;EAAvB,EAAwEl4jB,SAAS,IAClF,gDAA+CuyD,IAAK,OAArD,GACK,kEAAiE6jkB,WAAW,CAACtwmB,IAAZ,CAAiB,MAAjB,CAAyB,EAF7F,CAAN;AAGH;;AACD,SAAS0wmB,+BAAT,CAAyCjkkB,IAAzC,EAA+CjpD,GAA/C,EAAoD;EAChD,MAAM,IAAI4ujB,2DAAJ,CAAkB;EAAK;EAAvB,EAAwEl4jB,SAAS,IAClF,kFAAiFsJ,GAAI,IAAtF,GACK,6DADL,GAEK,iDAFL,GAGK,oEAHL,GAIK,iCAAgCipD,IAAK,MALxC,CAAN;AAMH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmkkB,uBAAuB,GAAGR,iBAAiB,CAACS,mBAAD,EAAsB32nB,SAAS,GAAG,CAAC,uDAAD,CAAH,GAA+DjB,SAA9F,CAAjD;;AACA,SAAS43nB,mBAAT,CAA6BpkkB,IAA7B,EAAmC06E,MAAnC,EAA2C;EACvC,IAAI17G,MAAM,GAAI,aAAd;;EACA,IAAI07G,MAAM,CAACp9H,KAAX,EAAkB;IACd0hB,MAAM,IAAK,UAAS07G,MAAM,CAACp9H,KAAM,EAAjC;EACH,CAJsC,CAKvC;EACA;;;EACA,OAAQ,GAAE0iD,IAAK,kBAAiBhhC,MAAO,IAAG07G,MAAM,CAACrhF,GAAI,EAArD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMgrkB,oBAAoB,GAAG;EACzBhpnB,IAAI,EAAE,YADmB;EAEzBipnB,OAAO,EAAEC;AAFgB,CAA7B;AAIA,MAAMC,uBAAuB,GAAG,yCAAhC;AACA;AACA;AACA;;AACA,SAASD,eAAT,CAAyBxtnB,GAAzB,EAA8B;EAC1B,OAAOytnB,uBAAuB,CAACrinB,IAAxB,CAA6BpL,GAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0tnB,uBAAuB,GAAGd,iBAAiB,CAACe,mBAAD,EAAsBj3nB,SAAS,GAC5E,CACI,mCADJ,EACyC,+BADzC,EAEI,8BAFJ,CAD4E,GAK5EjB,SAL6C,CAAjD;;AAMA,SAASk4nB,mBAAT,CAA6B1kkB,IAA7B,EAAmC06E,MAAnC,EAA2C;EACvC;EACA;EACA;EACA;EACA,IAAI17G,MAAM,GAAI,eAAd,CALuC,CAKT;;EAC9B,IAAI07G,MAAM,CAACp9H,KAAX,EAAkB;IACd0hB,MAAM,IAAK,MAAK07G,MAAM,CAACp9H,KAAM,EAA7B;EACH;;EACD,OAAQ,GAAE0iD,IAAK,iBAAgBhhC,MAAO,IAAG07G,MAAM,CAACrhF,GAAI,EAApD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMsrkB,kBAAkB,GAAG;EACvBtpnB,IAAI,EAAE,UADiB;EAEvBipnB,OAAO,EAAEM;AAFc,CAA3B;AAIA,MAAMC,sBAAsB,GAAG,sCAA/B;AACA;AACA;AACA;;AACA,SAASD,aAAT,CAAuB7tnB,GAAvB,EAA4B;EACxB,OAAO8tnB,sBAAsB,CAAC1inB,IAAvB,CAA4BpL,GAA5B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+tnB,qBAAqB,GAAGnB,iBAAiB,CAACoB,iBAAD,EAAoBt3nB,SAAS,GAAG,CAAC,+BAAD,EAAkC,8BAAlC,CAAH,GAAuEjB,SAApG,CAA/C;;AACA,SAASu4nB,iBAAT,CAA2B/kkB,IAA3B,EAAiC06E,MAAjC,EAAyC;EACrC;EACA;EACA,IAAI17G,MAAM,GAAI,WAAd,CAHqC,CAGX;;EAC1B,IAAI07G,MAAM,CAACp9H,KAAX,EAAkB;IACd0hB,MAAM,IAAK,MAAK07G,MAAM,CAACp9H,KAAM,EAA7B;EACH;;EACD,OAAQ,GAAE0iD,IAAK,IAAGhhC,MAAO,IAAG07G,MAAM,CAACrhF,GAAI,EAAvC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM2rkB,eAAe,GAAG;EACpB3pnB,IAAI,EAAE,OADc;EAEpBipnB,OAAO,EAAEW;AAFW,CAAxB;AAIA,MAAMC,kBAAkB,GAAG,oCAA3B;AACA;AACA;AACA;;AACA,SAASD,UAAT,CAAoBlunB,GAApB,EAAyB;EACrB,OAAOmunB,kBAAkB,CAAC/inB,IAAnB,CAAwBpL,GAAxB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMounB,kBAAkB,GAAGxB,iBAAiB,CAACyB,cAAD,EAAiB33nB,SAAS,GAAG,CAAC,6BAAD,CAAH,GAAqCjB,SAA/D,CAA5C;;AACA,SAAS44nB,cAAT,CAAwBplkB,IAAxB,EAA8B06E,MAA9B,EAAsC;EAClC,MAAM3jI,GAAG,GAAG,IAAI68S,GAAJ,CAAS,GAAE5zP,IAAK,IAAG06E,MAAM,CAACrhF,GAAI,EAA9B,CAAZ,CADkC,CAElC;;EACAtiD,GAAG,CAACsunB,YAAJ,CAAiBp5mB,GAAjB,CAAqB,MAArB,EAA6B,QAA7B;;EACA,IAAIyuH,MAAM,CAACp9H,KAAX,EAAkB;IACdvG,GAAG,CAACsunB,YAAJ,CAAiBp5mB,GAAjB,CAAqB,GAArB,EAA0ByuH,MAAM,CAACp9H,KAAP,CAAahP,QAAb,EAA1B;EACH;;EACD,OAAOyI,GAAG,CAAC2/W,IAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4uQ,mBAAT,CAA6BC,KAA7B,EAAoCC,YAAY,GAAG,IAAnD,EAAyD;EACrD,MAAMC,SAAS,GAAGD,YAAY,GAAI,oDAAmDD,KAAM,OAA7D,GAAsE,EAApG;EACA,OAAQ,kCAAiCE,SAAU,mBAAnD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,aAAT,CAAuBC,SAAvB,EAAkC;EAC9B,IAAI,CAACl4nB,SAAL,EAAgB;IACZ,MAAM,IAAIk4jB,2DAAJ,CAAkB;IAAK;IAAvB,EAAuF,gCAA+BggE,SAAU,qBAA1C,GACvF,uEADC,CAAN;EAEH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,CAAuB;EACnBx7nB,WAAW,GAAG;IACV;IACA,KAAKytW,MAAL,GAAc,IAAIvsV,GAAJ,EAAd,CAFU,CAGV;;IACA,KAAKu6mB,aAAL,GAAqB,IAAIpzmB,GAAJ,EAArB;IACA,KAAKtd,MAAL,GAAc,IAAd;IACA,KAAKkha,QAAL,GAAgB,IAAhB;IACAqvN,aAAa,CAAC,aAAD,CAAb;IACA,MAAM5inB,GAAG,GAAGwukB,qDAAM,CAACE,QAAD,CAAN,CAAiBxukB,WAA7B;;IACA,IAAI,OAAOF,GAAP,KAAe,WAAf,IAA8B,OAAOgjnB,mBAAP,KAA+B,WAAjE,EAA8E;MAC1E,KAAK3wnB,MAAL,GAAc2N,GAAd;MACA,KAAKuzZ,QAAL,GAAgB,KAAK0vN,uBAAL,EAAhB;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACIA,uBAAuB,GAAG;IACtB,MAAM1vN,QAAQ,GAAG,IAAIyvN,mBAAJ,CAAyBE,SAAD,IAAe;MACpD,MAAMjlP,OAAO,GAAGilP,SAAS,CAACjjY,UAAV,EAAhB;MACA,IAAIg+I,OAAO,CAAC/0Y,MAAR,KAAmB,CAAvB,EACI,OAHgD,CAIpD;MACA;MACA;MACA;;MACA,MAAMi6nB,UAAU,GAAGllP,OAAO,CAACA,OAAO,CAAC/0Y,MAAR,GAAiB,CAAlB,CAA1B,CARoD,CASpD;MACA;;MACA,MAAMk6nB,MAAM,GAAGD,UAAU,CAACltnB,OAAX,EAAoBsgD,GAApB,IAA2B,EAA1C,CAXoD,CAYpD;;MACA,IAAI6skB,MAAM,CAACx4hB,UAAP,CAAkB,OAAlB,KAA8Bw4hB,MAAM,CAACx4hB,UAAP,CAAkB,OAAlB,CAAlC,EACI;MACJ,MAAMy4hB,QAAQ,GAAG,KAAKtuR,MAAL,CAAYrkW,GAAZ,CAAgB0ynB,MAAhB,CAAjB;;MACA,IAAIC,QAAQ,IAAI,CAAC,KAAKN,aAAL,CAAmBhzmB,GAAnB,CAAuBqzmB,MAAvB,CAAjB,EAAiD;QAC7C,KAAKL,aAAL,CAAmBlzmB,GAAnB,CAAuBuzmB,MAAvB;QACAE,yBAAyB,CAACF,MAAD,CAAzB;MACH;IACJ,CApBgB,CAAjB;IAqBA7vN,QAAQ,CAAC1gL,OAAT,CAAiB;MAAEhoP,IAAI,EAAE,0BAAR;MAAoC04nB,QAAQ,EAAE;IAA9C,CAAjB;IACA,OAAOhwN,QAAP;EACH;;EACDiwN,aAAa,CAACC,YAAD,EAAeC,aAAf,EAA8B;IACvC,IAAI,CAAC,KAAKnwN,QAAV,EACI;IACJ,KAAKx+D,MAAL,CAAY5rV,GAAZ,CAAgBk3mB,MAAM,CAACoD,YAAD,EAAe,KAAKpxnB,MAApB,CAAN,CAAkCuhX,IAAlD,EAAwD8vQ,aAAxD;EACH;;EACDC,eAAe,CAACF,YAAD,EAAe;IAC1B,IAAI,CAAC,KAAKlwN,QAAV,EACI;IACJ,KAAKx+D,MAAL,CAAY3tT,MAAZ,CAAmBi5kB,MAAM,CAACoD,YAAD,EAAe,KAAKpxnB,MAApB,CAAN,CAAkCuhX,IAArD;EACH;;EACD5jX,WAAW,GAAG;IACV,IAAI,CAAC,KAAKuja,QAAV,EACI;IACJ,KAAKA,QAAL,CAAczgL,UAAd;IACA,KAAKiiH,MAAL,CAAY1rW,KAAZ;IACA,KAAK05nB,aAAL,CAAmB15nB,KAAnB;EACH;;AA5DkB;;AA8DvBy5nB,gBAAgB,CAAC34nB,IAAjB;EAAA,iBAA6G24nB,gBAA7G;AAAA;;AACAA,gBAAgB,CAACx4nB,KAAjB,kBApsLmGumB,gEAosLnG;EAAA,OAAiHiymB,gBAAjH;EAAA,SAAiHA,gBAAjH;EAAA,YAA+I;AAA/I;;AACA;EAAA,mDArsLmGjymB,+DAqsLnG,CAA2FiymB,gBAA3F,EAAyH,CAAC;IAC9Gj4nB,IAAI,EAAEtE,qDADwG;IAE9GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFwG,CAAD,CAAzH,EAG4B,YAAY;IAAE,OAAO,EAAP;EAAY,CAHtD;AAAA;;AAIA,SAAS00C,yBAAT,CAAmCb,KAAnC,EAA0C;EACtC,MAAMmB,gBAAgB,GAAGpB,mBAAmB,CAACC,KAAD,CAA5C;EACAvllB,OAAO,CAACC,IAAR,CAAamkkB,qEAAmB,CAAC;EAAK;EAAN,EAAwD,GAAEsiB,gBAAiB,oDAApB,GAClF,qEADkF,GAElF,iDAFkF,GAGlF,4CAH2B,CAAhC;AAIH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,mCAAmC,GAAG,IAAIl0mB,GAAJ,CAAQ,CAAC,WAAD,EAAc,WAAd,EAA2B,SAA3B,CAAR,CAA5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMm0mB,0BAA0B,GAAG,IAAIv1C,yDAAJ,CAAmB,4BAAnB,CAAnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMw1C,qBAAN,CAA4B;EACxBz8nB,WAAW,GAAG;IACV,KAAKyK,QAAL,GAAgBy8kB,qDAAM,CAACE,QAAD,CAAtB;IACA;AACR;AACA;AACA;;IACQ,KAAKs1C,eAAL,GAAuB,IAAvB;IACA;AACR;AACA;;IACQ,KAAKC,WAAL,GAAmB,IAAIt0mB,GAAJ,EAAnB;IACA,KAAKtd,MAAL,GAAc,IAAd;IACA,KAAK6xnB,SAAL,GAAiB,IAAIv0mB,GAAJ,CAAQk0mB,mCAAR,CAAjB;IACAjB,aAAa,CAAC,yBAAD,CAAb;IACA,MAAM5inB,GAAG,GAAG,KAAKjO,QAAL,CAAcmO,WAA1B;;IACA,IAAI,OAAOF,GAAP,KAAe,WAAnB,EAAgC;MAC5B,KAAK3N,MAAL,GAAc2N,GAAd;IACH;;IACD,MAAMkknB,SAAS,GAAG11C,qDAAM,CAACs1C,0BAAD,EAA6B;MAAE1hlB,QAAQ,EAAE;IAAZ,CAA7B,CAAxB;;IACA,IAAI8hlB,SAAJ,EAAe;MACX,KAAKC,iBAAL,CAAuBD,SAAvB;IACH;EACJ;;EACDC,iBAAiB,CAACC,OAAD,EAAU;IACvB,IAAIh4nB,KAAK,CAACikB,OAAN,CAAc+zmB,OAAd,CAAJ,EAA4B;MACxBC,WAAW,CAACD,OAAD,EAAUxsH,MAAM,IAAI;QAC3B,KAAKssH,SAAL,CAAer0mB,GAAf,CAAmB0wmB,eAAe,CAAC3oH,MAAD,CAAlC;MACH,CAFU,CAAX;IAGH,CAJD,MAKK;MACD,KAAKssH,SAAL,CAAer0mB,GAAf,CAAmB0wmB,eAAe,CAAC6D,OAAD,CAAlC;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIE,gBAAgB,CAACb,YAAD,EAAeC,aAAf,EAA8B;IAC1C,IAAI,CAAC,KAAKrxnB,MAAV,EACI;IACJ,MAAMkynB,MAAM,GAAGlE,MAAM,CAACoD,YAAD,EAAe,KAAKpxnB,MAApB,CAArB;IACA,IAAI,KAAK6xnB,SAAL,CAAen0mB,GAAf,CAAmBw0mB,MAAM,CAAC9lU,QAA1B,KAAuC,KAAKwlU,WAAL,CAAiBl0mB,GAAjB,CAAqBw0mB,MAAM,CAAC3sH,MAA5B,CAA3C,EACI,OALsC,CAM1C;;IACA,KAAKqsH,WAAL,CAAiBp0mB,GAAjB,CAAqB00mB,MAAM,CAAC3sH,MAA5B;;IACA,IAAI,CAAC,KAAKosH,eAAV,EAA2B;MACvB;MACA;MACA;MACA;MACA,KAAKA,eAAL,GAAuB,KAAKQ,oBAAL,EAAvB;IACH;;IACD,IAAI,CAAC,KAAKR,eAAL,CAAqBj0mB,GAArB,CAAyBw0mB,MAAM,CAAC3sH,MAAhC,CAAL,EAA8C;MAC1C16d,OAAO,CAACC,IAAR,CAAamkkB,qEAAmB,CAAC;MAAK;MAAN,EAAmE,GAAEkhB,mBAAmB,CAACkB,aAAD,CAAgB,+CAAtC,GAC7F,sFAD6F,GAE7F,kFAF6F,GAG7F,4CAH6F,GAI7F,kCAAiCa,MAAM,CAAC3sH,MAAO,IAJpB,CAAhC;IAKH;EACJ;;EACD4sH,oBAAoB,GAAG;IACnB,MAAMC,cAAc,GAAG,IAAI90mB,GAAJ,EAAvB;IACA,MAAMwC,QAAQ,GAAG,sBAAjB;IACA,MAAMqka,KAAK,GAAGpqb,KAAK,CAAC6lB,IAAN,CAAW,KAAKlgB,QAAL,CAAci9G,gBAAd,CAA+B78F,QAA/B,CAAX,CAAd;;IACA,KAAK,IAAI+8b,IAAT,IAAiB14B,KAAjB,EAAwB;MACpB,MAAMvib,GAAG,GAAGosnB,MAAM,CAACnxK,IAAI,CAACt7F,IAAN,EAAY,KAAKvhX,MAAjB,CAAlB;MACAoynB,cAAc,CAAC50mB,GAAf,CAAmB5b,GAAG,CAAC2jgB,MAAvB;IACH;;IACD,OAAO6sH,cAAP;EACH;;EACDz0nB,WAAW,GAAG;IACV,KAAKg0nB,eAAL,EAAsB36nB,KAAtB;IACA,KAAK46nB,WAAL,CAAiB56nB,KAAjB;EACH;;AA7EuB;;AA+E5B06nB,qBAAqB,CAAC55nB,IAAtB;EAAA,iBAAkH45nB,qBAAlH;AAAA;;AACAA,qBAAqB,CAACz5nB,KAAtB,kBAp0LmGumB,gEAo0LnG;EAAA,OAAsHkzmB,qBAAtH;EAAA,SAAsHA,qBAAtH;EAAA,YAAyJ;AAAzJ;;AACA;EAAA,mDAr0LmGlzmB,+DAq0LnG,CAA2FkzmB,qBAA3F,EAA8H,CAAC;IACnHl5nB,IAAI,EAAEtE,qDAD6G;IAEnHiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAF6G,CAAD,CAA9H,EAG4B,YAAY;IAAE,OAAO,EAAP;EAAY,CAHtD;AAAA;AAIA;AACA;AACA;AACA;;;AACA,SAASy1C,WAAT,CAAqBnjhB,KAArB,EAA4B34G,EAA5B,EAAgC;EAC5B,KAAK,IAAIZ,KAAT,IAAkBu5G,KAAlB,EAAyB;IACrB90G,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,IAAuB08nB,WAAW,CAAC18nB,KAAD,EAAQY,EAAR,CAAlC,GAAgDA,EAAE,CAACZ,KAAD,CAAlD;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+8nB,8BAA8B,GAAG,CAAvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,IAAIp2C,yDAAJ,CAAmB,+BAAnB,EAAoD;EAAEK,UAAU,EAAE,MAAd;EAAsBnklB,OAAO,EAAE,MAAM,IAAIklB,GAAJ;AAArC,CAApD,CAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi1mB,kBAAN,CAAyB;EACrBt9nB,WAAW,GAAG;IACV,KAAKu9nB,eAAL,GAAuBr2C,qDAAM,CAACm2C,gBAAD,CAA7B;IACA,KAAK5ynB,QAAL,GAAgBy8kB,qDAAM,CAACE,QAAD,CAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIo2C,oBAAoB,CAAC5hY,QAAD,EAAW3sM,GAAX,EAAgBwukB,MAAhB,EAAwB59Y,KAAxB,EAA+B;IAC/C,IAAIx8O,SAAJ,EAAe;MACX,IAAI,KAAKk6nB,eAAL,CAAqB19kB,IAArB,IAA6Bu9kB,8BAAjC,EAAiE;QAC7D,MAAM,IAAI7hE,2DAAJ,CAAkB;QAAK;QAAvB,EAAyEl4jB,SAAS,IACnF,iEAAD,GACK,GAAE+5nB,8BAA+B,mCADtC,GAEK,mEAFL,GAGK,8EAJH,CAAN;MAKH;IACJ;;IACD,IAAI,KAAKG,eAAL,CAAqB90mB,GAArB,CAAyBwmC,GAAzB,CAAJ,EAAmC;MAC/B;IACH;;IACD,KAAKsukB,eAAL,CAAqBh1mB,GAArB,CAAyB0mC,GAAzB;IACA,MAAMyukB,OAAO,GAAG9hY,QAAQ,CAAC9mM,aAAT,CAAuB,MAAvB,CAAhB;IACA8mM,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,IAA/B,EAAqC,OAArC;IACA9hY,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,MAA/B,EAAuCzukB,GAAvC;IACA2sM,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,KAA/B,EAAsC,SAAtC;IACA9hY,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,eAA/B,EAAgD,MAAhD;;IACA,IAAI79Y,KAAJ,EAAW;MACP+b,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,YAA/B,EAA6C79Y,KAA7C;IACH;;IACD,IAAI49Y,MAAJ,EAAY;MACR7hY,QAAQ,CAAC9gP,YAAT,CAAsB4inB,OAAtB,EAA+B,aAA/B,EAA8CD,MAA9C;IACH;;IACD7hY,QAAQ,CAACjuL,WAAT,CAAqB,KAAKljE,QAAL,CAAc4ha,IAAnC,EAAyCqxN,OAAzC;EACH;;AA/CoB;;AAiDzBJ,kBAAkB,CAACz6nB,IAAnB;EAAA,iBAA+Gy6nB,kBAA/G;AAAA;;AACAA,kBAAkB,CAACt6nB,KAAnB,kBA36LmGumB,gEA26LnG;EAAA,OAAmH+zmB,kBAAnH;EAAA,SAAmHA,kBAAnH;EAAA,YAAmJ;AAAnJ;;AACA;EAAA,mDA56LmG/zmB,+DA46LnG,CAA2F+zmB,kBAA3F,EAA2H,CAAC;IAChH/5nB,IAAI,EAAEtE,qDAD0G;IAEhHiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAF0G,CAAD,CAA3H;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMq2C,8BAA8B,GAAG,EAAvC;AACA;AACA;AACA;AACA;;AACA,MAAMC,6BAA6B,GAAG,2BAAtC;AACA;AACA;AACA;AACA;;AACA,MAAMC,+BAA+B,GAAG,mCAAxC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,2BAA2B,GAAG,CAApC;AACA;AACA;AACA;AACA;;AACA,MAAMC,8BAA8B,GAAG,CAAvC;AACA;AACA;AACA;;AACA,MAAMC,0BAA0B,GAAG,CAAC,CAAD,EAAI,CAAJ,CAAnC;AACA;AACA;AACA;;AACA,MAAMC,0BAA0B,GAAG,GAAnC;AACA;AACA;AACA;;AACA,MAAMC,sBAAsB,GAAG,EAA/B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;AACA;AACA;AACA;;AACA,MAAMC,wBAAwB,GAAG,IAAjC;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAAC1D,eAAD,EAAkBL,kBAAlB,EAAsCN,oBAAtC,CAAzB;AACA,MAAMsE,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,IAAIx3C,yDAAJ,CAAmB,aAAnB,EAAkC;EAAEK,UAAU,EAAE,MAAd;EAAsBnklB,OAAO,EAAE,MAAMo7nB;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;EACnB1+nB,WAAW,GAAG;IACV,KAAK2+nB,WAAL,GAAmBz3C,qDAAM,CAACoyC,YAAD,CAAzB;IACA,KAAKhpf,MAAL,GAAcsuf,aAAa,CAAC13C,qDAAM,CAACu3C,YAAD,CAAP,CAA3B;IACA,KAAK7iY,QAAL,GAAgBsrV,qDAAM,CAAC+yB,oDAAD,CAAtB;IACA,KAAK4kB,UAAL,GAAkB33C,qDAAM,CAACv3iB,qDAAD,CAAN,CAAmB3Z,aAArC;IACA,KAAKk2kB,QAAL,GAAgBhlB,qDAAM,CAAC4e,mDAAD,CAAtB;IACA,KAAKg5B,QAAL,GAAgBt/nB,gBAAgB,CAAC0nlB,qDAAM,CAAC5nlB,sDAAD,CAAP,CAAhC;IACA,KAAKy/nB,kBAAL,GAA0B73C,qDAAM,CAACo2C,kBAAD,CAAhC,CAPU,CAQV;;IACA,KAAK0B,WAAL,GAAmB37nB,SAAS,GAAG,KAAK6omB,QAAL,CAAc9imB,GAAd,CAAkBoynB,gBAAlB,CAAH,GAAyC,IAArE;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAKyD,YAAL,GAAoB,IAApB;IACA,KAAKC,SAAL,GAAiB,KAAjB;IACA,KAAKC,uBAAL,GAA+B,KAA/B;IACA,KAAKzkO,KAAL,GAAa,KAAb;EACH;EACD;AACJ;AACA;AACA;;;EACa,IAALxnZ,KAAK,CAAC7S,KAAD,EAAQ;IACbgD,SAAS,IAAI+7nB,qBAAq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EAIH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASqF,iCAAT,CAA2Cz3gB,GAA3C,EAAgD41gB,WAAhD,EAA6D;EACzD,IAAI51gB,GAAG,CAACw4gB,YAAJ,IAAoB5C,WAAW,KAAKtF,eAAxC,EAAyD;IACrDzjlB,OAAO,CAACC,IAAR,CAAamkkB,qEAAmB,CAAC;IAAK;IAAN,EAAwD,GAAEkhB,mBAAmB,CAACnygB,GAAG,CAACoygB,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,MAAM6J,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;EACAlloB,WAAW,CAACmloB,OAAD,EAAU;IACjB;AACR;AACA;AACA;IACQ,KAAKC,eAAL,GAAuB,IAAIlknB,GAAJ,EAAvB;IACA;AACR;AACA;;IACQ,KAAKmknB,UAAL,GAAkB,IAAlB;;IACA,IAAI,CAACF,OAAL,EAAc;MACV,KAAKA,OAAL,GAAe,IAAIjknB,GAAJ,EAAf;IACH,CAFD,MAGK,IAAI,OAAOiknB,OAAP,KAAmB,QAAvB,EAAiC;MAClC,KAAKG,QAAL,GAAgB,MAAM;QAClB,KAAKH,OAAL,GA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CQ,KAAKu3nB,EAAL,GAAU,KAAV,CAPc,CAQd;IACA;IACA;;IACA,IAAI,KAAKlrgB,MAAL,IAAe,GAAf,IAAsB,KAAKA,MAAL,GAAc,GAAxC,EAA6C;MACzC,KAAKzP,OAAL,GAAgB,mCAAkCl5F,IAAI,CAAChoB,GAAL,IAAY,eAAgB,EAA9E;IACH,CAFD,MAGK;MACD,KAAKkhH,OAAL,GAAgB,6BAA4Bl5F,IAAI,CAAChoB,GAAL,IAAY,eAAgB,KAAIgoB,IAAI,CAAC2oG,MAAO,IAAG3oG,IAAI,CAACojf,UAAW,EAA3G;IACH;;IACD,KAAK/qgB,KAAL,GAAa2nB,IAAI,CAAC3nB,KAAL,IAAc,IAA3B;EACH;;AAnB4C;AAsBjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS87nB,OAAT,CAAiBhooB,OAAjB,EAA0BkW,IAA1B,EAAgC;EAC5B,OAAO;IACHA,IADG;IAEHmunB,OAAO,EAAErkoB,OAAO,CAACqkoB,OAFd;IAGHnpmB,OAAO,EAAEl7B,OAAO,CAACk7B,OAHd;IAIHuvN,OAAO,EAAEzqP,OAAO,CAACyqP,OAJd;IAKH32N,MAAM,EAAE9zB,OAAO,CAAC8zB,MALb;IAMHgzmB,cAAc,EAAE9moB,OAAO,CAAC8moB,cANrB;IAOH73H,YAAY,EAAEjvgB,OAAO,CAACivgB,YAPnB;IAQH83H,eAAe,EAAE/moB,OAAO,CAAC+moB;EARtB,CAAP;AAUH;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,MAAM37nB,UAAN,CAAiB;EACblM,WAAW,CAACsK,OAAD,EAAU;IACjB,KAA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AAD,CAAN,IAAyC10b,MAAzC;IACAu7b,eAAe,GAAG51oB,MAAlB;IACAA,MAAM,GAAGA,MAAM,CAAC6uoB,MAAD,CAAf;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgH,gBAAgB,GAAG;EACrBC,MAAM,EAAEC,YAAY,CAAC,IAAD,CADC;EAErBC,eAAe,EAAE;AAFI,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,uBAAuB,GAAG,KAA9B;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,+BAAT,GAA2C;EACvC,OAAOL,gBAAgB,CAACC,MAAjB,CAAwB91oB,MAAxB,KAAmC,IAA1C;AACH;;AACD,SAASm2oB,oBAAT,GAAgC;EAC5B,OAAON,gBAAgB,CAACC,MAAjB,CAAwBM,iBAA/B;AACH;;AACD,SAASC,yBAAT,GAAqC;EACjCR,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASE,yBAAT,GAAqC;EACjCT,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASG,kBAAT,GAA8B;EAC1B,OAAOV,gBAAgB,CAACG,eAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,gBAAT,GAA4B;EACxBX,gBAAgB,CAACG,eAAjB,GAAmC,IAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,iBAAT,GAA6B;EACzBZ,gBAAgB,CAACG,eAAjB,GAAmC,KAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASU,QAAT,GAAoB;EAChB,OAAOb,gBAAgB,CAACC,MAAjB,CAAwB7E,KAA/B;AACH;AACD;AACA;AACA;;;AACA,SAAS0F,QAAT,GAAoB;EAChB,OAAOd,gBAAgB,CAACC,MAAjB,CAAwBnM,KAA/B;AACH;AACD;AA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yCmI,SAAzC,EAAoDH,IAApD,CAAR;MACH;IACJ;EACJ,CAfD,MAgBK;IACDhI,QAAQ,CAAC;IAAE;IAAH,EAA2CmI,SAA3C,EAAsDH,IAAtD,CAAR;;IACA,IAAI;MACAA,IAAI,CAAC9umB,IAAL,CAAUivmB,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;EACtB9lpB,WAAW;EACX;AACJ;AACA;EACImD,OAJW;EAKX;AACJ;AACA;EACI4ipB,cARW,EAQKC,oBARL,EAQ2B;IAClC,KAAK7ipB,OAAL,GAAeA,OAAf;IACA;AACR;AACA;AACA;;IACQ,KAAK8ipB,SAAL,GAAiB,KAAjB;IACA5ipB,SAAS,IAAImtoB,aAAa,CAACrtoB,OAAD,EAAU,uBAAV,CAA1B;IACAE,SAAS,IAAI2soB,WAAW,CAAC,OAAO7soB,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;IACA,KAAK+ipB,mBAAL,GAA2BH,cAA3B;IACA,KAAKI,UAAL,GAAkBH,oBAAlB;EACH;;AApBqB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AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,sBAAsB,GAAG;EAC3BhlpB,IAAI,EAAE;AADqB,CAA/B;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMilpB,gBAAgB,GAAG;EACrBjlpB,IAAI,EAAE;AADe,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIklpB,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,CAAgC/npB,OAAhC,EAAyC2roB,KAAzC,EAAgDp/d,OAAhD,EAAyDo7d,OAAzD,EAAkEqgB,aAAlE,EAAiF;EAC7E;EACA;EACA;EACA;EACA,IAAIrgB,OAAO,KAAK,IAAhB,EACI,OANyE,CAO7E;;EACA,IAAI,CAACqgB,aAAD,IAAkBz7e,OAAO,KAAK,IAAlC,EAAwC;IACpC;IACA;IACA;IACA,MAAM07e,SAAS,GACf;IACA;IACC,OAAOC,kBAAP,KAA8B,WAA9B,IAA6CA,kBAA7C,IACGlopB,OAAO,YAAYkopB,kBADvB,IAEK,OAAOC,cAAP,KAA0B,WAA1B,IAAyC57e,OAAO,CAACjwK,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAAjE,IACG,CAAC6rpB,cAAc,CAAC1tpB,GAAf,CAAmB8xK,OAAnB,CANT;;IAOA,IAAI0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AAX;IACH,CAFI,MAGA,IAAIg9nB,aAAa,YAAY/tB,IAAzB,IAAiC+tB,aAAa,YAAYhpE,QAA9D,EAAwE;MACzEhiP,UAAU,GAAGgrT,aAAb;IACH,CAFI,MAGA,IAAIA,aAAa,YAAY7wF,cAA7B,EAA6C;MAC9C/jlB,KAAK,GAAG40qB,aAAR;IACH;EACJ;;EACD50qB,KAAK,GAAGiroB,iBAAiB,CAACjroB,KAAD,CAAzB;;EACA,IAAIA,KAAK,IAAI,IAAb,EAAmB;IACf,OAAO20qB,iBAAiB,CAAC30qB,KAAD,EAAQ43C,QAAR,EAAkBgyU,UAAlB,CAAxB;EACH,CAFD,MAGK;IACD,MAAM4oT,iBAAiB,CAAChkB,UAAD,EAAa98nB,MAAb,CAAvB;EACH;AACJ;;AACD,SAASijpB,iBAAT,CAA2B30qB,KAA3B,EAAkC43C,QAAlC,EAA4CgyU,UAA5C,EAAwD;EACpD,OAAO,IAAIypT,oBAAJ,CAAyBN,aAAa,CAAC7sqB,GAAd,CAAkBlG,KAAlB,CAAzB,EAAmD43C,QAAnD,EAA6DgyU,UAA7D,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMirT,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,OAAP1mqB,OAAO,CAAC/F,SAAD,EAAY;IACtB,OAAO+rqB,0BAA0B,CAAC/rqB,SAAD,CAAjC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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H,GAA4B,CAAC,CAAnD;;QACA,IAAI/I,KAAK,GAAG,CAAC,CAAb,EAAgB;UACZmB,SAAS,IACL2soB,WAAW,CAAC9toB,KAAD,EAAQmH,MAAM,CAAC4B,OAAP,CAAe,KAAKihpB,MAApB,IAA8BtS,uBAAtC,EAA+D,6GAA/D,CADf;UAEAtsC,UAAU,CAACjkmB,MAAD,EAASnH,KAAT,CAAV;UACAysD,eAAe,CAACg8nB,QAAD,EAAWzorB,KAAX,CAAf;QACH;MACJ;;MACD,KAAKworB,wBAAL,GAAgC,KAAhC;IACH;;IACDpsB,YAAY,CAAC,KAAKpS,MAAL,CAAYlU,KAAZ,CAAD,EAAqB,KAAKkU,MAA1B,CAAZ;EACH;;EACDlyF,SAAS,CAACxkiB,QAAD,EAAW;IAChBmvpB,uBAAuB,CAAC,KAAKz4B,MAAL,CAAYlU,KAAZ,CAAD,EAAqB,KAAKkU,MAA1B,EAAkC,IAAlC,EAAwC12nB,QAAxC,CAAvB;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;;;EACI4glB,YAAY,GAAG;IACX+yE,aAAa,CAAC,KAAKsB,mBAAL,IAA4B,KAAKv+B,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;;;EACI1qpB,MAAM,GAAG;IACL,KAAK0qpB,MAAL,CAAYjU,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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xrB,KAA5B,EAAmCmwrB,UAAnC,EAA+CC,cAA/C,EAA+D;EAC3De,uBAAuB,CAACnxrB,KAAD,EAAQmwrB,UAAR,EAAoBC,cAApB,CAAvB;EACAgB,qBAAqB;EACrB,OAAOC,kBAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,GAA4B;EACxB,OAAOzzC,QAAQ,EAAf;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,SAASh0F,SAAT,CAAmB54gB,GAAnB,EAAwB;EACpB;EACA;EACA,OAAO,CAAC,CAACA,GAAF,IAAS,OAAOA,GAAG,CAAC3hC,IAAX,KAAoB,UAApC;AACH;AACD;AACA;AACA;;;AACA,SAASiirB,cAAT,CAAwBtgpB,GAAxB,EAA6B;EACzB,OAAO,CAAC,CAACA,GAAF,IAAS,OAAOA,GAAG,CAACnyC,SAAX,KAAyB,UAAzC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy2jB,YAAY,GAAGg8H,cAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,UAAT,CAAoBxprB,SAApB,EAA+ByprB,UAA/B,EAA2CngqB,UAA3C,EAAuDogqB,mBAAvD,EAA4E;EACxE,MAAMt5C,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM/M,KAAK,GAAGgN,QAAQ,EAAtB;EACA,MAAMjN,KAAK,GAAGsN,eAAe,EAA7B;EACAwzC,gBAAgB,CAAC7gD,KAAD,EAAQsH,KAAR,EAAeA,KAAK,CAAC5B,QAAD,CAApB,EAAgC3F,KAAhC,EAAuC7ooB,SAAvC,EAAkDyprB,UAAlD,EAA8D,CAAC,CAACngqB,UAAhE,EAA4EogqB,mBAA5E,CAAhB;EACA,OAAOF,UAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,uBAAT,CAAiC5prB,SAAjC,EAA4CyprB,UAA5C,EAAwD;EACpD,MAAM5gD,KAAK,GAAGsN,eAAe,EAA7B;EACA,MAAM/F,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM/M,KAAK,GAAGgN,QAAQ,EAAtB;EACA,MAAM8pC,UAAU,GAAGhoC,sBAAsB,CAAC9O,KAAK,CAACrwoB,IAAP,CAAzC;EACA,MAAMi5P,QAAQ,GAAGiub,qBAAqB,CAACC,UAAD,EAAa/2C,KAAb,EAAoBuH,KAApB,CAAtC;EACAu5C,gBAAgB,CAAC7gD,KAAD,EAAQsH,KAAR,EAAe1+Y,QAAf,EAAyBm3Y,KAAzB,EAAgC7ooB,SAAhC,EAA2CyprB,UAA3C,EAAuD,KAAvD,CAAhB;EACA,OAAOG,uBAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,oBAAT,CAA8B/gD,KAA9B,EAAqCsH,KAArC,EAA4CpwoB,SAA5C,EAAuD8prB,QAAvD,EAAiE;EAC7D,MAAMv1B,QAAQ,GAAGzrB,KAAK,CAAC16K,OAAvB;;EACA,IAAImmM,QAAQ,IAAI,IAAhB,EAAsB;IAClB,KAAK,IAAIp9oB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGo9oB,QAAQ,CAAC78pB,MAAT,GAAkB,CAAtC,EAAyCyf,CAAC,IAAI,CAA9C,EAAiD;MAC7C,MAAM4yqB,gBAAgB,GAAGx1B,QAAQ,CAACp9oB,CAAD,CAAjC;;MACA,IAAI4yqB,gBAAgB,KAAK/prB,SAArB,IAAkCu0pB,QAAQ,CAACp9oB,CAAC,GAAG,CAAL,CAAR,KAAoB2yqB,QAA1D,EAAoE;QAChE;QACA;QACA;QACA,MAAMt1B,QAAQ,GAAGpkB,KAAK,CAAChC,OAAD,CAAtB;QACA,MAAM47C,qBAAqB,GAAGz1B,QAAQ,CAACp9oB,CAAC,GAAG,CAAL,CAAtC;QACA,OAAOq9oB,QAAQ,CAAC98pB,MAAT,GAAkBsyrB,qBAAlB,GAA0Cx1B,QAAQ,CAACw1B,qBAAD,CAAlD,GAA4E,IAAnF;MACH,CAT4C,CAU7C;MACA;MACA;MACA;MACA;;;MACA,IAAI,OAAOD,gBAAP,KAA4B,QAAhC,EAA0C;QACtC5yqB,CAAC,IAAI,CAAL;MACH;IACJ;EACJ;;EACD,OAAO,IAAP;AACH;;AACD,SAASwyqB,gBAAT,CAA0B7gD,KAA1B,EAAiCsH,KAAjC,EAAwC1+Y,QAAxC,EAAkDm3Y,KAAlD,EAAyD7ooB,SAAzD,EAAoEyprB,UAApE,EAAgFngqB,UAAhF,EAA4FogqB,mBAA5F,EAAiH;EAC7G,MAAMO,oBAAoB,GAAGj6C,eAAe,CAACnH,KAAD,CAA5C;EACA,MAAMD,eAAe,GAAGE,KAAK,CAACF,eAA9B;EACA,MAAM2rB,QAAQ,GAAG3rB,eAAe,IAAI+xC,uBAAuB,CAAC7xC,KAAD,CAA3D;EACA,MAAMh3mB,OAAO,GAAGs+mB,KAAK,CAAC/B,OAAD,CAArB,CAJ6G,CAK7G;EACA;EACA;;EACA,MAAMmmB,QAAQ,GAAGkmB,uBAAuB,CAACtqC,KAAD,CAAxC;EACAj3oB,SAAS,IAAIsjpB,eAAe,CAAC5T,KAAD,EAAQ;EAAE;EAAF,EAA6B;EAAG;EAAxC,CAA5B;EACA,IAAIqhD,cAAc,GAAG,IAArB,CAV6G,CAW7G;EACA;EACA;EACA;;EACA,IAAKrhD,KAAK,CAACxvoB,IAAN,GAAa;EAAE;EAAhB,GAA6CqwrB,mBAAjD,EAAsE;IAClE,MAAM7sC,MAAM,GAAG3I,gBAAgB,CAACrL,KAAD,EAAQuH,KAAR,CAA/B;IACA,MAAM9woB,MAAM,GAAGoqrB,mBAAmB,GAAGA,mBAAmB,CAAC7sC,MAAD,CAAtB,GAAiCA,MAAnE;IACA,MAAMstC,aAAa,GAAG31B,QAAQ,CAAC98pB,MAA/B;IACA,MAAMg9pB,iBAAiB,GAAGg1B,mBAAmB,GACxC1nC,MAAD,IAAY0nC,mBAAmB,CAAC51C,WAAW,CAACkO,MAAM,CAACnZ,KAAK,CAAC7woB,KAAP,CAAP,CAAZ,CADU,GAEzC6woB,KAAK,CAAC7woB,KAFV,CAJkE,CAOlE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IACA,IAAIoyrB,gBAAgB,GAAG,IAAvB,CAnBkE,CAoBlE;IACA;IACA;IACA;IACA;IACA;;IACA,IAAI,CAACV,mBAAD,IAAwBO,oBAA5B,EAAkD;MAC9CG,gBAAgB,GAAGP,oBAAoB,CAAC/gD,KAAD,EAAQsH,KAAR,EAAepwoB,SAAf,EAA0B6ooB,KAAK,CAAC7woB,KAAhC,CAAvC;IACH;;IACD,IAAIoyrB,gBAAgB,KAAK,IAAzB,EAA+B;MAC3B;MACA;MACA;MACA;MACA,MAAMC,cAAc,GAAGD,gBAAgB,CAACE,oBAAjB,IAAyCF,gBAAhE;MACAC,cAAc,CAACE,oBAAf,GAAsCd,UAAtC;MACAW,gBAAgB,CAACE,oBAAjB,GAAwCb,UAAxC;MACAS,cAAc,GAAG,KAAjB;IACH,CATD,MAUK;MACDT,UAAU,GAAGe,YAAY,CAAC3hD,KAAD,EAAQuH,KAAR,EAAet+mB,OAAf,EAAwB23pB,UAAxB,EAAoC;MAAM;MAA1C,CAAzB;MACA,MAAM9hrB,SAAS,GAAG+pP,QAAQ,CAACm7U,MAAT,CAAgBvtkB,MAAhB,EAAwBU,SAAxB,EAAmCyprB,UAAnC,CAAlB;MACAtwrB,SAAS,IAAIA,SAAS,CAAC+voB,wBAAV,EAAb;MACAsrB,QAAQ,CAACp4pB,IAAT,CAAcqtrB,UAAd,EAA0B9hrB,SAA1B;MACA4spB,QAAQ,IAAIA,QAAQ,CAACn4pB,IAAT,CAAc4D,SAAd,EAAyB00pB,iBAAzB,EAA4Cy1B,aAA5C,EAA2DA,aAAa,GAAG,CAA3E,CAAZ;IACH;EACJ,CA9CD,MA+CK;IACD;IACA;IACAV,UAAU,GAAGe,YAAY,CAAC3hD,KAAD,EAAQuH,KAAR,EAAet+mB,OAAf,EAAwB23pB,UAAxB,EAAoC;IAAM;IAA1C,CAAzB;EACH,CAlE4G,CAmE7G;;;EACA,MAAM/9C,OAAO,GAAG7C,KAAK,CAAC6C,OAAtB;EACA,IAAIl5lB,KAAJ;;EACA,IAAI03oB,cAAc,IAAIx+C,OAAO,KAAK,IAA9B,KAAuCl5lB,KAAK,GAAGk5lB,OAAO,CAAC1roB,SAAD,CAAtD,CAAJ,EAAwE;IACpE,MAAMyqrB,WAAW,GAAGj4oB,KAAK,CAAC96C,MAA1B;;IACA,IAAI+yrB,WAAJ,EAAiB;MACb,KAAK,IAAItzqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGszqB,WAApB,EAAiCtzqB,CAAC,IAAI,CAAtC,EAAyC;QACrC,MAAMnf,KAAK,GAAGw6C,KAAK,CAACr7B,CAAD,CAAnB;QACAhe,SAAS,IAAIstoB,kBAAkB,CAAC2J,KAAD,EAAQp4oB,KAAR,CAA/B;QACA,MAAM0yrB,YAAY,GAAGl4oB,KAAK,CAACr7B,CAAC,GAAG,CAAL,CAA1B;QACA,MAAM+4oB,iBAAiB,GAAG9f,KAAK,CAACp4oB,KAAD,CAA/B;QACA,MAAMyhE,MAAM,GAAGy2lB,iBAAiB,CAACw6B,YAAD,CAAhC;;QACA,IAAIvxrB,SAAS,IAAI,CAACo0jB,YAAY,CAAC9zf,MAAD,CAA9B,EAAwC;UACpC,MAAM,IAAIrjE,KAAJ,CAAW,WAAUs0rB,YAAa,wBAAuBx6B,iBAAiB,CAACp6pB,WAAlB,CAA8BiR,IAAK,IAA5F,CAAN;QACH;;QACD,MAAMgziB,YAAY,GAAGtgf,MAAM,CAAC3iE,SAAP,CAAiB2yrB,UAAjB,CAArB;QACA,MAAMxinB,GAAG,GAAGutlB,QAAQ,CAAC98pB,MAArB;QACA88pB,QAAQ,CAACp4pB,IAAT,CAAcqtrB,UAAd,EAA0B1vI,YAA1B;QACAw6G,QAAQ,IAAIA,QAAQ,CAACn4pB,IAAT,CAAc4D,SAAd,EAAyB6ooB,KAAK,CAAC7woB,KAA/B,EAAsCivE,GAAtC,EAA2C,EAAEA,GAAG,GAAG,CAAR,CAA3C,CAAZ;MACH;IACJ;EACJ;AACJ;;AACD,SAAS0jnB,gCAAT,CAA0Cv6C,KAA1C,EAAiDt+mB,OAAjD,EAA0D23pB,UAA1D,EAAsE7hpB,CAAtE,EAAyE;EACrE,IAAI;IACA0rmB,QAAQ,CAAC;IAAE;IAAH,EAAoCxhnB,OAApC,EAA6C23pB,UAA7C,CAAR,CADA,CAEA;;IACA,OAAOA,UAAU,CAAC7hpB,CAAD,CAAV,KAAkB,KAAzB;EACH,CAJD,CAKA,OAAO9kC,KAAP,EAAc;IACVqiqB,WAAW,CAAC/0B,KAAD,EAAQttoB,KAAR,CAAX;IACA,OAAO,KAAP;EACH,CARD,SASQ;IACJwwoB,QAAQ,CAAC;IAAE;IAAH,EAAkCxhnB,OAAlC,EAA2C23pB,UAA3C,CAAR;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASe,YAAT,CAAsB3hD,KAAtB,EAA6BuH,KAA7B,EAAoCt+mB,OAApC,EAA6C23pB,UAA7C,EAAyDmB,sBAAzD,EAAiF;EAC7E;EACA;EACA,OAAO,SAASC,yCAAT,CAAmDjjpB,CAAnD,EAAsD;IACzD;IACA;IACA,IAAIA,CAAC,KAAKigP,QAAV,EAAoB;MAChB,OAAO4ha,UAAP;IACH,CALwD,CAMzD;IACA;;;IACA,MAAM1rC,SAAS,GAAGlV,KAAK,CAAC13N,KAAN,GAAc;IAAE;IAAhB,EACdkjO,wBAAwB,CAACxL,KAAK,CAAC7woB,KAAP,EAAco4oB,KAAd,CADV,GAEdA,KAFJ;IAGA6uC,aAAa,CAAClhC,SAAD,CAAb;IACA,IAAI3/nB,MAAM,GAAGusqB,gCAAgC,CAACv6C,KAAD,EAAQt+mB,OAAR,EAAiB23pB,UAAjB,EAA6B7hpB,CAA7B,CAA7C,CAZyD,CAazD;IACA;;IACA,IAAIkjpB,cAAc,GAAGD,yCAAyC,CAACN,oBAA/D;;IACA,OAAOO,cAAP,EAAuB;MACnB;MACA1sqB,MAAM,GAAGusqB,gCAAgC,CAACv6C,KAAD,EAAQt+mB,OAAR,EAAiBg5pB,cAAjB,EAAiCljpB,CAAjC,CAAhC,IAAuExpB,MAAhF;MACA0sqB,cAAc,GAAGA,cAAc,CAACP,oBAAhC;IACH;;IACD,IAAIK,sBAAsB,IAAIxsqB,MAAM,KAAK,KAAzC,EAAgD;MAC5CwpB,CAAC,CAACo6F,cAAF,GAD4C,CAE5C;;MACAp6F,CAAC,CAACs/D,WAAF,GAAgB,KAAhB;IACH;;IACD,OAAO9oF,MAAP;EACH,CA3BD;AA4BH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2sqB,aAAT,CAAuBvioB,KAAK,GAAG,CAA/B,EAAkC;EAC9B,OAAOwwlB,eAAe,CAACxwlB,KAAD,CAAtB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwioB,2BAAT,CAAqCniD,KAArC,EAA4CoiD,eAA5C,EAA6D;EACzD,IAAIC,sBAAsB,GAAG,IAA7B;EACA,MAAMC,kBAAkB,GAAG/iB,qBAAqB,CAACv/B,KAAD,CAAhD;;EACA,KAAK,IAAI1xnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8zqB,eAAe,CAACvzrB,MAApC,EAA4Cyf,CAAC,EAA7C,EAAiD;IAC7C,MAAMo9nB,SAAS,GAAG02C,eAAe,CAAC9zqB,CAAD,CAAjC,CAD6C,CAE7C;IACA;;IACA,IAAIo9nB,SAAS,KAAK,GAAlB,EAAuB;MACnB22C,sBAAsB,GAAG/zqB,CAAzB;MACA;IACH,CAP4C,CAQ7C;IACA;;;IACA,IAAIg0qB,kBAAkB,KAAK,IAAvB,GACAhjB,0BAA0B,CAACt/B,KAAD,EAAQ0L,SAAR;IAAmB;IAAuB,IAA1C,CAD1B,GAEAg0B,wBAAwB,CAAC4iB,kBAAD,EAAqB52C,SAArB,CAF5B,EAE6D;MACzD,OAAOp9nB,CAAP,CADyD,CAC/C;IACb;EACJ;;EACD,OAAO+zqB,sBAAP;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,SAASE,eAAT,CAAyBH,eAAzB,EAA0C;EACtC,MAAM3zB,aAAa,GAAGzhB,QAAQ,GAAGhH,0BAAH,CAAR,CAAuCV,MAAvC,CAAtB;;EACA,IAAI,CAACmpB,aAAa,CAACrlB,UAAnB,EAA+B;IAC3B;IACA;IACA,MAAMo5C,kBAAkB,GAAGJ,eAAe,GAAGA,eAAe,CAACvzrB,MAAnB,GAA4B,CAAtE;IACA,MAAM4zrB,eAAe,GAAGh0B,aAAa,CAACrlB,UAAd,GACpBsT,QAAQ,CAAC8lC,kBAAD,EAAqB,IAArB,CADZ;IAEA,MAAME,KAAK,GAAGD,eAAe,CAACrzqB,KAAhB,EAAd;IACA,IAAIuzqB,cAAc,GAAGl0B,aAAa,CAACvvpB,KAAnC;;IACA,OAAOyjrB,cAAc,KAAK,IAA1B,EAAgC;MAC5B,MAAMC,SAAS,GAAGR,eAAe,GAAGD,2BAA2B,CAACQ,cAAD,EAAiBP,eAAjB,CAA9B,GAAkE,CAAnG;;MACA,IAAIQ,SAAS,KAAK,IAAlB,EAAwB;QACpB,IAAIF,KAAK,CAACE,SAAD,CAAT,EAAsB;UAClBF,KAAK,CAACE,SAAD,CAAL,CAAiBv0B,cAAjB,GAAkCs0B,cAAlC;QACH,CAFD,MAGK;UACDF,eAAe,CAACG,SAAD,CAAf,GAA6BD,cAA7B;QACH;;QACDD,KAAK,CAACE,SAAD,CAAL,GAAmBD,cAAnB;MACH;;MACDA,cAAc,GAAGA,cAAc,CAACtjrB,IAAhC;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwjrB,YAAT,CAAsBp3C,SAAtB,EAAiCq3C,aAAa,GAAG,CAAjD,EAAoD7uC,KAApD,EAA2D;EACvD,MAAM1M,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM/M,KAAK,GAAGgN,QAAQ,EAAtB;EACA,MAAMshB,eAAe,GAAG+gB,gBAAgB,CAACrvC,KAAD,EAAQoG,aAAa,GAAGoF,SAAxB,EAAmC;EAAG;EAAtC,EAAkE,IAAlE,EAAwEwI,KAAK,IAAI,IAAjF,CAAxC,CAHuD,CAIvD;;EACA,IAAIsa,eAAe,CAACnlB,UAAhB,KAA+B,IAAnC,EACImlB,eAAe,CAACnlB,UAAhB,GAA6B05C,aAA7B,CANmD,CAOvD;;EACAl1C,0BAA0B;;EAC1B,IAAI,CAAC2gB,eAAe,CAACjmP,KAAhB,GAAwB;EAAG;EAA5B,MAA6D;EAAG;EAApE,EAAiG;IAC7F;IACAgmP,eAAe,CAACruB,KAAD,EAAQsH,KAAR,EAAegnB,eAAf,CAAf;EACH;AACJ;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,SAASw0B,qBAAT,CAA+BhvmB,QAA/B,EAAyCypmB,EAAzC,EAA6CpoB,SAA7C,EAAwD;EACpD4tB,sBAAsB,CAACjvmB,QAAD,EAAW,EAAX,EAAeypmB,EAAf,EAAmB,EAAnB,EAAuBpoB,SAAvB,CAAtB;EACA,OAAO2tB,qBAAP;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,SAASC,sBAAT,CAAgCjvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsD7ya,MAAtD,EAA8DyqZ,SAA9D,EAAyE;EACrE,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGnB,cAAc,CAACh2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoB7ya,MAApB,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DmvM,MAA7D,CADhC;EAEH;;EACD,OAAOq4a,sBAAP;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,SAASC,sBAAT,CAAgClvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D/ya,MAA9D,EAAsEyqZ,SAAtE,EAAiF;EAC7E,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGjB,cAAc,CAACl2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B/ya,MAA5B,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEm0P,MAAjE,CADhC;EAEH;;EACD,OAAOs4a,sBAAP;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,SAASC,sBAAT,CAAgCnvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsEjza,MAAtE,EAA8EyqZ,SAA9E,EAAyF;EACrF,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGf,cAAc,CAACp2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoCjza,MAApC,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEj7G,MAArE,CADhC;EAEH;;EACD,OAAOu4a,sBAAP;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,SAASC,sBAAT,CAAgCpvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsE5hF,EAAtE,EAA0E8hF,EAA1E,EAA8Enza,MAA9E,EAAsFyqZ,SAAtF,EAAiG;EAC7F,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGb,cAAc,CAACt2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4Cnza,MAA5C,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEo2O,EAArE,EAAyErxV,MAAzE,CADhC;EAEH;;EACD,OAAOw4a,sBAAP;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,SAASC,sBAAT,CAAgCrvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsE5hF,EAAtE,EAA0E8hF,EAA1E,EAA8EE,EAA9E,EAAkFC,EAAlF,EAAsFtza,MAAtF,EAA8FyqZ,SAA9F,EAAyG;EACrG,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGX,cAAc,CAACx2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDtza,MAApD,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEo2O,EAArE,EAAyEgiF,EAAzE,EAA6Erza,MAA7E,CADhC;EAEH;;EACD,OAAOy4a,sBAAP;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,SAASC,sBAAT,CAAgCtvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsE5hF,EAAtE,EAA0E8hF,EAA1E,EAA8EE,EAA9E,EAAkFC,EAAlF,EAAsFE,EAAtF,EAA0FC,EAA1F,EAA8Fzza,MAA9F,EAAsGyqZ,SAAtG,EAAiH;EAC7G,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGR,cAAc,CAAC32C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4Dzza,MAA5D,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEo2O,EAArE,EAAyEgiF,EAAzE,EAA6EG,EAA7E,EAAiFxza,MAAjF,CADhC;EAEH;;EACD,OAAO04a,sBAAP;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,SAASC,sBAAT,CAAgCvvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsE5hF,EAAtE,EAA0E8hF,EAA1E,EAA8EE,EAA9E,EAAkFC,EAAlF,EAAsFE,EAAtF,EAA0FC,EAA1F,EAA8F5+F,EAA9F,EAAkG8+F,EAAlG,EAAsG3za,MAAtG,EAA8GyqZ,SAA9G,EAAyH;EACrH,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGL,cAAc,CAAC92C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4D5+F,EAA5D,EAAgE8+F,EAAhE,EAAoE3za,MAApE,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEo2O,EAArE,EAAyEgiF,EAAzE,EAA6EG,EAA7E,EAAiF3+F,EAAjF,EAAqF70U,MAArF,CADhC;EAEH;;EACD,OAAO24a,sBAAP;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,SAASC,sBAAT,CAAgCxvmB,QAAhC,EAA0CvY,MAA1C,EAAkDginB,EAAlD,EAAsDhnqB,EAAtD,EAA0DknqB,EAA1D,EAA8D93T,EAA9D,EAAkEg4T,EAAlE,EAAsE5hF,EAAtE,EAA0E8hF,EAA1E,EAA8EE,EAA9E,EAAkFC,EAAlF,EAAsFE,EAAtF,EAA0FC,EAA1F,EAA8F5+F,EAA9F,EAAkG8+F,EAAlG,EAAsGr/F,EAAtG,EAA0Gu/F,EAA1G,EAA8G7za,MAA9G,EAAsHyqZ,SAAtH,EAAiI;EAC7H,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGH,cAAc,CAACh3C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4D5+F,EAA5D,EAAgE8+F,EAAhE,EAAoEr/F,EAApE,EAAwEu/F,EAAxE,EAA4E7za,MAA5E,CAAxC;;EACA,IAAI+za,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;IACA9kqB,SAAS,IACLomrB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAK,CAAlD,EAAqD3ykB,MAArD,EAA6DhlD,EAA7D,EAAiEovW,EAAjE,EAAqEo2O,EAArE,EAAyEgiF,EAAzE,EAA6EG,EAA7E,EAAiF3+F,EAAjF,EAAqFP,EAArF,EAAyFt0U,MAAzF,CADhC;EAEH;;EACD,OAAO44a,sBAAP;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,SAASC,sBAAT,CAAgCzvmB,QAAhC,EAA0C/0C,MAA1C,EAAkDo2nB,SAAlD,EAA6D;EACzD,MAAM7tB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGrB,cAAc,CAAC91C,KAAD,EAAQvomB,MAAR,CAAxC;;EACA,IAAI0/oB,iBAAiB,KAAKpe,SAA1B,EAAqC;IACjC,MAAMrgC,KAAK,GAAGgN,QAAQ,EAAtB;IACA,MAAMjN,KAAK,GAAGyQ,gBAAgB,EAA9B;IACAoiC,uBAAuB,CAAC5yC,KAAD,EAAQD,KAAR,EAAeuH,KAAf,EAAsBxzjB,QAAtB,EAAgC2qmB,iBAAhC,EAAmDn3C,KAAK,CAAC5B,QAAD,CAAxD,EAAoEyvB,SAApE,EAA+E,KAA/E,CAAvB;;IACA,IAAI9kqB,SAAJ,EAAe;MACX,MAAM8urB,sBAAsB,GAAG,CAACpgpB,MAAM,CAAC,CAAD,CAAP,CAA/B,CADW,CACiC;;MAC5C,KAAK,IAAI1wB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0wB,MAAM,CAACnwC,MAA3B,EAAmCyf,CAAC,IAAI,CAAxC,EAA2C;QACvC8wqB,sBAAsB,CAAC7rrB,IAAvB,CAA4ByrC,MAAM,CAAC1wB,CAAD,CAAlC;MACH;;MACDooqB,4BAA4B,CAACz2C,KAAK,CAACrwoB,IAAP,EAAaowoB,KAAb,EAAoBjsjB,QAApB,EAA8Bo6jB,eAAe,KAAKixC,sBAAsB,CAACvwrB,MAA3C,GAAoD,CAAlF,EAAqF,GAAGuwrB,sBAAxF,CAA5B;IACH;EACJ;;EACD,OAAOoE,sBAAP;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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A4BjonB,IAA5B,EAAkC;EAC9B,OAAOA,IAAI,CAAC1gC,SAAL,CAAesopB,WAAW,CAAC13rB,KAA3B,EAAkC03rB,WAAW,CAACG,QAA9C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,cAAT,CAAwBlonB,IAAxB,EAA8B;EAC1BmonB,gBAAgB,CAACnonB,IAAD,CAAhB;EACA,OAAOoonB,kBAAkB,CAACponB,IAAD,EAAOqonB,iBAAiB,CAACronB,IAAD,EAAO,CAAP,EAAU4nnB,WAAW,CAACC,OAAtB,CAAxB,CAAzB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,kBAAT,CAA4BponB,IAA5B,EAAkCjuE,KAAlC,EAAyC;EACrC,MAAM2X,GAAG,GAAGk+qB,WAAW,CAACC,OAAxB;;EACA,IAAIn+qB,GAAG,KAAK3X,KAAZ,EAAmB;IACf,OAAO,CAAC,CAAR;EACH;;EACDA,KAAK,GAAG61rB,WAAW,CAACE,MAAZ,GAAqBQ,iBAAiB,CAACtonB,IAAD,EAAO4nnB,WAAW,CAAC91rB,GAAZ,GAAkBC,KAAzB,EAAgC2X,GAAhC,CAA9C;EACA,OAAO2+qB,iBAAiB,CAACronB,IAAD,EAAOjuE,KAAP,EAAc2X,GAAd,CAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6+qB,UAAT,CAAoBvonB,IAApB,EAA0B;EACtBmonB,gBAAgB,CAACnonB,IAAD,CAAhB;EACA,OAAOwonB,cAAc,CAACxonB,IAAD,EAAOqonB,iBAAiB,CAACronB,IAAD,EAAO,CAAP,EAAU4nnB,WAAW,CAACC,OAAtB,CAAxB,CAArB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASW,cAAT,CAAwBxonB,IAAxB,EAA8BowL,UAA9B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AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,WAAT,CAAqBhlnB,IAArB,EAA2Bl0E,KAA3B,EAAkCq9Q,MAAlC,EAA0C;EACtC87a,oBAAoB,CAACjlnB,IAAD,EAAOl0E,KAAP,EAAcq9Q,MAAd,EAAsB,KAAtB,CAApB;EACA,OAAO67a,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,WAAT,CAAqBtikB,SAArB,EAAgC92H,KAAhC,EAAuC;EACnCm5rB,oBAAoB,CAACrikB,SAAD,EAAY92H,KAAZ,EAAmB,IAAnB,EAAyB,IAAzB,CAApB;EACA,OAAOo5rB,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,UAAT,CAAoB7prB,MAApB,EAA4B;EACxB8prB,eAAe,CAACC,qBAAD,EAAwBC,iBAAxB,EAA2ChqrB,MAA3C,EAAmD,KAAnD,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgqrB,iBAAT,CAA2B1pC,aAA3B,EAA0ChglB,IAA1C,EAAgD;EAC5C,KAAK,IAAI9uD,CAAC,GAAGq3qB,UAAU,CAACvonB,IAAD,CAAvB,EAA+B9uD,CAAC,IAAI,CAApC,EAAuCA,CAAC,GAAGs3qB,cAAc,CAACxonB,IAAD,EAAO9uD,CAAP,CAAzD,EAAoE;IAChEu4qB,qBAAqB,CAACzpC,aAAD,EAAgBgoC,gBAAgB,CAAChonB,IAAD,CAAhC,EAAwCionB,kBAAkB,CAACjonB,IAAD,CAA1D,CAArB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2pnB,UAAT,CAAoB1+c,OAApB,EAA6B;EACzBu+c,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsC3+c,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;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2L,sBAAT,CAAgC7unB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD/ya,MAApD,EAA4D;EACxD,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGjB,cAAc,CAACl2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B/ya,MAA5B,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAAS4L,sBAAT,CAAgC9unB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4Djza,MAA5D,EAAoE;EAChE,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGf,cAAc,CAACp2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoCjza,MAApC,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAAS6L,sBAAT,CAAgC/unB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4D5hF,EAA5D,EAAgE8hF,EAAhE,EAAoEnza,MAApE,EAA4E;EACxE,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGb,cAAc,CAACt2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4Cnza,MAA5C,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAAS8L,sBAAT,CAAgChvnB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4D5hF,EAA5D,EAAgE8hF,EAAhE,EAAoEE,EAApE,EAAwEC,EAAxE,EAA4Etza,MAA5E,EAAoF;EAChF,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGX,cAAc,CAACx2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDtza,MAApD,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAAS+L,sBAAT,CAAgCjvnB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4D5hF,EAA5D,EAAgE8hF,EAAhE,EAAoEE,EAApE,EAAwEC,EAAxE,EAA4EE,EAA5E,EAAgFC,EAAhF,EAAoFzza,MAApF,EAA4F;EACxF,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGR,cAAc,CAAC32C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4Dzza,MAA5D,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAASgM,sBAAT,CAAgClvnB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4D5hF,EAA5D,EAAgE8hF,EAAhE,EAAoEE,EAApE,EAAwEC,EAAxE,EAA4EE,EAA5E,EAAgFC,EAAhF,EAAoF5+F,EAApF,EAAwF8+F,EAAxF,EAA4F3za,MAA5F,EAAoG;EAChG,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGL,cAAc,CAAC92C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4D5+F,EAA5D,EAAgE8+F,EAAhE,EAAoE3za,MAApE,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAASiM,sBAAT,CAAgCnvnB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD93T,EAApD,EAAwDg4T,EAAxD,EAA4D5hF,EAA5D,EAAgE8hF,EAAhE,EAAoEE,EAApE,EAAwEC,EAAxE,EAA4EE,EAA5E,EAAgFC,EAAhF,EAAoF5+F,EAApF,EAAwF8+F,EAAxF,EAA4Fr/F,EAA5F,EAAgGu/F,EAAhG,EAAoG7za,MAApG,EAA4G;EACxG,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGH,cAAc,CAACh3C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4D5+F,EAA5D,EAAgE8+F,EAAhE,EAAoEr/F,EAApE,EAAwEu/F,EAAxE,EAA4E7za,MAA5E,CAAxC;EACAi8a,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAASkM,sBAAT,CAAgC5rpB,MAAhC,EAAwC;EACpC,MAAMuomB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGrB,cAAc,CAAC91C,KAAD,EAAQvomB,MAAR,CAAxC;EACA4npB,eAAe,CAACzpC,gBAAD,EAAmB6pC,iBAAnB,EAAsCtI,iBAAtC,EAAyD,IAAzD,CAAf;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,SAASmM,sBAAT,CAAgCrvnB,MAAhC,EAAwCginB,EAAxC,EAA4C7ya,MAA5C,EAAoD;EAChD,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGnB,cAAc,CAACh2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoB7ya,MAApB,CAAxC;EACAg8a,UAAU,CAACjI,iBAAD,CAAV;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,SAASoM,sBAAT,CAAgCtvnB,MAAhC,EAAwCginB,EAAxC,EAA4ChnqB,EAA5C,EAAgDknqB,EAAhD,EAAoD/ya,MAApD,EAA4D;EACxD,MAAM48X,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGjB,cAAc,CAACl2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoBhnqB,EAApB,EAAwBknqB,EAAxB,EAA4B/ya,MAA5B,CAAxC;EACAg8a,UAAU,CAACjI,iBAAD,CAAV;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,SAASqM,sBAAT,CAAgCvvnB,M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AxB,EAA4B93T,EAA5B,EAAgCg4T,EAAhC,EAAoC5hF,EAApC,EAAwC8hF,EAAxC,EAA4CE,EAA5C,EAAgDC,EAAhD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4D5+F,EAA5D,EAAgE8+F,EAAhE,EAAoEr/F,EAApE,EAAwEu/F,EAAxE,EAA4E7za,MAA5E,CAAxC;EACAg8a,UAAU,CAACjI,iBAAD,CAAV;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,SAAS2M,sBAAT,CAAgCrspB,MAAhC,EAAwC;EACpC,MAAMuomB,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGrB,cAAc,CAAC91C,KAAD,EAAQvomB,MAAR,CAAxC;EACA2npB,UAAU,CAACjI,iBAAD,CAAV;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,SAAS4M,uBAAT,CAAiC9pnB,IAAjC,EAAuChG,MAAvC,EAA+CginB,EAA/C,EAAmD7ya,MAAnD,EAA2Du+G,WAA3D,EAAwE;EACpE,MAAMq+Q,KAAK,GAAGyF,QAAQ,EAAtB;EACA,MAAM0xC,iBAAiB,GAAGnB,cAAc,CAACh2C,KAAD,EAAQ/rkB,MAAR,EAAgBginB,EAAhB,EAAoB7ya,MAApB,CAAxC;EACA87a,oBAAoB,CAACjlnB,IAAD,EAAOk9mB,iBAAP,EAA0Bx1T,WAA1B,EAAuC,KAAvC,CAApB;EACA,OAAOoiU,uBAAP;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,SAASC,uBAAT,CAAi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CAACjB,KAAR,GAAgBA,KAAhB;EACAiB,OAAO,CAACuqsB,kBAAR,GAA6B,CAA7B;EACAD,eAAe,CAACtqsB,OAAD,EAAUk1C,CAAV,EAAa2jnB,WAAW,IAAI,CAACjW,cAA7B,CAAf;EACA,OAAO5ipB,OAAP;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,SAASkrsB,kBAAT,CAA4B9isB,SAA5B,EAAuCu1qB,aAAa,GAAG,EAAvD,EAA2D;EACvD,OAAQ5lT,UAAD,IAAgB;IACnBA,UAAU,CAACi6Q,iBAAX,GACI,CAACh7kB,GAAD,EAAMm0oB,kBAAN,KAA6B;MACzB,OAAOn5D,iBAAiB,CAACh7kB,GAAD,EAAM;MAC9Bm0oB,kBAAkB,GAAGA,kBAAkB,CAAC/isB,SAAD,CAArB,GAAmCA,SAD7B,EACwC;MAChEu1qB,aAFwB,CAAxB;IAGH,CALL;EAMH,CAPD;AAQH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMytB,aAAN,CAAoB;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAN,CAAwB;AAGxB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASj1F,cAAT,CAAwBjumB,QAAxB,EAAkCojnB,cAAlC,EAAkD;EAC9C,OAAO,IAAIlV,WAAJ,CAAgBlumB,QAAhB,EAA0BojnB,cAAc,IAAI,IAA5C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+/E,iBAAiB,GAAGl1F,cAA1B;;AACA,MAAMC,WAAN,SAA0B+0F,aAA1B,CAAwC;EACpCvusB,WAAW,CAACgvoB,YAAD,EAAeppR,OAAf,EAAwB;IAC/B;IACA,KAAK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;AACA;AACA;AACA;AACA;AACA;AACA,CAACmB,IAAD,EAAOipS,IAAP,KAAgB6ua,eAAe,CAAC93sB,IAAD,EAAOipS,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,SAASj0P,IAAT,CAAc,GAAGryC,IAAjB,EAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMo7sB,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,IAAIt6H,cAAJ,CAAmB,yBAAnB,CAAxB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMu6H,qBAAN,CAA4B;EACxBxhtB,WAAW,CAACyhtB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAKnwsB,OAAL,GAAeinC,IAAf;IACA,KAAKg4W,MAAL,GAAch4W,IAAd;IACA,KAAKmpqB,WAAL,GAAmB,KAAnB;IACA,KAAKp7oB,IAAL,GAAY,KAAZ;IACA,KAAKq7oB,WAAL,GAAmB,IAAItwsB,OAAJ,CAAY,CAAC+hC,GAAD,EAAMwuqB,GAAN,KAAc;MACzC,KAAKtwsB,OAAL,GAAe8hC,GAAf;MACA,KAAKm9W,MAAL,GAAcqxT,GAAd;IACH,CAHkB,CAAnB;EAIH;EACD;;;EACAC,eAAe,GAAG;IACd,IAAI,KAA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,EAG1E,IAH0E,EAGpE,IAHoE,CAAnE;AAGO,CAHtB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq7H,eAAT,GAA2B;EACvB,IAAI,OAAO3jB,iBAAP,KAA6B,WAA7B,IAA4CA,iBAA5C,IACA,OAAOC,IAAP,KAAgB,WADhB,IAC+BA,IAAI,CAAC2jB,MAAL,KAAgB,IADnD,EACyD;IACrD;IACA;IACA;IACA,OAAO3jB,IAAI,CAAC2jB,MAAZ;EACH,CAND,MAOK;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,OAAQ,OAAOC,SAAP,KAAqB,WAArB,IAAoCA,SAAS,CAACvnV,MAA/C,IAA0D2kU,iBAAjE;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM9mF,SAAS,GAAG,IAAIlyB,cAAJ,CAAmB,UAAnB,EAA+B;EAC7CK,UAAU,EAAE,MADiC;EAE7CnklB,OAAO,EAAE,MAAM+jlB,MAAM,CAACiyB,SAAD,EAAYu4B,WAAW,CAACtyoB,QAAZ,GAAuBsyoB,WAAW,CAAC5iC,QAA/C,CAAN,IAAkE6zG,eAAe;AAFnD,CAA/B,CAAlB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM5oG,qBAAqB,GAAG,IAAI9yB,cAAJ,CAAmB,qBAAnB,EAA0C;EACpEK,UAAU,EAAE,MADwD;EAEpEnklB,OAAO,EAAE,MAAM+8rB;AAFqD,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,SAASmjtB,8BAAT,GAA0C;EACtC,IAAIC,2BAA2B,GAAG7xE,OAAO,CAAC,uBAAD,CAAzC;EACA,IAAI8xE,0BAA0B,GAAG9xE,OAAO,CAAC,sBAAD,CAAxC;;EACA,IAAI,OAAOtpoB,IAAP,KAAgB,WAAhB,IAA+Bm7sB,2BAA/B,IAA8DC,0BAAlE,EAA8F;IAC1F;IACA;IACA,MAAMC,8BAA8B,GAAGF,2BAA2B,CAACn7sB,IAAI,CAACs7sB,UAAL,CAAgB,kBAAhB,CAAD,CAAlE;;IACA,IAAID,8BAAJ,EAAoC;MAChCF,2BAA2B,GAAGE,8BAA9B;IACH;;IACD,MAAME,6BAA6B,GAAGH,0BAA0B,CAACp7sB,IAAI,CAACs7sB,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,MAAMnltB,MAAN,CAAa;EACTa,WAAW,CAAC;IAAE0ktB,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,GAAgB,IAAhB;IACA;AACR;AACA;;IACQ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AAxB,EAA6BkxB,IAA7B,EAAmC;EAC/B,IAAI1zqB,KAAK,CAACikB,OAAN,CAAcyvpB,IAAd,CAAJ,EAAyB;IACrBlxB,GAAG,GAAGkxB,IAAI,CAAC5iqB,MAAL,CAAYi3sB,cAAZ,EAA4BvlE,GAA5B,CAAN;EACH,CAFD,MAGK;IACDA,GAAG,GAAG,EAAE,GAAGA,GAAL;MAAU,GAAGkxB;IAAb,CAAN;EACH;;EACD,OAAOlxB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMr1D,cAAN,CAAqB;EACjB;EACAjylB,WAAW,CAACottB,KAAD,EAAQhoH,SAAR,EAAmBioH,iBAAnB,EAAsC;IAC7C,KAAKD,KAAL,GAAaA,KAAb;IACA,KAAKhoH,SAAL,GAAiBA,SAAjB;IACA,KAAKioH,iBAAL,GAAyBA,iBAAzB;IACA;;IACA,KAAKC,mBAAL,GAA2B,EAA3B;IACA,KAAKC,MAAL,GAAc,EAAd;IACA,KAAKC,YAAL,GAAoB,KAApB;IACA,KAAKC,OAAL,GAAe,IAAf;IACA,KAAKj3rB,UAAL,GAAkB,KAAlB;IACA,KAAK+1rB,iBAAL,GAAyB,EAAzB;IACA;AACR;AACA;AACA;;IACQ,KAAKmB,cAAL,GAAsB,EAAtB;IACA;AACR;AACA;;IACQ,KAAKl0rB,UAAL,GAAkB,EAAlB;IACA,KAAKm0rB,6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,CAACmD,IAAL,EACI,MAAMkrtB,aAAa,CAACrutB,EAAD,CAAnB;EACJ,OAAO,IAAIyusB,eAAJ,CAAoBtrsB,IAApB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmrtB,eAAT,CAAyBtutB,EAAzB,EAA6B;EACzB,MAAMmD,IAAI,GAAGuypB,yBAAyB,CAAC11pB,EAAD,CAAtC;EACA,IAAI,CAACmD,IAAL,EACI,MAAMkrtB,aAAa,CAACrutB,EAAD,CAAnB;EACJ,OAAOmD,IAAP;AACH;;AACD,SAASkrtB,aAAT,CAAuBrutB,EAAvB,EAA2B;EACvB,OAAO,IAAIE,KAAJ,CAAW,qBAAoBF,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,MAAMk2mB,iBAAN,CAAwB;AAExB;AACA;AACA;AACA;;;AACAA,iBAAiB,CAACw+B,iBAAlB,GAAsC65E,uBAAtC;AACA;;AACA,SAASA,uBAAT,CAAiCtzS,KAAjC,EAAwC;EACpC,OAAOuzS,aAAa,CAACvuE,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,EAAgC,CAAC1kO,KAAK,GAAG;EAAG;EAAZ,MAAmD;EAAG;EAAtF,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuzS,aAAT,CAAuB77E,KAAvB,EAA8BuH,KAA9B,EAAqCu0E,MAArC,EAA6C;EACzC,IAAI50E,eAAe,CAAClH,KAAD,CAAf,IAA0B,CAAC87E,MAA/B,EAAuC;IACnC;IACA;IACA,MAAM50D,aAAa,GAAG1b,wBAAwB,CAACxL,KAAK,CAAC7woB,KAAP,EAAco4oB,KAAd,CAA9C,CAHmC,CAGiC;;IACpE,OAAO,IAAIkwC,SAAJ,CAAcvwB,aAAd,EAA6BA,aAA7B,CAAP;EACH,CALD,MAMK,IAAIlnB,KAAK,CAACxvoB,IAAN,IAAc;EAAE;EAAF,EAA6B;EAAG;EAAhC,EAA+D;EAAG;EAAhF,CAAJ,EAA0G;IAC3G;IACA;IACA,MAAMurtB,iBAAiB,GAAGx0E,KAAK,CAACvB,0BAAD,CAA/B,CAH2G,CAG9C;;IAC7D,OAAO,IAAIyxC,SAAJ,CAAcskC,iBAAd,EAAiCx0E,KAAjC,CAAP;EACH;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy0E,OAAN,SAAsBz4G,iBAAtB,CAAwC;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM04G,eAAN,SAA8BD,OAA9B,CAAsC;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIE,6BAA6B,GAAG,EAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA,MAAMC,kBAAN,CAAyB;EACrBlvtB,WAAW,CAACiR,IAAD,EAAOukB,QAAP,EAAiB;IACxB,KAAKvkB,IAAL,GAAYA,IAAZ;IACA,KAAKukB,QAAL,GAAgBA,QAAhB;EACH;;AAJoB;AAMzB;AACA;AACA;;;AACA,SAAS25rB,gBAAT,CAA0BC,QAA1B,EAAoC;EAChC,OAAOA,QAAQ,CAACnltB,GAAT,CAAc4qD,EAAD,IAAQA,EAAE,CAAC7+B,aAAxB,CAAP;AACH;AACD;AACA;AACA;;;AACA,MA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CI,OAAOA,KAAK,IAAI,IAAT,IACF,CAAC,OAAOA,KAAP,KAAiB,QAAjB,IAA6ByE,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,CAA9B,KAAuDA,KAAK,CAACuB,MAAN,KAAiB,CAD7E;AAEH;;AACD,SAAS89tB,cAAT,CAAwBr/tB,KAAxB,EAA+B;EAC3B;EACA,OAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAK,CAACuB,MAAb,KAAwB,QAAhD;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,MAAM+9tB,aAAa,GAAG,IAAI14I,yDAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM24I,mBAAmB,GAAG,IAAI34I,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,MAAM44I,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,OAAHtrtB,GAAG,CAACA,GAAD,EAAM;IACZ,OAAOurtB,YAAY,CAACvrtB,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,OAAOyrtB,YAAY,CAACzrtB,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAAR0rtB,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,OAALI,KAAK,CAACJ,OAAD,EAAU;IAClB,OAAOK,cAAc,CAACL,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,OAATM,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,OAAT9plB,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOgqlB,kBAAkB,CAAChqlB,SAAD,CAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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ATE,SAAS,GAAG;IACZ,OAAO,CAAC,KAAKD,OAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACgB,IAARwE,QAAQ,GAAG;IACX,OAAO,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAmC,KAAK99tB,MAAL,GAAc,KAAKA,MAAL,CAAY69tB,QAA1B,GAAqC,QAA/E;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,aAAa,CAAC98N,UAAD,EAAa;IACtB,KAAKu3N,cAAL,GAAsBv3N,UAAtB;IACA,KAAKy4N,oBAAL,GAA4BmD,iBAAiB,CAAC57N,UAAD,CAA7C;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI+8N,kBAAkB,CAAC/8N,UAAD,EAAa;IAC3B,KAAKy3N,mBAAL,GAA2Bz3N,UAA3B;IACA,KAAK24N,yBAAL,GAAiCoD,sBAAsB,CAAC/7N,UAAD,CAAvD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI43N,aAAa,CAAC53N,UAAD,EAAa;IACtB,KAAK88N,aAAL,CAAmBlF,aAAa,CAAC53N,UAAD,EAAa,KAAKu3N,cAAlB,CAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIyF,kBAAkB,CAACh9N,UAAD,EAAa;IAC3B,KAAK+8N,kBAAL,CAAwBnF,aAAa,CAAC53N,UAAD,EAAa,KAAKy3N,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,CAAC/3N,UAAD,EAAa;IACzB,KAAK88N,aAAL,CAAmB/E,gBAAgB,CAAC/3N,UAAD,EAAa,KAAKu3N,cAAlB,CAAnC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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9yBiB;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,MAAM+4tB,SAAN,SAAwBtD,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI1muB,WAAW,CAACumuB,QAAD,EAAWP,eAAX,EAA4B9C,cAA5B,EAA4C;IACnD,MAAM6C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACjD,cAAD,EAAiB8C,eAAjB,CAA1D;IACA,KAAKO,QAAL,GAAgBA,QAAhB;;IACA,KAAKiD,gBAAL;;IACA,KAAKM,kBAAL,CAAwB9D,eAAxB;;IACA,KAAKiE,cAAL;;IACA,KAAKvB,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACAQ,SAAS,EAAE,CAAC,CAAC,KAAKlF;IALM,CAA5B;EAOH;;EACDgH,eAAe,CAACj5tB,IAAD,EAAOivtB,OAAP,EAAgB;IAC3B,IAAI,KAAKqG,QAAL,CAAct1tB,IAAd,CAAJ,EACI,OAAO,KAAKs1tB,QAAL,CAAct1tB,IAAd,CAAP;IACJ,KAAKs1tB,QAAL,CAAct1tB,IAAd,IAAsBivtB,OAAtB;IACAA,OAAO,CAACr7qB,SAAR,CAAkB,IAAlB;;IACAq7qB,OAAO,CAAC2J,2BAAR,CAAoC,KAAK/C,mBAAzC;;IACA,OAAO5G,OAAP;EACH;;EACDiK,UAAU,CAACl5tB,IAAD,EAAOivtB,OAAP,EAAgBp/tB,OAAO,GAAG,EAA1B,EAA8B;IACpC,KAAKopuB,eAAL,CAAqBj5tB,IAArB,EAA2BivtB,OAA3B;IACA,KAAKwI,sBAAL,CAA4B;MAAEN,SAAS,EAAEtnuB,OAAO,CAACsnuB;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIsD,aAAa,CAACn5tB,IAAD,EAAOnQ,OAAO,GAAG,EAAjB,EAAqB;IAC9B,IAAI,KAAKyluB,QAAL,CAAct1tB,IAAd,CAAJ,EACI,KAAKs1tB,QAAL,CAAct1tB,IAAd,EAAoB44tB,2BAApB,CAAgD,MAAM,CAAG,CAAzD;IACJ,OAAQ,KAAKtD,QAAL,CAAct1tB,IAAd,CAAR;IACA,KAAKy3tB,sBAAL,CAA4B;MAAEN,SAAS,EAAEtnuB,OAAO,CAACsnuB;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;;EACDuD,UAAU,CAACp5tB,IAAD,EAAOivtB,OAAP,EAAgBp/tB,OAAO,GAAG,EAA1B,EAA8B;IACpC,IAAI,KAAKyluB,QAAL,CAAct1tB,IAAd,CAAJ,EACI,KAAKs1tB,QAAL,CAAct1tB,IAAd,EAAoB44tB,2BAApB,CAAgD,MAAM,CAAG,CAAzD;IACJ,OAAQ,KAAKtD,QAAL,CAAct1tB,IAAd,CAAR;IACA,IAAIivtB,OAAJ,EACI,KAAKgK,eAAL,CAAqBj5tB,IAArB,EAA2BivtB,OAA3B;IACJ,KAAKwI,sBAAL,CAA4B;MAAEN,SAAS,EAAEtnuB,OAAO,CAACsnuB;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;;EACD90tB,QAAQ,CAACs4tB,WAAD,EAAc;IAClB,OAAO,KAAK/D,QAAL,CAAcnrtB,cAAd,CAA6BkvtB,WAA7B,KAA6C,KAAK/D,QAAL,CAAc+D,WAAd,EAA2B95tB,OAA/E;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;;;EACI42H,QAAQ,CAAC/mI,KAAD,EAAQS,OAAO,GAAG,EAAlB,EAAsB;IAC1B0luB,sBAAsB,CAAC,IAAD,EAAO,IAAP,EAAanmuB,KAAb,CAAtB;IACAwB,MAAM,CAACC,IAAP,CAAYzB,KAAZ,EAAmB0Q,OAAnB,CAA2BE,IAAI,IAAI;MAC/Bq1tB,oBAAoB,CAAC,IAAD,EAAO,IAAP,EAAar1tB,IAAb,CAApB;MACA,KAAKs1tB,QAAL,CAAct1tB,IAAd,EAAoBm2H,QAApB,CAA6B/mI,KAAK,CAAC4Q,IAAD,CAAlC,EAA0C;QAAE22tB,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAEtnuB,OAAO,CAACsnuB;MAArC,CAA1C;IACH,CAHD;IAIA,KAAKM,sBAAL,CAA4B5nuB,OAA5B;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;;;EACIypuB,UAAU,CAAClquB,KAAD,EAAQS,OAAO,GAAG,EAAlB,EAAsB;IAC5B;IACA;IACA;IACA;IACA,IAAIT,KAAK,IAAI;IAAK;IAAlB,EACI;IACJwB,MAAM,CAACC,IAAP,CAAYzB,KAAZ,EAAmB0Q,OAAnB,CAA2BE,IAAI,IAAI;MAC/B;MACA;MACA,MAAMivtB,OAAO,GAAG,KAAKqG,QAAL,CAAct1tB,IAAd,CAAhB;;MACA,IAAIivtB,OAAJ,EAAa;QACTA,OAAO,CAACqK,UAAR;QACA;QAA0DlquB,KAAK,CAAC4Q,IAAD,CAD/D,EACuE;UAAE22tB,QAAQ,EAAE,IAAZ;UAAkBQ,SAAS,EAAEtnuB,OAAO,CAACsnuB;QAArC,CADvE;MAEH;IACJ,CARD;IASA,KAAKM,sBAAL,CAA4B5nuB,OAA5B;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;AACA;;;EACIgQ,KAAK,CAACzQ,KAAK,GAAG,EAAT,EAAaS,OAAO,GAAG,EAAvB,EAA2B;IAC5B,KAAK2luB,aAAL,CAAmB,CAACvG,OAAD,EAAUjvtB,IAAV,KAAmB;MAClCivtB,OAAO,CAACpvtB,KAAR,CAAczQ,KAAK,CAAC4Q,IAAD,CAAnB,EAA2B;QAAE22tB,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAEtnuB,OAAO,CAACsnuB;MAArC,CAA3B;IACH,CAFD;;IAGA,KAAKF,eAAL,CAAqBpnuB,OAArB;;IACA,KAAKinuB,cAAL,CAAoBjnuB,OAApB;;IACA,KAAK4nuB,sBAAL,CAA4B5nuB,OAA5B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACI6nuB,WAAW,GAAG;IACV,OAAO,KAAK6B,eAAL,CAAqB,EAArB,EAAyB,CAACzwtB,GAAD,EAAMmmtB,OAAN,EAAejvtB,IAAf,KAAwB;MACpD8I,GAAG,CAAC9I,IAAD,CAAH,GAAYivtB,OAAO,CAACyI,WAAR,EAAZ;MACA,OAAO5utB,GAAP;IACH,CAHM,CAAP;EAIH;EACD;;;EACA0wtB,oBAAoB,GAAG;IACnB,IAAIC,cAAc,GAAG,KAAKF,eAAL,CAAqB,KAArB,EAA4B,CAACG,OAAD,EAAU14tB,KAAV,KAAoB;MACjE,OAAOA,KAAK,CAACw4tB,oBAAN,KAA+B,IAA/B,GAAsCE,OAA7C;IACH,CAFoB,CAArB;;IAGA,IAAID,cAAJ,EACI,KAAKhC,sBAAL,CAA4B;MAAEd,QAAQ,EAAE;IAAZ,CAA5B;IACJ,OAAO8C,cAAP;EACH;EACD;;;EACAjE,aAAa,CAACxqlB,EAAD,EAAK;IACdp6I,MAAM,CAACC,IAAP,CAAY,KAAKykuB,QAAjB,EAA2Bx1tB,OAA3B,CAAmC9O,GAAG,IAAI;MACtC;MACA;MACA;MACA,MAAMi+tB,OAAO,GAAG,KAAKqG,QAAL,CAActkuB,GAAd,CAAhB;MACAi+tB,OAAO,IAAIjklB,EAAE,CAACiklB,OAAD,EAAUj+tB,GAAV,CAAb;IACH,CAND;EAOH;EACD;;;EACAgouB,cAAc,GAAG;IACb,KAAKxD,aAAL,CAAoBvG,OAAD,IAAa;MAC5BA,OAAO,CAACr7qB,SAAR,CAAkB,IAAlB;;MACAq7qB,OAAO,CAAC2J,2BAAR,CAAoC,KAAK/C,mBAAzC;IACH,CAHD;EAIH;EACD;;;EACAyB,YAAY,GAAG;IACX,KAAKlouB,KAAL,GAAa,KAAKuquB,YAAL,EAAb;EACH;EACD;;;EACAlB,YAAY,CAAC/xrB,SAAD,EAAY;IACpB,KAAK,MAAM,CAAC2yrB,WAAD,EAAcpK,OAAd,CAAX,IAAqCr+tB,MAAM,CAAC80Y,OAAP,CAAe,KAAK4vV,QAApB,CAArC,EAAoE;MAChE,IAAI,KAAKv0tB,QAAL,CAAcs4tB,WAAd,KAA8B3yrB,SAAS,CAACuorB,OAAD,CAA3C,EAAsD;QAClD,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;EACD;;;EACA0K,YAAY,GAAG;IACX,IAAI7wtB,GAAG,GAAG,EAAV;IACA,OAAO,KAAKywtB,eAAL,CAAqBzwtB,GAArB,EAA0B,CAACA,GAAD,EAAMmmtB,OAAN,EAAejvtB,IAAf,KAAwB;MACrD,IAAIivtB,OAAO,CAAC1vtB,OAAR,IAAmB,KAAK+2G,QAA5B,EAAsC;QAClCxtG,GAAG,CAAC9I,IAAD,CAAH,GAAYivtB,OAAO,CAAC7/tB,KAApB;MACH;;MACD,OAAO0Z,GAAP;IACH,CALM,CAAP;EAMH;EACD;;;EACAywtB,eAAe,CAACztmB,SAAD,EAAY97H,EAAZ,EAAgB;IAC3B,IAAImyC,GAAG,GAAG2pF,SAAV;;IACA,KAAK0pmB,aAAL,CAAmB,CAACvG,OAAD,EAAUjvtB,IAAV,KAAmB;MAClCmiC,GAAG,GAAGnyC,EAAE,CAACmyC,GAAD,EAAM8srB,OAAN,EAAejvtB,IAAf,CAAR;IACH,CAFD;;IAGA,OAAOmiC,GAAP;EACH;EACD;;;EACA81rB,oBAAoB,GAAG;IACnB,KAAK,MAAMoB,WAAX,IAA0BzouB,MAAM,CAACC,IAAP,CAAY,KAAKykuB,QAAjB,CAA1B,EAAsD;MAClD,IAAI,KAAKA,QAAL,CAAc+D,WAAd,EAA2B95tB,OAA/B,EAAwC;QACpC,OAAO,KAAP;MACH;IACJ;;IACD,OAAO3O,MAAM,CAACC,IAAP,CAAY,KAAKykuB,QAAjB,EAA2B3kuB,MAA3B,GAAoC,CAApC,IAAyC,KAAK2lH,QAArD;EACH;EACD;;;EACAginB,KAAK,CAACt4tB,IAAD,EAAO;IACR,OAAO,KAAKs1tB,QAAL,CAAcnrtB,cAAd,CAA6BnK,IAA7B,IACH,KAAKs1tB,QAAL,CAAct1tB,IAAd,CADG,GAEH,IAFJ;EAGH;;AAxTmC;;AA0TxC,MAAM45tB,gBAAgB,GAAGb,SAAzB;;AACA,MAAMzE,WAAW,GAAIrF,OAAD,IAAaA,OAAO,YAAY8J,SAApD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMc,UAAN,SAAyBd,SAAzB,CAAmC;;AAEnC,MAAMe,YAAY,GAAI7K,OAAD,IAAaA,OAAO,YAAY4K,UAArD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,WAAT,CAAqB/5tB,IAArB,EAA2B5H,MAA3B,EAAmC;EAC/B,OAAO,CAAC,GAAGA,MAAM,CAACusD,IAAX,EAAiB3kD,IAAjB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASg6tB,YAAT,CAAsB/K,OAAtB,EAA+Bn3mB,GAA/B,EAAoC;EAChC,IAAI,OAAO1lH,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C,IAAI,CAAC68tB,OAAL,EACIgL,WAAW,CAACninB,GAAD,EAAM,0BAAN,CAAX;IACJ,IAAI,CAACA,GAAG,CAAC26mB,aAAT,EACIwH,WAAW,CAACninB,GAAD,EAAM,yCAAN,CAAX;EACP;;EACDoinB,eAAe,CAACjL,OAAD,EAAUn3mB,GAAV,CAAf;EACAA,GAAG,CAAC26mB,aAAJ,CAAkB7E,UAAlB,CAA6BqB,OAAO,CAAC7/tB,KAArC;;EACA,IAAI6/tB,OAAO,CAAC34mB,QAAZ,EAAsB;IAClBwB,GAAG,CAAC26mB,aAAJ,CAAkBlF,gBAAlB,GAAqC,IAArC;EACH;;EACD4M,uBAAuB,CAAClL,OAAD,EAAUn3mB,GAAV,CAAvB;EACAsinB,wBAAwB,CAACnL,OAAD,EAAUn3mB,GAAV,CAAxB;EACAuinB,iBAAiB,CAACpL,OAAD,EAAUn3mB,GAAV,CAAjB;EACAwinB,0BAA0B,CAACrL,OAAD,EAAUn3mB,GAAV,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyinB,cAAT,CAAwBtL,OAAxB,EAAiCn3mB,GAAjC,EAAsC0inB,+BAA+B,GAAG,IAAxE,EAA8E;EAC1E,MAAMlzrB,IAAI,GAAG,MAAM;IACf,IAAIkzrB,+BAA+B,KAAK,OAAOpouB,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAnC,EAAwF;MACpFqouB,eAAe,CAAC3inB,GAAD,CAAf;IACH;EACJ,CAJD,CAD0E,CAM1E;EACA;EACA;EACA;EACA;;;EACA,IAAIA,GAAG,CAAC26mB,aAAR,EAAuB;IACnB36mB,GAAG,CAAC26mB,aAAJ,CAAkBnF,gBAAlB,CAAmChmrB,IAAnC;IACAwwE,GAAG,CAAC26mB,aAAJ,CAAkBpF,iBAAlB,CAAoC/lrB,IAApC;EACH;;EACDozrB,iBAAiB,CAACzL,OAAD,EAAUn3mB,GAAV,CAAjB;;EACA,IAAIm3mB,OAAJ,EAAa;IACTn3mB,GAAG,CAACq6mB,yBAAJ;;IACAlD,OAAO,CAAC2J,2BAAR,CAAoC,MAAM,CAAG,CAA7C;EACH;AACJ;;AACD,SAAS+B,yBAAT,CAAmCthO,UAAnC,EAA+C3/P,QAA/C,EAAyD;EACrD2/P,UAAU,CAACv5f,OAAX,CAAoBw5f,SAAD,IAAe;IAC9B,IAAIA,SAAS,CAACqhO,yBAAd,EACIrhO,SAAS,CAACqhO,yBAAV,CAAoCjhe,QAApC;EACP,CAHD;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4ge,0BAAT,CAAoCrL,OAApC,EAA6Cn3mB,GAA7C,EAAkD;EAC9C,IAAIA,GAAG,CAAC26mB,aAAJ,CAAkBlF,gBAAtB,EAAwC;IACpC,MAAMqN,gBAAgB,GAAIx6lB,UAAD,IAAgB;MACrCtoB,GAAG,CAAC26mB,aAAJ,CAAkBlF,gBAAlB,CAAmCntlB,UAAnC;IACH,CAFD;;IAGA6ulB,OAAO,CAAC4L,wBAAR,CAAiCD,gBAAjC,EAJoC,CAKpC;IACA;;IACA9inB,GAAG,CAACo6mB,kBAAJ,CAAuB,MAAM;MACzBjD,OAAO,CAAC6L,2BAAR,CAAoCF,gBAApC;IACH,CAFD;EAGH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASV,eAAT,CAAyBjL,OAAzB,EAAkCn3mB,GAAlC,EAAuC;EACnC,MAAMuhZ,UAAU,GAAGs3N,oBAAoB,CAAC1B,OAAD,CAAvC;;EACA,IAAIn3mB,GAAG,CAACwhZ,SAAJ,KAAkB,IAAtB,EAA4B;IACxB21N,OAAO,CAACkH,aAAR,CAAsB3F,eAAe,CAACn3N,UAAD,EAAavhZ,GAAG,CAACwhZ,SAAjB,CAArC;EACH,CAFD,MAGK,IAAI,OAAOD,UAAP,KAAsB,UAA1B,EAAsC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA41N,OAAO,CAACkH,aAAR,CAAsB,CAAC98N,UAAD,CAAtB;EACH;;EACD,MAAM87N,eAAe,GAAGtE,yBAAyB,CAAC5B,OAAD,CAAjD;;EACA,IAAIn3mB,GAAG,CAACm6mB,cAAJ,KAAuB,IAA3B,EAAiC;IAC7BhD,OAAO,CAACmH,kBAAR,CAA2B5F,eAAe,CAAC2E,eAAD,EAAkBr9mB,GAAG,CAACm6mB,cAAtB,CAA1C;EACH,CAFD,MAGK,IAAI,OAAOkD,eAAP,KAA2B,UAA/B,EAA2C;IAC5ClG,OAAO,CAACmH,kBAAR,CAA2B,CAACjB,eAAD,CAA3B;EACH,CArBkC,CAsBnC;;;EACA,MAAM4F,iBAAiB,GAAG,MAAM9L,OAAO,CAACwI,sBAAR,EAAhC;;EACAkD,yBAAyB,CAAC7inB,GAAG,CAAC84mB,cAAL,EAAqBmK,iBAArB,CAAzB;EACAJ,yBAAyB,CAAC7inB,GAAG,CAACg5mB,mBAAL,EAA0BiK,iBAA1B,CAAzB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASL,iBAAT,CAA2BzL,OAA3B,EAAoCn3mB,GAApC,EAAyC;EACrC,IAAIkjnB,gBAAgB,GAAG,KAAvB;;EACA,IAAI/L,OAAO,KAAK,IAAhB,EAAsB;IAClB,IAAIn3mB,GAAG,CAACwhZ,SAAJ,KAAkB,IAAtB,EAA4B;MACxB,MAAMD,UAAU,GAAGs3N,oBAAoB,CAAC1B,OAAD,CAAvC;;MACA,IAAIp7tB,KAAK,CAACikB,OAAN,CAAcuhf,UAAd,KAA6BA,UAAU,CAAC1ogB,MAAX,GAAoB,CAArD,EAAwD;QACpD;QACA,MAAMsquB,iBAAiB,GAAG5hO,UAAU,CAAC1qgB,MAAX,CAAmB2qgB,SAAD,IAAeA,SAAS,KAAKxhZ,GAAG,CAACwhZ,SAAnD,CAA1B;;QACA,IAAI2hO,iBAAiB,CAACtquB,MAAlB,KAA6B0ogB,UAAU,CAAC1ogB,MAA5C,EAAoD;UAChDqquB,gBAAgB,GAAG,IAAnB;UACA/L,OAAO,CAACkH,aAAR,CAAsB8E,iBAAtB;QACH;MACJ;IACJ;;IACD,IAAInjnB,GAAG,CAACm6mB,cAAJ,KAAuB,IAA3B,EAAiC;MAC7B,MAAMkD,eAAe,GAAGtE,yBAAyB,CAAC5B,OAAD,CAAjD;;MACA,IAAIp7tB,KAAK,CAACikB,OAAN,CAAcq9sB,eAAd,KAAkCA,eAAe,CAACxkuB,MAAhB,GAAyB,CAA/D,EAAkE;QAC9D;QACA,MAAMuquB,sBAAsB,GAAG/F,eAAe,CAACxmuB,MAAhB,CAAwBsjuB,cAAD,IAAoBA,cAAc,KAAKn6mB,GAAG,CAACm6mB,cAAlE,CAA/B;;QACA,IAAIiJ,sBAAsB,CAACvquB,MAAvB,KAAkCwkuB,eAAe,CAACxkuB,MAAtD,EAA8D;UAC1DqquB,gBAAgB,GAAG,IAAnB;UACA/L,OAAO,CAACmH,kBAAR,CAA2B8E,sBAA3B;QACH;MACJ;IACJ;EACJ,CAzBoC,CA0BrC;;;EACA,MAAM5zrB,IAAI,GAAG,MAAM,CAAG,CAAtB;;EACAqzrB,yBAAyB,CAAC7inB,GAAG,CAAC84mB,cAAL,EAAqBtprB,IAArB,CAAzB;EACAqzrB,yBAAyB,CAAC7inB,GAAG,CAACg5mB,mBAAL,EAA0BxprB,IAA1B,CAAzB;EACA,OAAO0zrB,gBAAP;AACH;;AACD,SAASb,uBAAT,CAAiClL,OAAjC,EAA0Cn3mB,GAA1C,EAA+C;EAC3CA,GAAG,CAAC26mB,aAAJ,CAAkBnF,gBAAlB,CAAoCxzqB,QAAD,IAAc;IAC7Cm1qB,OAAO,CAACkM,aAAR,GAAwBrhrB,QAAxB;IACAm1qB,OAAO,CAACmM,cAAR,GAAyB,IAAzB;IACAnM,OAAO,CAACyG,aAAR,GAAwB,IAAxB;IACA,IAAIzG,OAAO,CAACgH,QAAR,KAAqB,QAAzB,EACIoF,aAAa,CAACpM,OAAD,EAAUn3mB,GAAV,CAAb;EACP,CAND;AAOH;;AACD,SAASuinB,iBAAT,CAA2BpL,OAA3B,EAAoCn3mB,GAApC,EAAyC;EACrCA,GAAG,CAAC26mB,aAAJ,CAAkBpF,iBAAlB,CAAoC,MAAM;IACtC4B,OAAO,CAAC2G,eAAR,GAA0B,IAA1B;IACA,IAAI3G,OAAO,CAACgH,QAAR,KAAqB,MAArB,IAA+BhH,OAAO,CAACmM,cAA3C,EACIC,aAAa,CAACpM,OAAD,EAAUn3mB,GAAV,CAAb;IACJ,IAAIm3mB,OAAO,CAACgH,QAAR,KAAqB,QAAzB,EACIhH,OAAO,CAACyH,aAAR;EACP,CAND;AAOH;;AACD,SAAS2E,aAAT,CAAuBpM,OAAvB,EAAgCn3mB,GAAhC,EAAqC;EACjC,IAAIm3mB,OAAO,CAACyG,aAAZ,EACIzG,OAAO,CAAC8H,WAAR;EACJ9H,OAAO,CAAC94lB,QAAR,CAAiB84lB,OAAO,CAACkM,aAAzB,EAAwC;IAAEG,qBAAqB,EAAE;EAAzB,CAAxC;EACAxjnB,GAAG,CAACyjnB,iBAAJ,CAAsBtM,OAAO,CAACkM,aAA9B;EACAlM,OAAO,CAACmM,cAAR,GAAyB,KAAzB;AACH;;AACD,SAAShB,wBAAT,CAAkCnL,OAAlC,EAA2Cn3mB,GAA3C,EAAgD;EAC5C,MAAM4hJ,QAAQ,GAAG,CAAC5/M,QAAD,EAAW0hrB,cAAX,KAA8B;IAC3C;IACA1jnB,GAAG,CAAC26mB,aAAJ,CAAkB7E,UAAlB,CAA6B9zqB,QAA7B,EAF2C,CAG3C;;IACA,IAAI0hrB,cAAJ,EACI1jnB,GAAG,CAACyjnB,iBAAJ,CAAsBzhrB,QAAtB;EACP,CAND;;EAOAm1qB,OAAO,CAAC3B,gBAAR,CAAyB5zd,QAAzB,EAR4C,CAS5C;EACA;;EACA5hJ,GAAG,CAACo6mB,kBAAJ,CAAuB,MAAM;IACzBjD,OAAO,CAACwM,mBAAR,CAA4B/he,QAA5B;EACH,CAFD;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgie,kBAAT,CAA4BzM,OAA5B,EAAqCn3mB,GAArC,EAA0C;EACtC,IAAIm3mB,OAAO,IAAI,IAAX,KAAoB,OAAO78tB,SAAP,KAAqB,WAArB,IAAoCA,SAAxD,CAAJ,EACI6nuB,WAAW,CAACninB,GAAD,EAAM,0BAAN,CAAX;EACJoinB,eAAe,CAACjL,OAAD,EAAUn3mB,GAAV,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6jnB,oBAAT,CAA8B1M,OAA9B,EAAuCn3mB,GAAvC,EAA4C;EACxC,OAAO4inB,iBAAiB,CAACzL,OAAD,EAAUn3mB,GAAV,CAAxB;AACH;;AACD,SAAS2inB,eAAT,CAAyB3inB,GAAzB,EAA8B;EAC1B,OAAOminB,WAAW,CAACninB,GAAD,EAAM,wEAAN,CAAlB;AACH;;AACD,SAASminB,WAAT,CAAqBninB,GAArB,EAA0B8E,OAA1B,EAAmC;EAC/B,MAAMg/mB,UAAU,GAAGC,wBAAwB,CAAC/jnB,GAAD,CAA3C;;EACA,MAAM,IAAIzoH,KAAJ,CAAW,GAAEutH,OAAQ,IAAGg/mB,UAAW,EAAnC,CAAN;AACH;;AACD,SAASC,wBAAT,CAAkC/jnB,GAAlC,EAAuC;EACnC,MAAMnzD,IAAI,GAAGmzD,GAAG,CAACnzD,IAAjB;EACA,IAAIA,IAAI,IAAIA,IAAI,CAACh0D,MAAL,GAAc,CAA1B,EACI,OAAQ,UAASg0D,IAAI,CAACzsC,IAAL,CAAU,MAAV,CAAkB,GAAnC;EACJ,IAAIysC,IAAI,GAAG,CAAH,CAAR,EACI,OAAQ,UAASA,IAAK,GAAtB;EACJ,OAAO,4BAAP;AACH;;AACD,SAASm3qB,+BAAT,CAAyChknB,GAAzC,EAA8C;EAC1C,MAAMmuM,GAAG,GAAG41a,wBAAwB,CAAC/jnB,GAAD,CAApC;;EACA,MAAM,IAAIwyc,2DAAJ,CAAkB;EAAK;EAAvB,EAA+E,qEAAoErkQ,GAAI,IAAzE,GAC/E,yFADC,CAAN;AAEH;;AACD,SAAS81a,iBAAT,CAA2B/9rB,OAA3B,EAAoCg+rB,SAApC,EAA+C;EAC3C,IAAI,CAACh+rB,OAAO,CAAC7zB,cAAR,CAAuB,OAAvB,CAAL,EACI,OAAO,KAAP;EACJ,MAAMo5C,MAAM,GAAGvlB,OAAO,CAAC,OAAD,CAAtB;EACA,IAAIulB,MAAM,CAACkukB,aAAP,EAAJ,EACI,OAAO,IAAP;EACJ,OAAO,CAAC7goB,MAAM,CAACytrB,EAAP,CAAU29C,SAAV,EAAqBz4qB,MAAM,CAAC4T,YAA5B,CAAR;AACH;;AACD,SAAS8kqB,iBAAT,CAA2BxJ,aAA3B,EAA0C;EACtC;EACA;EACA,OAAO7huB,MAAM,CAAC6zC,cAAP,CAAsBgurB,aAAa,CAAC1juB,WAApC,MAAqDy+tB,2BAA5D;AACH;;AACD,SAAS0O,mBAAT,CAA6B/nH,IAA7B,EAAmCyxB,UAAnC,EAA+C;EAC3CzxB,IAAI,CAACqlH,oBAAL;;EACA5zF,UAAU,CAAC9loB,OAAX,CAAoBg4G,GAAD,IAAS;IACxB,MAAMm3mB,OAAO,GAAGn3mB,GAAG,CAACm3mB,OAApB;;IACA,IAAIA,OAAO,CAACgH,QAAR,KAAqB,QAArB,IAAiChH,OAAO,CAACmM,cAA7C,EAA6D;MACzDtjnB,GAAG,CAACyjnB,iBAAJ,CAAsBtM,OAAO,CAACkM,aAA9B;MACAlM,OAAO,CAACmM,cAAR,GAAyB,KAAzB;IACH;EACJ,CAND;AAOH,EACD;;;AACA,SAASe,mBAAT,CAA6BrknB,GAA7B,EAAkCsknB,cAAlC,EAAkD;EAC9C,IAAI,CAACA,cAAL,EACI,OAAO,IAAP;EACJ,IAAI,CAACvouB,KAAK,CAACikB,OAAN,CAAcsktB,cAAd,CAAD,KAAmC,OAAOhquB,SAAP,KAAqB,WAArB,IAAoCA,SAAvE,CAAJ,EACI0puB,+BAA+B,CAAChknB,GAAD,CAA/B;EACJ,IAAIuknB,eAAe,GAAGlruB,SAAtB;EACA,IAAImruB,eAAe,GAAGnruB,SAAtB;EACA,IAAIoruB,cAAc,GAAGpruB,SAArB;EACAiruB,cAAc,CAACt8tB,OAAf,CAAwBsY,CAAD,IAAO;IAC1B,IAAIA,CAAC,CAACrpB,WAAF,KAAkB++tB,oBAAtB,EAA4C;MACxCuO,eAAe,GAAGjktB,CAAlB;IACH,CAFD,MAGK,IAAI6jtB,iBAAiB,CAAC7jtB,CAAD,CAArB,EAA0B;MAC3B,IAAIkktB,eAAe,KAAK,OAAOlquB,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAnB,EACI6nuB,WAAW,CAACninB,GAAD,EAAM,iEAAN,CAAX;MACJwknB,eAAe,GAAGlktB,CAAlB;IACH,CAJI,MAKA;MACD,IAAImktB,cAAc,KAAK,OAAOnquB,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAlB,EACI6nuB,WAAW,CAACninB,GAAD,EAAM,+DAAN,CAAX;MACJyknB,cAAc,GAAGnktB,CAAjB;IACH;EACJ,CAdD;EAeA,IAAImktB,cAAJ,EACI,OAAOA,cAAP;EACJ,IAAID,eAAJ,EACI,OAAOA,eAAP;EACJ,IAAID,eAAJ,EACI,OAAOA,eAAP;;EACJ,IAAI,OAAOjquB,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C6nuB,WAAW,CAACninB,GAAD,EAAM,+CAAN,CAAX;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAAS0knB,gBAAT,CAA0Bl0tB,IAA1B,EAAgCs7C,EAAhC,EAAoC;EAChC,MAAM3yD,KAAK,GAAGqX,IAAI,CAACtO,OAAL,CAAa4pD,EAAb,CAAd;EACA,IAAI3yD,KAAK,GAAG,CAAC,CAAb,EACIqX,IAAI,CAACm1C,MAAL,CAAYxsD,KAAZ,EAAmB,CAAnB;AACP,EACD;;;AACA,SAASwruB,eAAT,CAAyBz8tB,IAAzB,EAA+B1N,IAA/B,EAAqCyM,QAArC,EAA+C29tB,aAA/C,EAA8D;EAC1D,IAAIA,aAAa,KAAK,OAAtB,EACI;;EACJ,IAAK,CAACA,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAK,MAA7C,KAAwD,CAACpquB,IAAI,CAACqquB,uBAA/D,IACCD,aAAa,KAAK,QAAlB,IAA8B,CAAC39tB,QAAQ,CAAC69tB,mBAD7C,EACmE;IAC/Dj4rB,OAAO,CAACC,IAAR,CAAawvrB,cAAc,CAACp0tB,IAAD,CAA3B;IACA1N,IAAI,CAACqquB,uBAAL,GAA+B,IAA/B;IACA59tB,QAAQ,CAAC69tB,mBAAT,GAA+B,IAA/B;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,uBAAuB,GAAG;EAC5BtiuB,OAAO,EAAE+3tB,gBADmB;EAE5B93tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMo/H,MAAP;AAFK,CAAhC;;AAIA,MAAMC,iBAAiB,GAAG,CAAC,MAAM38tB,OAAO,CAACC,OAAR,EAAP,GAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy8tB,MAAN,SAAqBxK,gBAArB,CAAsC;EAClCvjuB,WAAW,CAACsqgB,UAAD,EAAa87N,eAAb,EAA8B;IACrC;IACA;AACR;AACA;AACA;;IACQ,KAAKhC,SAAL,GAAiB,KAAjB;IACA,KAAK6J,WAAL,GAAmB,IAAI5ltB,GAAJ,EAAnB;IACA;AACR;AACA;AACA;;IACQ,KAAK6ltB,QAAL,GAAgB,IAAIhvuB,uDAAJ,EAAhB;IACA,KAAKkmnB,IAAL,GACI,IAAI4kH,SAAJ,CAAc,EAAd,EAAkBzI,iBAAiB,CAACj3N,UAAD,CAAnC,EAAiDk3N,sBAAsB,CAAC4E,eAAD,CAAvE,CADJ;EAEH;EACD;;;EACAj4rB,eAAe,GAAG;IACd,KAAK27rB,kBAAL;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAbtG,aAAa,GAAG;IAChB,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPtD,OAAO,GAAG;IACV,OAAO,KAAK96G,IAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJxvjB,IAAI,GAAG;IACP,OAAO,EAAP;EACH;EACD;AACJ;AACA;AACA;;;EACgB,IAAR2wqB,QAAQ,GAAG;IACX,OAAO,KAAKnhH,IAAL,CAAUmhH,QAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI4D,UAAU,CAACphnB,GAAD,EAAM;IACZilnB,iBAAiB,CAACx8tB,IAAlB,CAAuB,MAAM;MACzB,MAAMykG,SAAS,GAAG,KAAKk4nB,cAAL,CAAoBplnB,GAAG,CAACnzD,IAAxB,CAAlB;;MACAmzD,GAAG,CAACm3mB,OAAJ,GACIjqnB,SAAS,CAACi0nB,eAAV,CAA0BnhnB,GAAG,CAAC93G,IAA9B,EAAoC83G,GAAG,CAACm3mB,OAAxC,CADJ;MAEA+K,YAAY,CAAClinB,GAAG,CAACm3mB,OAAL,EAAcn3mB,GAAd,CAAZ;MACAA,GAAG,CAACm3mB,OAAJ,CAAYwI,sBAAZ,CAAmC;QAAEN,SAAS,EAAE;MAAb,CAAnC;;MACA,KAAK6F,WAAL,CAAiB1ltB,GAAjB,CAAqBwgG,GAArB;IACH,CAPD;EAQH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIqlnB,UAAU,CAACrlnB,GAAD,EAAM;IACZ,OAAO,KAAKq8f,IAAL,CAAUh8mB,GAAV,CAAc2/G,GAAG,CAACnzD,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIw0qB,aAAa,CAACrhnB,GAAD,EAAM;IACfilnB,iBAAiB,CAACx8tB,IAAlB,CAAuB,MAAM;MACzB,MAAMykG,SAAS,GAAG,KAAKk4nB,cAAL,CAAoBplnB,GAAG,CAACnzD,IAAxB,CAAlB;;MACA,IAAIqgD,SAAJ,EAAe;QACXA,SAAS,CAACm0nB,aAAV,CAAwBrhnB,GAAG,CAAC93G,IAA5B;MACH;;MACD,KAAKg9tB,WAAL,CAAiBnurB,MAAjB,CAAwBipE,GAAxB;IACH,CAND;EAOH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIslnB,YAAY,CAACtlnB,GAAD,EAAM;IACdilnB,iBAAiB,CAACx8tB,IAAlB,CAAuB,MAAM;MACzB,MAAMykG,SAAS,GAAG,KAAKk4nB,cAAL,CAAoBplnB,GAAG,CAACnzD,IAAxB,CAAlB;;MACA,MAAMtO,KAAK,GAAG,IAAI0irB,SAAJ,CAAc,EAAd,CAAd;MACA2C,kBAAkB,CAACrlrB,KAAD,EAAQyhE,GAAR,CAAlB;MACA9S,SAAS,CAACi0nB,eAAV,CAA0BnhnB,GAAG,CAAC93G,IAA9B,EAAoCq2C,KAApC;MACAA,KAAK,CAACohrB,sBAAN,CAA6B;QAAEN,SAAS,EAAE;MAAb,CAA7B;IACH,CAND;EAOH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIkG,eAAe,CAACvlnB,GAAD,EAAM;IACjBilnB,iBAAiB,CAACx8tB,IAAlB,CAAuB,MAAM;MACzB,MAAMykG,SAAS,GAAG,KAAKk4nB,cAAL,CAAoBplnB,GAAG,CAACnzD,IAAxB,CAAlB;;MACA,IAAIqgD,SAAJ,EAAe;QACXA,SAAS,CAACm0nB,aAAV,CAAwBrhnB,GAAG,CAAC93G,IAA5B;MACH;IACJ,CALD;EAMH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIs9tB,YAAY,CAACxlnB,GAAD,EAAM;IACd,OAAO,KAAKq8f,IAAL,CAAUh8mB,GAAV,CAAc2/G,GAAG,CAACnzD,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI44qB,WAAW,CAACzlnB,GAAD,EAAM1oH,KAAN,EAAa;IACpB2tuB,iBAAiB,CAACx8tB,IAAlB,CAAuB,MAAM;MACzB,MAAMk9J,IAAI,GAAG,KAAK02c,IAAL,CAAUh8mB,GAAV,CAAc2/G,GAAG,CAACnzD,IAAlB,CAAb;MACA84G,IAAI,CAACtnC,QAAL,CAAc/mI,KAAd;IACH,CAHD;EAIH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI+mI,QAAQ,CAAC/mI,KAAD,EAAQ;IACZ,KAAK6/tB,OAAL,CAAa94lB,QAAb,CAAsB/mI,KAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIouuB,QAAQ,CAACC,MAAD,EAAS;IACb,KAAKtK,SAAL,GAAiB,IAAjB;IACA+I,mBAAmB,CAAC,KAAK/nH,IAAN,EAAY,KAAK6oH,WAAjB,CAAnB;IACA,KAAKC,QAAL,CAAcrmuB,IAAd,CAAmB6muB,MAAnB,EAHa,CAIb;IACA;;IACA,OAAOA,MAAM,EAAElluB,MAAR,EAAgB49nB,MAAhB,KAA2B,QAAlC;EACH;EACD;AACJ;AACA;AACA;;;EACIunG,OAAO,GAAG;IACN,KAAKC,SAAL;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIA,SAAS,CAACvuuB,KAAK,GAAG+B,SAAT,EAAoB;IACzB,KAAKgjnB,IAAL,CAAUt0mB,KAAV,CAAgBzQ,KAAhB;IACA,KAAK+juB,SAAL,GAAiB,KAAjB;EACH;;EACD0F,kBAAkB,GAAG;IACjB,IAAI,KAAKhpuB,OAAL,IAAgB,KAAKA,OAAL,CAAaomuB,QAAb,IAAyB,IAA7C,EAAmD;MAC/C,KAAK9hH,IAAL,CAAU+hH,SAAV,GAAsB,KAAKrmuB,OAAL,CAAaomuB,QAAnC;IACH;EACJ;;EACDiH,cAAc,CAACv4qB,IAAD,EAAO;IACjBA,IAAI,CAAC4mE,GAAL;IACA,OAAO5mE,IAAI,CAACh0D,MAAL,GAAc,KAAKwjnB,IAAL,CAAUh8mB,GAAV,CAAcwsD,IAAd,CAAd,GAAoC,KAAKwvjB,IAAhD;EACH;;AA9LiC;;AAgMtC2oH,MAAM,CAAClruB,IAAP;EAAA,iBAAmGkruB,MAAnG,EAj6G2GxktB,+DAi6G3G,CAA2Ho2sB,aAA3H,OAj6G2Gp2sB,+DAi6G3G,CAAiLq2sB,mBAAjL;AAAA;;AACAmO,MAAM,CAAC3lJ,IAAP,kBAl6G2G7+jB,+DAk6G3G;EAAA,MAAuFwktB,MAAvF;EAAA;EAAA;IAAA;MAl6G2GxktB,wDAk6G3G;QAAA,OAAuF,oBAAvF;MAAA;QAAA,OAAuF,aAAvF;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WAl6G2GA,gEAk6G3G,CAAiV,CAACuktB,uBAAD,CAAjV,GAl6G2GvktB,wEAk6G3G;AAAA;;AACA;EAAA,mDAn6G2GA,+DAm6G3G,CAA2FwktB,MAA3F,EAA+G,CAAC;IACpGxquB,IAAI,EAAE4jlB,oDAD8F;IAEpGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,wDADX;MAECtf,SAAS,EAAE,CAACuiuB,uBAAD,CAFZ;MAGCv7tB,IAAI,EAAE;QAAE,YAAY,kBAAd;QAAkC,WAAW;MAA7C,CAHP;MAICqjoB,OAAO,EAAE,CAAC,UAAD,CAJV;MAKCvtD,QAAQ,EAAE;IALX,CAAD;EAF8F,CAAD,CAA/G,EAS4B,YAAY;IAAE,OAAO,CAAC;MAAE9klB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAEnE,mDAAQA;MADgD,CAAD,EAE9D;QACCmE,IAAI,EAAEwmpB,+CAAIA;MADX,CAF8D,EAI9D;QACCxmpB,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACy5tB,aAAD;MAFP,CAJ8D;IAA/B,CAAD,EAO3B;MAAEp8tB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAEwmpB,+CAAIA;MADX,CAFkC,EAIlC;QACCxmpB,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC05tB,mBAAD;MAFP,CAJkC;IAA/B,CAP2B,CAAP;EAclB,CAvBxB,EAuB0C;IAAE9+tB,OAAO,EAAE,CAAC;MACtCyC,IAAI,EAAEmmB,gDADgC;MAEtCxjB,IAAI,EAAE,CAAC,eAAD;IAFgC,CAAD;EAAX,CAvB1C;AAAA;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2ouB,cAAT,CAAwBt1tB,IAAxB,EAA8Bs7C,EAA9B,EAAkC;EAC9B,MAAM3yD,KAAK,GAAGqX,IAAI,CAACtO,OAAL,CAAa4pD,EAAb,CAAd;EACA,IAAI3yD,KAAK,GAAG,CAAC,CAAb,EACIqX,IAAI,CAACm1C,MAAL,CAAYxsD,KAAZ,EAAmB,CAAnB;AACP;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4suB,kBAAT,CAA4BC,SAA5B,EAAuC;EACnC,OAAO,OAAOA,SAAP,KAAqB,QAArB,IAAiCA,SAAS,KAAK,IAA/C,IACHltuB,MAAM,CAACC,IAAP,CAAYituB,SAAZ,EAAuBntuB,MAAvB,KAAkC,CAD/B,IACoC,WAAWmtuB,SAD/C,IAC4D,cAAcA,SADjF;AAEH;;AACD,MAAMC,WAAW,GAAI,MAAMA,WAAN,SAA0BtI,eAA1B,CAA0C;EAC3D1muB,WAAW,EACX;EACA+uuB,SAAS,GAAG,IAFD,EAEO/I,eAFP,EAEwB9C,cAFxB,EAEwC;IAC/C,MAAM6C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACjD,cAAD,EAAiB8C,eAAjB,CAA1D;IACA;;IACA,KAAKlxrB,YAAL,GAAoB,IAApB;IACA;;IACA,KAAKm6rB,SAAL,GAAiB,EAAjB;IACA;;IACA,KAAK5C,cAAL,GAAsB,KAAtB;;IACA,KAAK6C,eAAL,CAAqBH,SAArB;;IACA,KAAKjF,kBAAL,CAAwB9D,eAAxB;;IACA,KAAKwD,gBAAL;;IACA,KAAKd,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA;MACAQ,SAAS,EAAE,CAAC,CAAC,KAAKlF;IANM,CAA5B;;IAQA,IAAI+C,YAAY,CAACD,eAAD,CAAZ,KACCA,eAAe,CAACmJ,WAAhB,IAA+BnJ,eAAe,CAACoJ,qBADhD,CAAJ,EAC4E;MACxE,IAAIN,kBAAkB,CAACC,SAAD,CAAtB,EAAmC;QAC/B,KAAKj6rB,YAAL,GAAoBi6rB,SAAS,CAAC1uuB,KAA9B;MACH,CAFD,MAGK;QACD,KAAKy0C,YAAL,GAAoBi6rB,SAApB;MACH;IACJ;EACJ;;EACD3nmB,QAAQ,CAAC/mI,KAAD,EAAQS,OAAO,GAAG,EAAlB,EAAsB;IAC1B,KAAKT,KAAL,GAAa,KAAK+ruB,aAAL,GAAqB/ruB,KAAlC;;IACA,IAAI,KAAK4uuB,SAAL,CAAertuB,MAAf,IAAyBd,OAAO,CAACyruB,qBAAR,KAAkC,KAA/D,EAAsE;MAClE,KAAK0C,SAAL,CAAel+tB,OAAf,CAAwB03tB,QAAD,IAAcA,QAAQ,CAAC,KAAKpouB,KAAN,EAAaS,OAAO,CAACuuuB,qBAAR,KAAkC,KAA/C,CAA7C;IACH;;IACD,KAAK3G,sBAAL,CAA4B5nuB,OAA5B;EACH;;EACDypuB,UAAU,CAAClquB,KAAD,EAAQS,OAAO,GAAG,EAAlB,EAAsB;IAC5B,KAAKsmI,QAAL,CAAc/mI,KAAd,EAAqBS,OAArB;EACH;;EACDgQ,KAAK,CAACi+tB,SAAS,GAAG,KAAKj6rB,YAAlB,EAAgCh0C,OAAO,GAAG,EAA1C,EAA8C;IAC/C,KAAKouuB,eAAL,CAAqBH,SAArB;;IACA,KAAK9G,cAAL,CAAoBnnuB,OAApB;IACA,KAAKgnuB,eAAL,CAAqBhnuB,OAArB;IACA,KAAKsmI,QAAL,CAAc,KAAK/mI,KAAnB,EAA0BS,OAA1B;IACA,KAAKuruB,cAAL,GAAsB,KAAtB;EACH;EACD;;;EACA9D,YAAY,GAAG,CAAG;EAClB;;;EACAmB,YAAY,CAAC/xrB,SAAD,EAAY;IACpB,OAAO,KAAP;EACH;EACD;;;EACAuxrB,oBAAoB,GAAG;IACnB,OAAO,KAAK3hnB,QAAZ;EACH;;EACDg3mB,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKguuB,SAAL,CAAe3ouB,IAAf,CAAoBrF,EAApB;EACH;EACD;;;EACAyruB,mBAAmB,CAACzruB,EAAD,EAAK;IACpB4tuB,cAAc,CAAC,KAAKI,SAAN,EAAiBhuuB,EAAjB,CAAd;EACH;;EACD6quB,wBAAwB,CAAC7quB,EAAD,EAAK;IACzB,KAAK8luB,iBAAL,CAAuBzguB,IAAvB,CAA4BrF,EAA5B;EACH;EACD;;;EACA8quB,2BAA2B,CAAC9quB,EAAD,EAAK;IAC5B4tuB,cAAc,CAAC,KAAK9H,iBAAN,EAAyB9luB,EAAzB,CAAd;EACH;EACD;;;EACAwluB,aAAa,CAACxqlB,EAAD,EAAK,CAAG;EACrB;;;EACAwulB,oBAAoB,GAAG;IACnB,IAAI,KAAKvD,QAAL,KAAkB,QAAtB,EAAgC;MAC5B,IAAI,KAAKP,aAAT,EACI,KAAKqB,WAAL;MACJ,IAAI,KAAKnB,eAAT,EACI,KAAKc,aAAL;;MACJ,IAAI,KAAK0E,cAAT,EAAyB;QACrB,KAAKjlmB,QAAL,CAAc,KAAKglmB,aAAnB,EAAkC;UAAExE,QAAQ,EAAE,IAAZ;UAAkB2E,qBAAqB,EAAE;QAAzC,CAAlC;QACA,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;EACD2C,eAAe,CAACH,SAAD,EAAY;IACvB,IAAID,kBAAkB,CAACC,SAAD,CAAtB,EAAmC;MAC/B,KAAK1uuB,KAAL,GAAa,KAAK+ruB,aAAL,GAAqB2C,SAAS,CAAC1uuB,KAA5C;MACA0uuB,SAAS,CAACxnnB,QAAV,GAAqB,KAAK48d,OAAL,CAAa;QAAEyjJ,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE;MAA7B,CAAb,CAArB,GACI,KAAKv6f,MAAL,CAAY;QAAE+5f,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE;MAA7B,CAAZ,CADJ;IAEH,CAJD,MAKK;MACD,KAAK/nuB,KAAL,GAAa,KAAK+ruB,aAAL,GAAqB2C,SAAlC;IACH;EACJ;;AAlG0D,CAA/D;AAoGA,MAAMO,kBAAkB,GAAGN,WAA3B;;AACA,MAAMO,aAAa,GAAIrP,OAAD,IAAaA,OAAO,YAAY8O,WAAtD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMQ,0BAAN,SAAyCjM,gBAAzC,CAA0D;EACtD;EACAn1H,QAAQ,GAAG;IACP,KAAKqhI,gBAAL,GADO,CAEP;;;IACA,KAAKjM,aAAL,CAAmB6K,YAAnB,CAAgC,IAAhC;EACH;EACD;;;EACA3luB,WAAW,GAAG;IACV,IAAI,KAAK86tB,aAAT,EAAwB;MACpB;MACA,KAAKA,aAAL,CAAmB8K,eAAnB,CAAmC,IAAnC;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACe,IAAPpO,OAAO,GAAG;IACV,OAAO,KAAKsD,aAAL,CAAmB+K,YAAnB,CAAgC,IAAhC,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACY,IAAJ34qB,IAAI,GAAG;IACP,OAAOo1qB,WAAW,CAAC,KAAK/5tB,IAAL,IAAa,IAAb,GAAoB,KAAKA,IAAzB,GAAgC,KAAKA,IAAL,CAAU/M,QAAV,EAAjC,EAAuD,KAAK0hX,OAA5D,CAAlB;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAb49W,aAAa,GAAG;IAChB,OAAO,KAAK59W,OAAL,GAAe,KAAKA,OAAL,CAAa49W,aAA5B,GAA4C,IAAnD;EACH;EACD;;;EACAiM,gBAAgB,GAAG,CAAG;;AApCgC;;AAsC1DD,0BAA0B,CAAC3suB,IAA3B;EAAA;EAAA;IAAA,8FAjnH2G0mB,mEAinH3G,CAAuHimtB,0BAAvH,SAAuHA,0BAAvH;EAAA;AAAA;;AACAA,0BAA0B,CAACpnJ,IAA3B,kBAlnH2G7+jB,+DAknH3G;EAAA,MAA2GimtB,0BAA3G;EAAA,WAlnH2GjmtB,wEAknH3G;AAAA;;AACA;EAAA,mDAnnH2GA,+DAmnH3G,CAA2FimtB,0BAA3F,EAAmI,CAAC;IACxHjsuB,IAAI,EAAE4jlB,oDAASA;EADyG,CAAD,CAAnI;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuoJ,oBAAT,GAAgC;EAC5B,OAAO,IAAIn0K,2DAAJ,CAAkB;EAAK;EAAvB,EAAsE;AACjF;AACA;AACA;AACA,MAAMkpK,sBAAuB;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAMI,2BAA4B,EAVvB,CAAP;AAWH;;AACD,SAAS8K,sBAAT,GAAkC;EAC9B,OAAO,IAAIp0K,2DAAJ,CAAkB;EAAK;EAAvB,EAA2E;AACtF;AACA;AACA;AACA;AACA,MAAMmpK,oBAAqB;AAC3B;AACA;AACA;AACA,MAAME,mBAAoB,EATf,CAAP;AAUH;;AACD,SAASgL,oBAAT,GAAgC;EAC5B,OAAO,IAAIr0K,2DAAJ,CAAkB;EAAK;EAAvB,EAAqE;AAChF;AACA;AACA;AACA,4FAJW,CAAP;AAKH;;AACD,SAASs0K,yBAAT,GAAqC;EACjC,OAAO,IAAIt0K,2DAAJ,CAAkB;EAAK;EAAvB,EAA2E;AACtF;AACA;AACA;AACA;AACA,MAAMmpK,oBAAqB;AAC3B;AACA;AACA;AACA,MAAME,mBAAoB,EATf,CAAP;AAUH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkL,kBAAkB,GAAG;EACvBtkuB,OAAO,EAAE+3tB,gBADc;EAEvB93tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMohI,YAAP;AAFA,CAA3B;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;AACA;;AACA,MAAMA,YAAN,SAA2BP,0BAA3B,CAAsD;EAClDxvuB,WAAW,CAACqJ,MAAD,EAASihgB,UAAT,EAAqB87N,eAArB,EAAsC;IAC7C;IACA,KAAKxgX,OAAL,GAAev8W,MAAf;;IACA,KAAKy5tB,cAAL,CAAoBx4N,UAApB;;IACA,KAAK04N,mBAAL,CAAyBoD,eAAzB;EACH;EACD;;;EACAqJ,gBAAgB,GAAG;IACf,IAAI,EAAE,KAAK7pX,OAAL,YAAwBmqX,YAA1B,KAA2C,EAAE,KAAKnqX,OAAL,YAAwBmoX,MAA1B,CAA3C,KACC,OAAO1quB,SAAP,KAAqB,WAArB,IAAoCA,SADrC,CAAJ,EACqD;MACjD,MAAMwsuB,yBAAyB,EAA/B;IACH;EACJ;;AAbiD;;AAetDE,YAAY,CAACltuB,IAAb;EAAA,iBAAyGktuB,YAAzG,EA/tH2GxmtB,+DA+tH3G,CAAuIg6sB,gBAAvI,MA/tH2Gh6sB,+DA+tH3G,CAAgMo2sB,aAAhM,OA/tH2Gp2sB,+DA+tH3G,CAAsPq2sB,mBAAtP;AAAA;;AACAmQ,YAAY,CAAC3nJ,IAAb,kBAhuH2G7+jB,+DAguH3G;EAAA,MAA6FwmtB,YAA7F;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WAhuH2GxmtB,gEAguH3G,CAA8L,CAACumtB,kBAAD,CAA9L,GAhuH2GvmtB,wEAguH3G;AAAA;;AACA;EAAA,mDAjuH2GA,+DAiuH3G,CAA2FwmtB,YAA3F,EAAqH,CAAC;IAC1GxsuB,IAAI,EAAE4jlB,oDADoG;IAE1GjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,gBAAZ;MAA8Btf,SAAS,EAAE,CAACukuB,kBAAD,CAAzC;MAA+DznJ,QAAQ,EAAE;IAAzE,CAAD;EAFoG,CAAD,CAArH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE9klB,IAAI,EAAEgguB,gBAAR;MAA0B36tB,UAAU,EAAE,CAAC;QACrErF,IAAI,EAAEk2mB,+CAAIA;MAD2D,CAAD,EAErE;QACCl2mB,IAAI,EAAEurmB,mDAAQA;MADf,CAFqE;IAAtC,CAAD,EAI3B;MAAEvrmB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAEwmpB,+CAAIA;MADX,CAFkC,EAIlC;QACCxmpB,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACy5tB,aAAD;MAFP,CAJkC;IAA/B,CAJ2B,EAW3B;MAAEp8tB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAEwmpB,+CAAIA;MADX,CAFkC,EAIlC;QACCxmpB,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC05tB,mBAAD;MAFP,CAJkC;IAA/B,CAX2B,CAAP;EAkBlB,CArBxB,EAqB0C;IAAE3utB,IAAI,EAAE,CAAC;MACnC1N,IAAI,EAAEmmB,gDAD6B;MAEnCxjB,IAAI,EAAE,CAAC,cAAD;IAF6B,CAAD;EAAR,CArB1C;AAAA;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8puB,oBAAoB,GAAG;EACzBxkuB,OAAO,EAAEi4tB,SADgB;EAEzBh4tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMshI,OAAP;AAFE,CAA7B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM9lG,eAAe,GAAG,CAAC,MAAM94nB,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,MAAM2+tB,OAAN,SAAsBxM,SAAtB,CAAgC;EAC5BzjuB,WAAW,CAACqJ,MAAD,EAASihgB,UAAT,EAAqB87N,eAArB,EAAsCiH,cAAtC,EAAsD15H,kBAAtD,EAA0E;IACjF;IACA,KAAKA,kBAAL,GAA0BA,kBAA1B;IACA,KAAKusH,OAAL,GAAe,IAAI8O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ACzGrzuB,IAAI,EAAEhE,mDADmG;IAEzG2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAEwmsB,0BADf;MAECvmsB,OAAO,EAAE,CAACymsB,0BAAD,EAA6BF,0BAA7B;IAFV,CAAD;EAFmG,CAAD,CAApH;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,mBAAN,CAA0B;EACtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACqB,OAAVC,UAAU,CAACptuB,IAAD,EAAO;IACpB,OAAO;MACH4B,QAAQ,EAAEuruB,mBADP;MAEHtruB,SAAS,EAAE,CACP;QAAEC,OAAO,EAAEumuB,kCAAX;QAA+Cj4G,QAAQ,EAAEpwnB,IAAI,CAACqtuB;MAA9D,CADO;IAFR,CAAP;EAMH;;AAhBqB;;AAkB1BF,mBAAmB,CAACh0uB,IAApB;EAAA,iBAAgHg0uB,mBAAhH;AAAA;;AACAA,mBAAmB,CAAClruB,IAApB,kBA33M2G4d,8DA23M3G;EAAA,MAAiHsttB;AAAjH;AACAA,mBAAmB,CAAChruB,IAApB,kBA53M2G0d,8DA43M3G;EAAA,UAAgJottB,0BAAhJ;AAAA;;AACA;EAAA,mDA73M2GpttB,+DA63M3G,CAA2FsttB,mBAA3F,EAA4H,CAAC;IACjHtzuB,IAAI,EAAEhE,mDAD2G;IAEjH2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CAACymsB,0BAAD,CADf;MAECxmsB,OAAO,EAAE,CAACymsB,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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AkBQ,SAAS,EAAEtnuB,OAAO,CAACsnuB;QAArC,CAApC;MACH;IACJ,CAJD;IAKA,KAAKM,sBAAL,CAA4B5nuB,OAA5B;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;;;EACIgQ,KAAK,CAACzQ,KAAK,GAAG,EAAT,EAAaS,OAAO,GAAG,EAAvB,EAA2B;IAC5B,KAAK2luB,aAAL,CAAmB,CAACvG,OAAD,EAAUh+tB,KAAV,KAAoB;MACnCg+tB,OAAO,CAACpvtB,KAAR,CAAczQ,KAAK,CAAC6B,KAAD,CAAnB,EAA4B;QAAE0luB,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAEtnuB,OAAO,CAACsnuB;MAArC,CAA5B;IACH,CAFD;;IAGA,KAAKF,eAAL,CAAqBpnuB,OAArB;;IACA,KAAKinuB,cAAL,CAAoBjnuB,OAApB;;IACA,KAAK4nuB,sBAAL,CAA4B5nuB,OAA5B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACI6nuB,WAAW,GAAG;IACV,OAAO,KAAKpC,QAAL,CAAct8tB,GAAd,CAAmBi2tB,OAAD,IAAaA,OAAO,CAACyI,WAAR,EAA/B,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI5muB,KAAK,CAACjB,OAAO,GAAG,EAAX,EAAe;IAChB,IAAI,KAAKyluB,QAAL,CAAc3kuB,MAAd,GAAuB,CAA3B,EACI;;IACJ,KAAK6kuB,aAAL,CAAoBvG,OAAD,IAAaA,OAAO,CAAC2J,2BAAR,CAAoC,MAAM,CAAG,CAA7C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;EAF+G,CAAD,CAAhI;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,iBAAT,GAA6B;EACzB;EACA;EACA,OAAO,CAAC,GAAGH,4BAAJ,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMI,oBAAN,CAA2B;;AAE3BA,oBAAoB,CAAC33uB,IAArB;EAAA,iBAAiH23uB,oBAAjH;AAAA;;AACAA,oBAAoB,CAAC7uuB,IAArB,kBAvd0G4d,8DAud1G;EAAA,MAAkHixtB;AAAlH;AACAA,oBAAoB,CAAC3uuB,IAArB,kBAxd0G0d,8DAwd1G;EAAA,WAAmJ8wtB,iCAAnJ;EAAA,UAAgMpC,oEAAhM;AAAA;;AACA;EAAA,mDAzd0G1utB,+DAyd1G,CAA2FixtB,oBAA3F,EAA6H,CAAC;IAClHj3uB,IAAI,EAAEhE,mDAD4G;IAElH2G,IAAI,EAAE,CAAC;MACCgqC,OAAO,EAAE,CAAC+nsB,oEAAD,CADV;MAEC1suB,SAAS,EAAE8uuB;IAFZ,CAAD;EAF4G,CAAD,CAA7H;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,qBAAT,GAAiC;EAC7B;EACA;EACA,OAAO,CAAC,GAAGJ,iCAAJ,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnkBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAA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n1L,2DAAJ,CAAkB;MAAK;MAAvB,EAA+DssM,aAAa,IAAK,+BAA8BnX,GAAI,qBAAoBrvuB,CAAE,EAAzI,CAAN;IACH;EACJ;AACJ;;AACD,SAASspvB,4BAAT,CAAsC9pwB,MAAtC,EAA8C;EAC1C,OAAOA,MAAM,KAAK,YAAlB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6swB,UAAN,CAAiB;EACb1twB,WAAW,CAAComwB,MAAD,EAASx3hB,KAAT,EAAgB++hB,iBAAhB,EAAmC/xgB,QAAnC,EAA6C/mM,EAA7C,EAAiD;IACxD,KAAKuxsB,MAAL,GAAcA,MAAd;IACA,KAAKx3hB,KAAL,GAAaA,KAAb;IACA,KAAK++hB,iBAAL,GAAyBA,iBAAzB;IACA,KAAK/xgB,QAAL,GAAgBA,QAAhB;IACA,KAAK/mM,EAAL,GAAUA,EAAV;IACA,KAAK+4sB,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKxsY,QAAL,GAAgB,IAAhB;IACA;;IACA,KAAKysY,SAAL,GAAiB,IAAInqN,0CAAJ,EAAjB;IACA,KAAKoqN,0BAAL,CAAgC,GAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBlB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKc,iBAAL,GAAyBvyC,kEAAgB,CAACyxC,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKc,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlB9C,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAK+C,mBAAL,GAA2BxyC,kEAAgB,CAACyvC,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAK+C,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAV1C,UAAU,CAACA,UAAD,EAAa;IACvB,KAAK2C,WAAL,GAAmBzyC,kEAAgB,CAAC8vC,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAK2C,WAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACIE,0BAA0B,CAACC,WAAD,EAAc;IACpC,IAAI,KAAKN,iBAAL,IAA0B;IAAK;IAAnC,EAAsE;MAClE;IACH;;IACD,MAAM/xgB,QAAQ,GAAG,KAAKA,QAAtB;IACA,MAAM5lO,aAAa,GAAG,KAAK6+B,EAAL,CAAQ7+B,aAA9B;;IACA,IAAIi4uB,WAAW,KAAK,IAApB,EAA0B;MACtBrygB,QAAQ,CAAC9gP,YAAT,CAAsBkb,aAAtB,EAAqC,UAArC,EAAiDi4uB,WAAjD;IACH,CAFD,MAGK;MACDrygB,QAAQ,CAAC/gP,eAAT,CAAyBmb,aAAzB,EAAwC,UAAxC;IACH;EACJ;EACD;;;EACAgZ,WAAW,CAACC,OAAD,EAAU;IACjB;IACA;IACA,KAAK8+tB,SAAL,CAAe37vB,IAAf,CAAoB,IAApB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAV87vB,UAAU,CAAC5sY,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgBx8X,KAAK,CAACikB,OAAN,CAAcu4W,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;MACA,KAAK0sY,0BAAL,CAAgC,GAAhC;IACH,CAHD,MAIK;MACD,KAAK1sY,QAAL,GAAgB,IAAhB;MACA,KAAK0sY,0BAAL,CAAgC,IAAhC;IACH;EACJ;EACD;;;EACAt/V,OAAO,GAAG;IACN,IAAI,KAAKwgV,OAAL,KAAiB,IAArB,EAA2B;MACvB,OAAO,IAAP;IACH;;IACD,MAAM37V,MAAM,GAAG;MACXu3W,kBAAkB,EAAE,KAAKA,kBADd;MAEXK,UAAU,EAAE,KAAKA,UAFN;MAGX57vB,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAK62vB,MAAL,CAAYmG,aAAZ,CAA0B,KAAKrd,OAA/B,EAAwC37V,MAAxC;IACA,OAAO,IAAP;EACH;;EACU,IAAP27V,OAAO,GAAG;IACV,IAAI,KAAK5tX,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAK8kY,MAAL,CAAYnX,aAAZ,CAA0B,KAAK3tX,QAA/B,EAAyC;MAC5C;MACA;MACAwsX,UAAU,EAAE,KAAKA,UAAL,KAAoB1rvB,SAApB,GAAgC,KAAK0rvB,UAArC,GAAkD,KAAKl/gB,KAHvB;MAI5CkuY,WAAW,EAAE,KAAKA,WAJ0B;MAK5C+sI,QAAQ,EAAE,KAAKA,QAL6B;MAM5CgjB,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AArHY;;AAuHjBY,UAAU,CAAC7qwB,IAAX;EAAA,iBAAuG6qwB,UAAvG,EA9vKgGnkvB,+DA8vKhG,CAAmIm/uB,MAAnI,GA9vKgGn/uB,+DA8vKhG,CAAsJwquB,cAAtJ,GA9vKgGxquB,+DA8vKhG,CAAiL,UAAjL,GA9vKgGA,+DA8vKhG,CAAyNA,oDAAzN,GA9vKgGA,+DA8vKhG,CAAkPA,qDAAlP;AAAA;;AACAmkvB,UAAU,CAACtlL,IAAX,kBA/vKgG7+jB,+DA+vKhG;EAAA,MAA2FmkvB,UAA3F;EAAA;EAAA;IAAA;MA/vKgGnkvB,wDA+vKhG;QAAA,OAA2F,aAA3F;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WA/vKgGA,kEA+vKhG;AAAA;;AACA;EAAA,mDAhwKgGA,+DAgwKhG,CAA2FmkvB,UAA3F,EAAmH,CAAC;IACxGnqwB,IAAI,EAAE4jlB,oDADkG;IAExGjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,+BADX;MAECskS,UAAU,EAAE;IAFb,CAAD;EAFkG,CAAD,CAAnH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEmlwB;IAAR,CAAD,EAAmB;MAAEnlwB,IAAI,EAAEwwvB;IAAR,CAAnB,EAA6C;MAAExwvB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC1GrF,IAAI,EAAEm2mB,oDADoG;QAE1GxzmB,IAAI,EAAE,CAAC,UAAD;MAFoG,CAAD;IAA/B,CAA7C,EAG3B;MAAE3C,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAH2B,EAGH;MAAE12mB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAHG,CAAP;EAG+B,CATzE,EAS2F;IAAEmtkB,WAAW,EAAE,CAAC;MAC3Fv5mB,IAAI,EAAEmmB,gDAAKA;IADgF,CAAD,CAAf;IAE3EmguB,QAAQ,EAAE,CAAC;MACXtmvB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAFiE;IAI3EmjvB,mBAAmB,EAAE,CAAC;MACtBtpwB,IAAI,EAAEmmB,gDAAKA;IADW,CAAD,CAJsD;IAM3Ena,KAAK,EAAE,CAAC;MACRhM,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CANoE;IAQ3EokuB,UAAU,EAAE,CAAC;MACbvqvB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAR+D;IAU3EojvB,gBAAgB,EAAE,CAAC;MACnBvpwB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAVyD;IAY3EohvB,kBAAkB,EAAE,CAAC;MACrBvnwB,IAAI,EAAEmmB,gDAAKA;IADU,CAAD,CAZuD;IAc3EyhvB,UAAU,EAAE,CAAC;MACb5nwB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAd+D;IAgB3EwkvB,UAAU,EAAE,CAAC;MACb3qwB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAhB+D;IAkB3EglZ,OAAO,EAAE,CAAC;MACVnra,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAlBkE,CAT3F;AAAA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMiowB,kBAAN,CAAyB;EACrBnuwB,WAAW,CAAComwB,MAAD,EAASx3hB,KAAT,EAAgBquY,gBAAhB,EAAkC;IACzC,KAAKmpJ,MAAL,GAAcA,MAAd;IACA,KAAKx3hB,KAAL,GAAaA,KAAb;IACA,KAAKquY,gBAAL,GAAwBA,gBAAxB;IACA,KAAK2wJ,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKxsY,QAAL,GAAgB,IAAhB,CAPyC,CAQzC;IACA;IACA;;IACA,KAAKhV,IAAL,GAAY,IAAZ;IACA;;IACA,KAAKyhZ,SAAL,GAAiB,IAAInqN,0CAAJ,EAAjB;IACA,KAAKK,YAAL,GAAoBmiN,MAAM,CAAC38vB,MAAP,CAAczI,SAAd,CAAyB28C,CAAD,IAAO;MAC/C,IAAIA,CAAC,YAAYi0sB,aAAjB,EAAgC;QAC5B,KAAKwc,sBAAL;MACH;IACJ,CAJmB,CAApB;EAKH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBtB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKc,iBAAL,GAAyBvyC,kEAAgB,CAACyxC,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKc,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlB9C,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAK+C,mBAAL,GAA2BxyC,kEAAgB,CAACyvC,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAK+C,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAV1C,UAAU,CAACA,UAAD,EAAa;IACvB,KAAK2C,WAAL,GAAmBzyC,kEAAgB,CAAC8vC,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAK2C,WAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAVI,UAAU,CAAC5sY,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgBx8X,KAAK,CAACikB,OAAN,CAAcu4W,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;IACH,CAFD,MAGK;MACD,KAAKA,QAAL,GAAgB,IAAhB;IACH;EACJ;EACD;;;EACAtyV,WAAW,CAACC,OAAD,EAAU;IACjB,KAAKm/tB,sBAAL;IACA,KAAKL,SAAL,CAAe37vB,IAAf,CAAoB,IAApB;EACH;EACD;;;EACA1J,WAAW,GAAG;IACV,KAAKu7iB,YAAL,CAAkB7ijB,WAAlB;EACH;EACD;;;EACAsta,OAAO,CAACngS,MAAD,EAAS7U,OAAT,EAAkB//B,QAAlB,EAA4B8/B,MAA5B,EAAoCE,OAApC,EAA6C;IAChD,IAAI4U,MAAM,KAAK,CAAX,IAAgB7U,OAAhB,IAA2B//B,QAA3B,IAAuC8/B,MAAvC,IAAiDE,OAArD,EAA8D;MAC1D,OAAO,IAAP;IACH;;IACD,IAAI,OAAO,KAAKnwH,MAAZ,KAAuB,QAAvB,IAAmC,KAAKA,MAAL,IAAe,OAAlD,IAA6D,KAAK0lvB,OAAL,KAAiB,IAAlF,EAAwF;MACpF,OAAO,IAAP;IACH;;IACD,MAAM37V,MAAM,GAAG;MACXu3W,kBAAkB,EAAE,KAAKA,kBADd;MAEXK,UAAU,EAAE,KAAKA,UAFN;MAGX57vB,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAK62vB,MAAL,CAAYmG,aAAZ,CAA0B,KAAKrd,OAA/B,EAAwC37V,MAAxC;IACA,OAAO,KAAP;EACH;;EACD66W,sBAAsB,GAAG;IACrB,KAAK9hZ,IAAL,GAAY,KAAK4iY,OAAL,KAAiB,IAAjB,GACR,KAAKjyI,gBAAL,CAAsBN,kBAAtB,CAAyC,KAAKypJ,MAAL,CAAYwE,YAAZ,CAAyB,KAAK1b,OAA9B,CAAzC,CADQ,GAER,IAFJ;EAGH;;EACU,IAAPA,OAAO,GAAG;IACV,IAAI,KAAK5tX,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAK8kY,MAAL,CAAYnX,aAAZ,CAA0B,KAAK3tX,QAA/B,EAAyC;MAC5C;MACA;MACAwsX,UAAU,EAAE,KAAKA,UAAL,KAAoB1rvB,SAApB,GAAgC,KAAK0rvB,UAArC,GAAkD,KAAKl/gB,KAHvB;MAI5CkuY,WAAW,EAAE,KAAKA,WAJ0B;MAK5C+sI,QAAQ,EAAE,KAAKA,QAL6B;MAM5CgjB,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AAnHoB;;AAqHzBqB,kBAAkB,CAACtrwB,IAAnB;EAAA,iBAA+GsrwB,kBAA/G,EA/5KgG5kvB,+DA+5KhG,CAAmJm/uB,MAAnJ,GA/5KgGn/uB,+DA+5KhG,CAAsKwquB,cAAtK,GA/5KgGxquB,+DA+5KhG,CAAiMwnqB,8DAAjM;AAAA;;AACAo9E,kBAAkB,CAAC/lL,IAAnB,kBAh6KgG7+jB,+DAg6KhG;EAAA,MAAmG4kvB,kBAAnG;EAAA;EAAA;EAAA;IAAA;MAh6KgG5kvB,wDAg6KhG;QAAA,OAAmG,0FAAnG;MAAA;IAAA;;IAAA;MAh6KgGA,yDAg6KhG,yCAh6KgGA,2DAg6KhG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WAh6KgGA,kEAg6KhG;AAAA;;AACA;EAAA,mDAj6KgGA,+DAi6KhG,CAA2F4kvB,kBAA3F,EAA2H,CAAC;IAChH5qwB,IAAI,EAAE4jlB,oDAD0G;IAEhHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,gCAAZ;MAA8CskS,UAAU,EAAE;IAA1D,CAAD;EAF0G,CAAD,CAA3H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEmlwB;IAAR,CAAD,EAAmB;MAAEnlwB,IAAI,EAAEwwvB;IAAR,CAAnB,EAA6C;MAAExwvB,IAAI,EAAEwtrB,8DAAmB10E;IAA3B,CAA7C,CAAP;EAAqF,CAH/H,EAGiJ;IAAE7ymB,MAAM,EAAE,CAAC;MAC5IjG,IAAI,EAAE49sB,sDADsI;MAE5Ij7sB,IAAI,EAAE,CAAC,aAAD;IAFsI,CAAD,EAG5I;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAH4I,CAAV;IAKjIozlB,WAAW,EAAE,CAAC;MACdv5mB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CALoH;IAOjImguB,QAAQ,EAAE,CAAC;MACXtmvB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAPuH;IASjImjvB,mBAAmB,EAAE,CAAC;MACtBtpwB,IAAI,EAAEmmB,gDAAKA;IADW,CAAD,CAT4G;IAWjIna,KAAK,EAAE,CAAC;MACRhM,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAX0H;IAajIokuB,UAAU,EAAE,CAAC;MACbvqvB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAbqH;IAejI4iW,IAAI,EAAE,CAAC;MACP/oX,IAAI,EAAE49sB,sDADC;MAEPj7sB,IAAI,EAAE,CAAC,WAAD;IAFC,CAAD,CAf2H;IAkBjI4mwB,gBAAgB,EAAE,CAAC;MACnBvpwB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAlB+G;IAoBjIohvB,kBAAkB,EAAE,CAAC;MACrBvnwB,IAAI,EAAEmmB,gDAAKA;IADU,CAAD,CApB6G;IAsBjIyhvB,UAAU,EAAE,CAAC;MACb5nwB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAtBqH;IAwBjIwkvB,UAAU,EAAE,CAAC;MACb3qwB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAxBqH;IA0BjIglZ,OAAO,EAAE,CAAC;MACVnra,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,OAAD,EACF,CAAC,eAAD,EAAkB,gBAAlB,EAAoC,iBAApC,EAAuD,eAAvD,EAAwE,gBAAxE,CADE;IAFI,CAAD;EA1BwH,CAHjJ;AAAA;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmowB,gBAAN,CAAuB;EACnBruwB,WAAW,CAAComwB,MAAD,EAASz3vB,OAAT,EAAkBitP,QAAlB,EAA4B0ygB,GAA5B,EAAiC1mT,IAAjC,EAAuC2mT,YAAvC,EAAqD;IAC5D,KAAKnI,MAAL,GAAcA,MAAd;IACA,KAAKz3vB,OAAL,GAAeA,OAAf;IACA,KAAKitP,QAAL,GAAgBA,QAAhB;IACA,KAAK0ygB,GAAL,GAAWA,GAAX;IACA,KAAK1mT,IAAL,GAAYA,IAAZ;IACA,KAAK2mT,YAAL,GAAoBA,YAApB;IACA,KAAKnzhB,OAAL,GAAe,EAAf;IACA,KAAK/b,QAAL,GAAgB,KAAhB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKmviB,uBAAL,GAA+B;MAAEC,KAAK,EAAE;IAAT,CAA/B;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKC,cAAL,GAAsB,IAAIxvwB,uDAAJ,EAAtB;IACA,KAAKyvwB,wBAAL,GAAgCvI,MAAM,CAAC38vB,MAAP,CAAczI,SAAd,CAAyB28C,CAAD,IAAO;MAC3D,IAAIA,CAAC,YAAYi0sB,aAAjB,EAAgC;QAC5B,KAAKlhvB,MAAL;MACH;IACJ,CAJ+B,CAAhC;EAKH;EACD;;;EACAy3kB,kBAAkB,GAAG;IACjB;IACA/6B,wCAAE,CAAC,KAAKl+H,KAAL,CAAWjgZ,OAAZ,EAAqB,KAAK2/tB,cAAL,CAAoB3/tB,OAAzC,EAAkDm+gB,wCAAE,CAAC,IAAD,CAApD,CAAF,CAA8DhjjB,IAA9D,CAAmE6ijB,yDAAQ,EAA3E,EAA+EjsjB,SAA/E,CAAyF8kE,CAAC,IAAI;MAC1F,KAAKp1D,MAAL;MACA,KAAKm+vB,4BAAL;IACH,CAHD;EAIH;;EACDA,4BAA4B,GAAG;IAC3B,KAAKC,4BAAL,EAAmC1twB,WAAnC;IACA,MAAM2twB,cAAc,GAAG,CAAC,GAAG,KAAK7/U,KAAL,CAAWslR,OAAX,EAAJ,EAA0B,GAAG,KAAKo6D,cAAL,CAAoBp6D,OAApB,EAA7B,EAA4D,KAAK5sP,IAAjE,EAAuE,KAAK2mT,YAA5E,EAClB3uwB,MADkB,CACVgod,IAAD,IAAU,CAAC,CAACA,IADD,EAElB39c,GAFkB,CAEd29c,IAAI,IAAIA,IAAI,CAACmmT,SAFC,CAAvB;IAGA,KAAKe,4BAAL,GAAoCnkvB,0CAAI,CAACokvB,cAAD,CAAJ,CAAqB3kwB,IAArB,CAA0B6ijB,yDAAQ,EAAlC,EAAsCjsjB,SAAtC,CAAgD4md,IAAI,IAAI;MACxF,IAAI,KAAKvoP,QAAL,KAAkB,KAAK2viB,YAAL,CAAkB,KAAK5I,MAAvB,EAA+Bx+S,IAA/B,CAAtB,EAA4D;QACxD,KAAKl3c,MAAL;MACH;IACJ,CAJmC,CAApC;EAKH;;EACmB,IAAhBu+vB,gBAAgB,CAACtswB,IAAD,EAAO;IACvB,MAAMy4O,OAAO,GAAGt2O,KAAK,CAACikB,OAAN,CAAcpmB,IAAd,IAAsBA,IAAtB,GAA6BA,IAAI,CAACqH,KAAL,CAAW,GAAX,CAA7C;IACA,KAAKoxO,OAAL,GAAeA,OAAO,CAACx7O,MAAR,CAAeo+C,CAAC,IAAI,CAAC,CAACA,CAAtB,CAAf;EACH;EACD;;;EACAhP,WAAW,CAACC,OAAD,EAAU;IACjB,KAAKv+B,MAAL;EACH;EACD;;;EACAhI,WAAW,GAAG;IACV,KAAKimwB,wBAAL,CAA8BvtwB,WAA9B;IACA,KAAK0twB,4BAAL,EAAmC1twB,WAAnC;EACH;;EACDsP,MAAM,GAAG;IACL,IAAI,CAAC,KAAKw+a,KAAN,IAAe,CAAC,KAAK0/U,cAArB,IAAuC,CAAC,KAAKxI,MAAL,CAAY6C,SAAxD,EACI;IACJ53vB,OAAO,CAACC,OAAR,GAAkBE,IAAlB,CAAuB,MAAM;MACzB,MAAM09vB,cAAc,GAAG,KAAKA,cAAL,EAAvB;;MACA,IAAI,KAAK7viB,QAAL,KAAkB6viB,cAAtB,EAAsC;QAClC,KAAK7viB,QAAL,GAAgB6viB,cAAhB;QACA,KAAKZ,GAAL,CAASl4J,YAAT;QACA,KAAKh7X,OAAL,CAAarqO,OAAb,CAAsBitC,CAAD,IAAO;UACxB,IAAIkxtB,cAAJ,EAAoB;YAChB,KAAKtzgB,QAAL,CAAci9U,QAAd,CAAuB,KAAKlqkB,OAAL,CAAaqnB,aAApC,EAAmDgoB,CAAnD;UACH,CAFD,MAGK;YACD,KAAK49M,QAAL,CAAcg+U,WAAd,CAA0B,KAAKjrkB,OAAL,CAAaqnB,aAAvC,EAAsDgoB,CAAtD;UACH;QACJ,CAPD;;QAQA,IAAIkxtB,cAAc,IAAI,KAAKC,qBAAL,KAA+B/swB,SAArD,EAAgE;UAC5D,KAAKw5P,QAAL,CAAc9gP,YAAd,CAA2B,KAAKnM,OAAL,CAAaqnB,aAAxC,EAAuD,cAAvD,EAAuE,KAAKm5uB,qBAAL,CAA2BjrwB,QAA3B,EAAvE;QACH,CAFD,MAGK;UACD,KAAK03P,QAAL,CAAc/gP,eAAd,CAA8B,KAAKlM,OAAL,CAAaqnB,aAA3C,EAA0D,cAA1D;QACH,CAhBiC,CAiBlC;;;QACA,KAAK04uB,cAAL,CAAoB7mwB,IAApB,CAAyBqnwB,cAAzB;MACH;IACJ,CAtBD;EAuBH;;EACDF,YAAY,CAAC5I,MAAD,EAAS;IACjB,MAAMtlwB,OAAO,GAAGsuwB,oBAAoB,CAAC,KAAKZ,uBAAN,CAApB,GACZ,KAAKA,uBADO,GAEZ;IACC,KAAKA,uBAAL,CAA6BC,KAA7B,IAAsC,KAH3C;IAIA,OAAQ7mT,IAAD,IAAUA,IAAI,CAACsnS,OAAL,GAAekX,MAAM,CAAC/miB,QAAP,CAAgBuoP,IAAI,CAACsnS,OAArB,EAA8BpuvB,OAA9B,CAAf,GAAwD,KAAzE;EACH;;EACDouwB,cAAc,GAAG;IACb,MAAMG,eAAe,GAAG,KAAKL,YAAL,CAAkB,KAAK5I,MAAvB,CAAxB;IACA,OAAO,KAAKx+S,IAAL,IAAaynT,eAAe,CAAC,KAAKznT,IAAN,CAA5B,IACH,KAAK2mT,YAAL,IAAqBc,eAAe,CAAC,KAAKd,YAAN,CADjC,IAEH,KAAKr/U,KAAL,CAAWxgb,IAAX,CAAgB2gwB,eAAhB,CAFG,IAEiC,KAAKT,cAAL,CAAoBlgwB,IAApB,CAAyB2gwB,eAAzB,CAFxC;EAGH;;AAhHkB;;AAkHvBhB,gBAAgB,CAACxrwB,IAAjB;EAAA,iBAA6GwrwB,gBAA7G,EAloLgG9kvB,+DAkoLhG,CAA+Im/uB,MAA/I,GAloLgGn/uB,+DAkoLhG,CAAkKA,qDAAlK,GAloLgGA,+DAkoLhG,CAA4LA,oDAA5L,GAloLgGA,+DAkoLhG,CAAqNA,4DAArN,GAloLgGA,+DAkoLhG,CAAsPmkvB,UAAtP,MAloLgGnkvB,+DAkoLhG,CAA6R4kvB,kBAA7R;AAAA;;AACAE,gBAAgB,CAACjmL,IAAjB,kBAnoLgG7+jB,+DAmoLhG;EAAA,MAAiG8kvB,gBAAjG;EAAA;EAAA;IAAA;MAnoLgG9kvB,4DAmoLhG,WAA0ZmkvB,UAA1Z;MAnoLgGnkvB,4DAmoLhG,WAAwe4kvB,kBAAxe;IAAA;;IAAA;MAAA;;MAnoLgG5kvB,4DAmoLhG,MAnoLgGA,yDAmoLhG;MAnoLgGA,4DAmoLhG,MAnoLgGA,yDAmoLhG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA;EAAA,WAnoLgGA,kEAmoLhG;AAAA;;AACA;EAAA,mDApoLgGA,+DAooLhG,CAA2F8kvB,gBAA3F,EAAyH,CAAC;IAC9G9qwB,IAAI,EAAE4jlB,oDADwG;IAE9GjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,oBADX;MAECw9jB,QAAQ,EAAE,kBAFX;MAGCl5R,UAAU,EAAE;IAHb,CAAD;EAFwG,CAAD,CAAzH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE5rT,IAAI,EAAEmlwB;IAAR,CAAD,EAAmB;MAAEnlwB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAnB,EAA4C;MAAEpsC,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAA5C,EAAoE;MAAE12mB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAApE,EAAoG;MAAE/ymB,IAAI,EAAEmqwB,UAAR;MAAoB9kwB,UAAU,EAAE,CAAC;QAClKrF,IAAI,EAAEnE,mDAAQA;MADoJ,CAAD;IAAhC,CAApG,EAE3B;MAAEmE,IAAI,EAAE4qwB,kBAAR;MAA4BvlwB,UAAU,EAAE,CAAC;QAC3CrF,IAAI,EAAEnE,mDAAQA;MAD6B,CAAD;IAAxC,CAF2B,CAAP;EAIlB,CAXxB,EAW0C;IAAE8vb,KAAK,EAAE,CAAC;MACpC3rb,IAAI,EAAEkmB,0DAD8B;MAEpCvjB,IAAI,EAAE,CAACwnwB,UAAD,EAAa;QAAE1+U,WAAW,EAAE;MAAf,CAAb;IAF8B,CAAD,CAAT;IAG1B4/U,cAAc,EAAE,CAAC;MACjBrrwB,IAAI,EAAEkmB,0DADW;MAEjBvjB,IAAI,EAAE,CAACiowB,kBAAD,EAAqB;QAAEn/U,WAAW,EAAE;MAAf,CAArB;IAFW,CAAD,CAHU;IAM1Bw/U,uBAAuB,EAAE,CAAC;MAC1BjrwB,IAAI,EAAEmmB,gDAAKA;IADe,CAAD,CANC;IAQ1BylvB,qBAAqB,EAAE,CAAC;MACxB5rwB,IAAI,EAAEmmB,gDAAKA;IADa,CAAD,CARG;IAU1BglvB,cAAc,EAAE,CAAC;MACjBnrwB,IAAI,EAAEqmB,iDAAMA;IADK,CAAD,CAVU;IAY1BqlvB,gBAAgB,EAAE,CAAC;MACnB1rwB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD;EAZQ,CAX1C;AAAA;AA0BA;AACA;AACA;;;AACA,SAAS0lvB,oBAAT,CAA8BtuwB,OAA9B,EAAuC;EACnC,OAAO,CAAC,CAACA,OAAO,CAACovT,KAAjB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo/c,kBAAN,CAAyB;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAN,CAAwB;EACpB7xI,OAAO,CAAC9uZ,KAAD,EAAQ3tO,EAAR,EAAY;IACf,OAAOA,EAAE,GAAGmJ,IAAL,CAAUwkjB,2DAAU,CAAC,MAAMxB,wCAAE,CAAC,IAAD,CAAT,CAApB,CAAP;EACH;;AAHmB;;AAKxBmiN,iBAAiB,CAAC1swB,IAAlB;EAAA,iBAA8G0swB,iBAA9G;AAAA;;AACAA,iBAAiB,CAACvswB,KAAlB,kBAtsLgGumB,gEAssLhG;EAAA,OAAkHgmvB,iBAAlH;EAAA,SAAkHA,iBAAlH;EAAA,YAAiJ;AAAjJ;;AACA;EAAA,mDAvsLgGhmvB,+DAusLhG,CAA2FgmvB,iBAA3F,EAA0H,CAAC;IAC/GhswB,IAAI,EAAEtE,qDADyG;IAE/GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFyG,CAAD,CAA1H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkoL,YAAN,CAAmB;EACf9xI,OAAO,CAAC9uZ,KAAD,EAAQ3tO,EAAR,EAAY;IACf,OAAOmsjB,wCAAE,CAAC,IAAD,CAAT;EACH;;AAHc;;AAKnBoiN,YAAY,CAAC3swB,IAAb;EAAA,iBAAyG2swB,YAAzG;AAAA;;AACAA,YAAY,CAACxswB,KAAb,kBA1tLgGumB,gEA0tLhG;EAAA,OAA6GimvB,YAA7G;EAAA,SAA6GA,YAA7G;EAAA,YAAuI;AAAvI;;AACA;EAAA,mDA3tLgGjmvB,+DA2tLhG,CAA2FimvB,YAA3F,EAAqH,CAAC;IAC1GjswB,IAAI,EAAEtE,qDADoG;IAE1GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFoG,CAAD,CAArH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmoL,eAAN,CAAsB;EAClBzvwB,WAAW,CAAComwB,MAAD,EAAStyF,QAAT,EAAmB5nE,QAAnB,EAA6BwjK,kBAA7B,EAAiDvrI,MAAjD,EAAyD;IAChE,KAAKiiI,MAAL,GAAcA,MAAd;IACA,KAAKl6J,QAAL,GAAgBA,QAAhB;IACA,KAAKwjK,kBAAL,GAA0BA,kBAA1B;IACA,KAAKvrI,MAAL,GAAcA,MAAd;EACH;;EACDwrI,eAAe,GAAG;IACd,KAAK1rN,YAAL,GACI,KAAKmiN,MAAL,CAAY38vB,MAAZ,CACKW,IADL,CACUxK,uDAAM,CAAEkyC,CAAD,IAAOA,CAAC,YAAY8/sB,aAArB,CADhB,EACqD5iM,0DAAS,CAAC,MAAM,KAAK0uE,OAAL,EAAP,CAD9D,EAEK18nB,SAFL,CAEe,MAAM,CAAG,CAFxB,CADJ;EAIH;;EACD08nB,OAAO,GAAG;IACN,OAAO,KAAKkyI,aAAL,CAAmB,KAAK1jK,QAAxB,EAAkC,KAAKk6J,MAAL,CAAY91nB,MAA9C,CAAP;EACH;EACD;;;EACA5nI,WAAW,GAAG;IACV,IAAI,KAAKu7iB,YAAT,EAAuB;MACnB,KAAKA,YAAL,CAAkB7ijB,WAAlB;IACH;EACJ;;EACDwuwB,aAAa,CAAC1jK,QAAD,EAAWotJ,MAAX,EAAmB;IAC5B,MAAMlmtB,GAAG,GAAG,EAAZ;;IACA,KAAK,MAAMw7L,KAAX,IAAoB0qhB,MAApB,EAA4B;MACxB,IAAI1qhB,KAAK,CAACrjO,SAAN,IAAmB,CAACqjO,KAAK,CAACw2X,SAA9B,EAAyC;QACrCx2X,KAAK,CAACw2X,SAAN,GACI4pG,wEAAyB,CAACpge,KAAK,CAACrjO,SAAP,EAAkB2gmB,QAAlB,EAA6B,UAASt9X,KAAK,CAACh5K,IAAK,EAAjD,CAD7B;MAEH;;MACD,MAAMi6sB,uBAAuB,GAAGjhiB,KAAK,CAACw2X,SAAN,IAAmB8G,QAAnD;MACA,MAAM4jK,mBAAmB,GAAGlhiB,KAAK,CAACyphB,eAAN,IAAyBwX,uBAArD,CANwB,CAOxB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MACA,IAAKjhiB,KAAK,CAACqqhB,YAAN,IAAsB,CAACrqhB,KAAK,CAACuphB,aAA7B,IAA8CvphB,KAAK,CAACuthB,OAAN,KAAkB/5vB,SAAjE,IACCwsO,KAAK,CAACoqhB,aAAN,IAAuB,CAACpqhB,KAAK,CAAC2phB,gBADnC,EACsD;QAClDnltB,GAAG,CAAC9sC,IAAJ,CAAS,KAAKypwB,aAAL,CAAmBF,uBAAnB,EAA4CjhiB,KAA5C,CAAT;MACH,CAHD,MAIK,IAAIA,KAAK,CAAC5iN,QAAN,IAAkB4iN,KAAK,CAACuphB,aAA5B,EAA2C;QAC5C/ktB,GAAG,CAAC9sC,IAAJ,CAAS,KAAKspwB,aAAL,CAAmBE,mBAAnB,EAAyClhiB,KAAK,CAAC5iN,QAAN,IAAkB4iN,KAAK,CAACuphB,aAAjE,CAAT;MACH;IACJ;;IACD,OAAOxtuB,0CAAI,CAACyoB,GAAD,CAAJ,CAAUhpC,IAAV,CAAe6ijB,yDAAQ,EAAvB,CAAP;EACH;;EACD8iN,aAAa,CAAC7jK,QAAD,EAAWt9X,KAAX,EAAkB;IAC3B,OAAO,KAAK8giB,kBAAL,CAAwBhyI,OAAxB,CAAgC9uZ,KAAhC,EAAuC,MAAM;MAChD,IAAIohiB,eAAJ;;MACA,IAAIphiB,KAAK,CAACqqhB,YAAN,IAAsBrqhB,KAAK,CAACuthB,OAAN,KAAkB/5vB,SAA5C,EAAuD;QACnD4twB,eAAe,GAAG,KAAK7rI,MAAL,CAAY80H,YAAZ,CAAyB/sJ,QAAzB,EAAmCt9X,KAAnC,CAAlB;MACH,CAFD,MAGK;QACDohiB,eAAe,GAAG5iN,wCAAE,CAAC,IAAD,CAApB;MACH;;MACD,MAAM6iN,sBAAsB,GAAGD,eAAe,CAAC5lwB,IAAhB,CAAqB0+V,yDAAQ,CAAEx4N,MAAD,IAAY;QACrE,IAAIA,MAAM,KAAK,IAAf,EAAqB;UACjB,OAAO88a,wCAAE,CAAC,KAAK,CAAN,CAAT;QACH;;QACDx+U,KAAK,CAACuphB,aAAN,GAAsB7nnB,MAAM,CAACgpnB,MAA7B;QACA1qhB,KAAK,CAACyphB,eAAN,GAAwB/nnB,MAAM,CAAC47d,QAA/B,CALqE,CAMrE;QACA;;QACA,OAAO,KAAK0jK,aAAL,CAAmBt/nB,MAAM,CAAC47d,QAAP,IAAmBA,QAAtC,EAAgD57d,MAAM,CAACgpnB,MAAvD,CAAP;MACH,CAT2D,CAA7B,CAA/B;;MAUA,IAAI1qhB,KAAK,CAACoqhB,aAAN,IAAuB,CAACpqhB,KAAK,CAAC2phB,gBAAlC,EAAoD;QAChD,MAAM2X,cAAc,GAAG,KAAK/rI,MAAL,CAAY60H,aAAZ,CAA0BpqhB,KAA1B,CAAvB;QACA,OAAOjkN,0CAAI,CAAC,CAACslvB,sBAAD,EAAyBC,cAAzB,CAAD,CAAJ,CAA+C9lwB,IAA/C,CAAoD6ijB,yDAAQ,EAA5D,CAAP;MACH,CAHD,MAIK;QACD,OAAOgjN,sBAAP;MACH;IACJ,CAzBM,CAAP;EA0BH;;AA5EiB;;AA8EtBR,eAAe,CAAC5swB,IAAhB;EAAA,iBAA4G4swB,eAA5G,EAzzLgGlmvB,sDAyzLhG,CAA6Im/uB,MAA7I,GAzzLgGn/uB,sDAyzLhG,CAAgKA,mDAAhK,GAzzLgGA,sDAyzLhG,CAAwLA,8DAAxL,GAzzLgGA,sDAyzLhG,CAA2N+lvB,kBAA3N,GAzzLgG/lvB,sDAyzLhG,CAA0Ps9uB,kBAA1P;AAAA;;AACA4I,eAAe,CAACzswB,KAAhB,kBA1zLgGumB,gEA0zLhG;EAAA,OAAgHkmvB,eAAhH;EAAA,SAAgHA,eAAhH;EAAA,YAA6I;AAA7I;;AACA;EAAA,mDA3zLgGlmvB,+DA2zLhG,CAA2FkmvB,eAA3F,EAAwH,CAAC;IAC7GlswB,IAAI,EAAEtE,qDADuG;IAE7GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFuG,CAAD,CAAxH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEmlwB;IAAR,CAAD,EAAmB;MAAEnlwB,IAAI,EAAEgmB,mDAAW45rB;IAAnB,CAAnB,EAA0C;MAAE5/sB,IAAI,EAAEgmB,8DAAsB0ipB;IAA9B,CAA1C,EAA4E;MAAE1oqB,IAAI,EAAE+rwB;IAAR,CAA5E,EAA0G;MAAE/rwB,IAAI,EAAEsjwB;IAAR,CAA1G,CAAP;EAAiJ,CAH3L;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsJ,eAAe,GAAG,IAAIlpL,yDAAJ,CAAmB,EAAnB,CAAxB;;AACA,MAAMmpL,cAAN,CAAqB;EACjBpwwB,WAAW,CAAComwB,MAAD;EACX;EAAwBiK,gBADb,EAC+BvvwB,OAAO,GAAG,EADzC,EAC6C;IACpD,KAAKslwB,MAAL,GAAcA,MAAd;IACA,KAAKiK,gBAAL,GAAwBA,gBAAxB;IACA,KAAKvvwB,OAAL,GAAeA,OAAf;IACA,KAAKwvwB,MAAL,GAAc,CAAd;IACA,KAAKC,UAAL,GAAkB,YAAlB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAKv3R,KAAL,GAAa,EAAb,CAPoD,CAQpD;;IACAn4e,OAAO,CAAC2vwB,yBAAR,GAAoC3vwB,OAAO,CAAC2vwB,yBAAR,IAAqC,UAAzE;IACA3vwB,OAAO,CAAC4vwB,eAAR,GAA0B5vwB,OAAO,CAAC4vwB,eAAR,IAA2B,UAArD;EACH;;EACD/7uB,IAAI,GAAG;IACH;IACA;IACA;IACA,IAAI,KAAK7zB,OAAL,CAAa2vwB,yBAAb,KAA2C,UAA/C,EAA2D;MACvD,KAAKJ,gBAAL,CAAsBr4I,2BAAtB,CAAkD,QAAlD;IACH;;IACD,KAAK22I,wBAAL,GAAgC,KAAKgC,kBAAL,EAAhC;IACA,KAAKC,wBAAL,GAAgC,KAAKC,mBAAL,EAAhC;EACH;;EACDF,kBAAkB,GAAG;IACjB,OAAO,KAAKvK,MAAL,CAAY38vB,MAAZ,CAAmBzI,SAAnB,CAA6B8wC,CAAC,IAAI;MACrC,IAAIA,CAAC,YAAY2/sB,eAAjB,EAAkC;QAC9B;QACA,KAAKx4Q,KAAL,CAAW,KAAKq3R,MAAhB,IAA0B,KAAKD,gBAAL,CAAsB54I,iBAAtB,EAA1B;QACA,KAAK84I,UAAL,GAAkBz+tB,CAAC,CAAC4/sB,iBAApB;QACA,KAAK8e,UAAL,GAAkB1+tB,CAAC,CAAC6/sB,aAAF,GAAkB7/sB,CAAC,CAAC6/sB,aAAF,CAAgBmX,YAAlC,GAAiD,CAAnE;MACH,CALD,MAMK,IAAIh3tB,CAAC,YAAY8/sB,aAAjB,EAAgC;QACjC,KAAK0e,MAAL,GAAcx+tB,CAAC,CAAC1xC,EAAhB;QACA,KAAK0wwB,mBAAL,CAAyBh/tB,CAAzB,EAA4B,KAAKs0tB,MAAL,CAAYsG,QAAZ,CAAqB56tB,CAAC,CAAC+/sB,iBAAvB,EAA0ChI,QAAtE;MACH;IACJ,CAXM,CAAP;EAYH;;EACDgnB,mBAAmB,GAAG;IAClB,OAAO,KAAKzK,MAAL,CAAY38vB,MAAZ,CAAmBzI,SAAnB,CAA6B8wC,CAAC,IAAI;MACrC,IAAI,EAAEA,CAAC,YAAY+gtB,MAAf,CAAJ,EACI,OAFiC,CAGrC;;MACA,IAAI/gtB,CAAC,CAAC18B,QAAN,EAAgB;QACZ,IAAI,KAAKtU,OAAL,CAAa2vwB,yBAAb,KAA2C,KAA/C,EAAsD;UAClD,KAAKJ,gBAAL,CAAsB14I,gBAAtB,CAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC;QACH,CAFD,MAGK,IAAI,KAAK72nB,OAAL,CAAa2vwB,yBAAb,KAA2C,SAA/C,EAA0D;UAC3D,KAAKJ,gBAAL,CAAsB14I,gBAAtB,CAAuC7llB,CAAC,CAAC18B,QAAzC;QACH,CANW,CAOZ;;MACH,CARD,MASK;QACD,IAAI08B,CAAC,CAAC+mlB,MAAF,IAAY,KAAK/3nB,OAAL,CAAa4vwB,eAAb,KAAiC,SAAjD,EAA4D;UACxD,KAAKL,gBAAL,CAAsBz4I,cAAtB,CAAqC9llB,CAAC,CAAC+mlB,MAAvC;QACH,CAFD,MAGK,IAAI,KAAK/3nB,OAAL,CAAa2vwB,yBAAb,KAA2C,UAA/C,EAA2D;UAC5D,KAAKJ,gBAAL,CAAsB14I,gBAAtB,CAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC;QACH;MACJ;IACJ,CArBM,CAAP;EAsBH;;EACDm5I,mBAAmB,CAAChe,WAAD,EAAcj6H,MAAd,EAAsB;IACrC,KAAKutI,MAAL,CAAYiD,YAAZ,CAAyB,IAAIxW,MAAJ,CAAWC,WAAX,EAAwB,KAAKyd,UAAL,KAAoB,UAApB,GAAiC,KAAKt3R,KAAL,CAAW,KAAKu3R,UAAhB,CAAjC,GAA+D,IAAvF,EAA6F33I,MAA7F,CAAzB;EACH;EACD;;;EACAnwnB,WAAW,GAAG;IACV,IAAI,KAAKimwB,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8BvtwB,WAA9B;IACH;;IACD,IAAI,KAAKwvwB,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8BxvwB,WAA9B;IACH;EACJ;;AAzEgB;;AA2ErBgvwB,cAAc,CAACvtwB,IAAf;EAn5LgG0mB,8DAm5LhG;AAAA;;AACA6mvB,cAAc,CAACptwB,KAAf,kBAp5LgGumB,gEAo5LhG;EAAA,OAA+G6mvB,cAA/G;EAAA,SAA+GA,cAA/G;AAAA;;AACA;EAAA,mDAr5LgG7mvB,+DAq5LhG,CAA2F6mvB,cAA3F,EAAuH,CAAC;IAC5G7swB,IAAI,EAAEtE,qDAAUA;EAD4F,CAAD,CAAvH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEsE,IAAI,EAAEmlwB;IAAR,CAAD,EAAmB;MAAEnlwB,IAAI,EAAEwtrB,8DAAmBz5D;IAA3B,CAAnB,EAAkD;MAAE/znB,IAAI,EAAEnB;IAAR,CAAlD,CAAP;EAAgF,CAF1H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo9tB,aAAa,GAAG,OAAOn8tB,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS0twB,aAAT,CAAuBzX,MAAvB,EAA+B,GAAG5zV,QAAlC,EAA4C;EACxC,OAAO,CACHsrW,aAAa,CAAC1X,MAAD,CADV,EACoB;IAAE9tvB,OAAO,EAAEuovB,cAAX;IAA2B7rJ,UAAU,EAAE+oK,SAAvC;IAAkDhpK,IAAI,EAAE,CAACygK,MAAD;EAAxD,CADpB,EAEH;IAAEl9vB,OAAO,EAAE+2sB,iEAAX;IAAmC3tiB,KAAK,EAAE,IAA1C;IAAgDszb,UAAU,EAAEgpK;EAA5D,CAFG,EAGHxrW,QAAQ,CAACz7Z,GAAT,CAAassoB,OAAO,IAAIA,OAAO,CAACpH,UAAhC,CAHG,CAIH;EACA;EACA;EACA;EAPG,CAAP;AASH;;AACD,SAAS8hI,SAAT,CAAmB7K,MAAnB,EAA2B;EACvB,OAAOA,MAAM,CAACuD,WAAP,CAAmBpuX,IAA1B;AACH;AACD;AACA;AACA;;;AACA,SAAS41X,aAAT,CAAuB1sN,IAAvB,EAA6Bl5iB,SAA7B,EAAwC;EACpC,OAAO;IAAE6lwB,KAAK,EAAE3sN,IAAT;IAAe0qF,UAAU,EAAE5joB;EAA3B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASylwB,aAAT,CAAuB1X,MAAvB,EAA+B;EAC3B,OAAO,CACH;IAAE9tvB,OAAO,EAAEo7vB,MAAX;IAAmBhylB,KAAK,EAAE,IAA1B;IAAgCkld,QAAQ,EAAEw/H;EAA1C,CADG,CAAP;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+X,qBAAT,CAA+BvwwB,OAAO,GAAG,EAAzC,EAA6C;EACzC,MAAMyK,SAAS,GAAG,CAAC;IACXC,OAAO,EAAE2kwB,eADE;IAEXjoK,UAAU,EAAE,MAAM;MACd,MAAMk+J,MAAM,GAAGl/K,qDAAM,CAACwhL,MAAD,CAArB;MACA,MAAM2H,gBAAgB,GAAGnpL,qDAAM,CAACowC,8DAAD,CAA/B;MACA,OAAO,IAAI84I,cAAJ,CAAmBhK,MAAnB,EAA2BiK,gBAA3B,EAA6CvvwB,OAA7C,CAAP;IACH;EANU,CAAD,CAAlB;EAQA,OAAOqwwB,aAAa,CAAC;EAAE;EAAH,EAAqD5lwB,SAArD,CAApB;AACH;;AACD,SAAS2lwB,oBAAT,GAAgC;EAC5B,MAAMhlK,QAAQ,GAAGhlB,qDAAM,CAAC4e,mDAAD,CAAvB;EACA,OAAQwrK,wBAAD,IAA8B;IACjC,MAAM9gsB,GAAG,GAAG07hB,QAAQ,CAAC9imB,GAAT,CAAa6olB,yDAAb,CAAZ;;IACA,IAAIq/K,wBAAwB,KAAK9gsB,GAAG,CAACh3C,UAAJ,CAAe,CAAf,CAAjC,EAAoD;MAChD;IACH;;IACD,MAAM4suB,MAAM,GAAGl6J,QAAQ,CAAC9imB,GAAT,CAAas/vB,MAAb,CAAf;IACA,MAAM6I,aAAa,GAAGrlK,QAAQ,CAAC9imB,GAAT,CAAaoowB,cAAb,CAAtB;;IACA,IAAItlK,QAAQ,CAAC9imB,GAAT,CAAaqowB,kBAAb,MAAqC;IAAE;IAA3C,EAAuF;MACnFrL,MAAM,CAACiG,iBAAP;IACH;;IACDngK,QAAQ,CAAC9imB,GAAT,CAAasowB,gBAAb,EAA+B,IAA/B,EAAqChgI,+DAArC,GAA4Di+H,eAA5D;IACAzjK,QAAQ,CAAC9imB,GAAT,CAAa+mwB,eAAb,EAA8B,IAA9B,EAAoCz+H,+DAApC,GAA2D/8mB,IAA3D;IACAyxuB,MAAM,CAAC+F,sBAAP,CAA8B37rB,GAAG,CAACk9oB,cAAJ,CAAmB,CAAnB,CAA9B;;IACA,IAAI,CAAC6jD,aAAa,CAACxvN,MAAnB,EAA2B;MACvBwvN,aAAa,CAACn/vB,IAAd;MACAm/vB,aAAa,CAACnwwB,WAAd;IACH;EACJ,CAjBD;AAkBH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMowwB,cAAc,GAAG,IAAIvqL,yDAAJ,CAAmBu4I,aAAa,GAAG,0BAAH,GAAgC,EAAhE,EAAoE;EACvFr8tB,OAAO,EAAE,MAAM;IACX,OAAO,IAAIygjB,0CAAJ,EAAP;EACH;AAHsF,CAApE,CAAvB;AAKA,MAAM6tN,kBAAkB,GAAG,IAAIxqL,yDAAJ,CAAmBu4I,aAAa,GAAG,oBAAH,GAA0B,EAA1D,EAA8D;EAAEl4I,UAAU,EAAE,MAAd;EAAsBnklB,OAAO,EAAE,MAAM;EAAE;;AAAvC,CAA9D,CAA3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwuwB,oCAAT,GAAgD;EAC5C,MAAMpmwB,SAAS,GAAG,CACd;IAAEC,OAAO,EAAEimwB,kBAAX;IAA+B33I,QAAQ,EAAE;IAAE;;EAA3C,CADc,EAEd;IACItunB,OAAO,EAAE+1sB,0DADb;IAEI3siB,KAAK,EAAE,IAFX;IAGIqzb,IAAI,EAAE,CAACnC,mDAAD,CAHV;IAIIoC,UAAU,EAAGgE,QAAD,IAAc;MACtB,MAAM0lK,mBAAmB,GAAG1lK,QAAQ,CAAC9imB,GAAT,CAAayxmB,kEAAb,EAAmCxpmB,OAAO,CAACC,OAAR,EAAnC,CAA5B;MACA,IAAIugwB,cAAc,GAAG,KAArB;MACA;AAChB;AACA;AACA;AACA;AACA;;MACgB,SAASC,mBAAT,CAA6Bz+uB,MAA7B,EAAqC;QACjC,MAAM+yuB,MAAM,GAAGl6J,QAAQ,CAAC9imB,GAAT,CAAas/vB,MAAb,CAAf;QACAtC,MAAM,CAAC38vB,MAAP,CACKW,IADL,CACUxK,uDAAM,CAAEkyC,CAAD,IAAOA,CAAC,YAAY8/sB,aAAb,IAA8B9/sB,CAAC,YAAYggtB,gBAA3C,IACpBhgtB,CAAC,YAAYigtB,eADD,CADhB,EAEmC9nvB,mDAAG,CAAC6nC,CAAC,IAAI;UACxC,IAAIA,CAAC,YAAY8/sB,aAAjB,EAAgC;YAC5B;YACA,OAAO,IAAP;UACH;;UACD,MAAMmgB,WAAW,GAAGjguB,CAAC,YAAYggtB,gBAAb,GACfhgtB,CAAC,CAAC4oF,IAAF,KAAW;UAAE;UAAb,GACG5oF,CAAC,CAAC4oF,IAAF,KAAW;UAAE;UAFD,EAGhB,KAHJ;UAIA,OAAOq3oB,WAAW,GAAG,IAAH,GAAU,KAA5B;QACH,CAVqC,CAFtC,EAYInywB,uDAAM,CAAE0oB,MAAD,IAAYA,MAAM,KAAK,IAAxB,CAZV,EAYyCi6Y,oDAAI,CAAC,CAAD,CAZ7C,EAaKvha,SAbL,CAae,MAAM;UACjBqyB,MAAM;QACT,CAfD;MAgBH;;MACD,OAAO,MAAM;QACT,OAAOu+uB,mBAAmB,CAACpgwB,IAApB,CAAyB,MAAM;UAClC,OAAO,IAAIH,OAAJ,CAAYC,OAAO,IAAI;YAC1B,MAAM80vB,MAAM,GAAGl6J,QAAQ,CAAC9imB,GAAT,CAAas/vB,MAAb,CAAf;YACA,MAAM6I,aAAa,GAAGrlK,QAAQ,CAAC9imB,GAAT,CAAaoowB,cAAb,CAAtB;YACAM,mBAAmB,CAAC,MAAM;cACtB;cACA;cACAxgwB,OAAO,CAAC,IAAD,CAAP;cACAugwB,cAAc,GAAG,IAAjB;YACH,CALkB,CAAnB;;YAMAzL,MAAM,CAAC+C,kBAAP,GAA4B,MAAM;cAC9B;cACA;cACA;cACA73vB,OAAO,CAAC,IAAD,CAAP,CAJ8B,CAK9B;;cACA,IAAI,CAACugwB,cAAL,EAAqB;gBACjB,OAAON,aAAa,CAACxvN,MAAd,GAAuBqL,wCAAE,CAAC,KAAK,CAAN,CAAzB,GAAoCmkN,aAA3C,CADiB,CAEjB;cACH,CAHD,MAIK;gBACD,OAAOnkN,wCAAE,CAAC,KAAK,CAAN,CAAT;cACH;YACJ,CAbD;;YAcAg5M,MAAM,CAACiG,iBAAP;UACH,CAxBM,CAAP;QAyBH,CA1BM,CAAP;MA2BH,CA5BD;IA6BH;EA7DL,CAFc,CAAlB;EAkEA,OAAO8E,aAAa,CAAC;EAAE;EAAH,EAAoE5lwB,SAApE,CAApB;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,SAASymwB,6BAAT,GAAyC;EACrC,MAAMzmwB,SAAS,GAAG,CACd;IACIC,OAAO,EAAE+1sB,0DADb;IAEI3siB,KAAK,EAAE,IAFX;IAGIszb,UAAU,EAAE,MAAM;MACd,MAAMk+J,MAAM,GAAGl/K,qDAAM,CAACwhL,MAAD,CAArB;MACA,OAAO,MAAM;QACTtC,MAAM,CAACkG,2BAAP;MACH,CAFD;IAGH;EARL,CADc,EAWd;IAAE9gwB,OAAO,EAAEimwB,kBAAX;IAA+B33I,QAAQ,EAAE;IAAE;;EAA3C,CAXc,CAAlB;EAaA,OAAOq3I,aAAa,CAAC;EAAE;EAAH,EAA6D5lwB,SAA7D,CAApB;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,SAAS0mwB,gBAAT,GAA4B;EACxB,IAAI1mwB,SAAS,GAAG,EAAhB;;EACA,IAAIi0tB,aAAJ,EAAmB;IACfj0tB,SAAS,GAAG,CAAC;MACLC,OAAO,EAAEq+pB,kEADJ;MAELj1f,KAAK,EAAE,IAFF;MAGLszb,UAAU,EAAE,MAAM;QACd,MAAMk+J,MAAM,GAAGl/K,qDAAM,CAACwhL,MAAD,CAArB;QACA,OAAO,MAAMtC,MAAM,CAAC38vB,MAAP,CAAczI,SAAd,CAAyB8wC,CAAD,IAAO;UACxC;UACA8D,OAAO,CAAC0R,KAAR,GAAiB,iBAAgBxV,CAAC,CAAC9xC,WAAF,CAAciR,IAAK,EAApD;UACA2kC,OAAO,CAACmD,GAAR,CAAYg6sB,cAAc,CAACjhtB,CAAD,CAA1B;UACA8D,OAAO,CAACmD,GAAR,CAAYjH,CAAZ;UACA8D,OAAO,CAACs8tB,QAAR,KALwC,CAMxC;QACH,CAPY,CAAb;MAQH;IAbI,CAAD,CAAZ;EAeH,CAhBD,MAiBK;IACD3mwB,SAAS,GAAG,EAAZ;EACH;;EACD,OAAO4lwB,aAAa,CAAC;EAAE;EAAH,EAAgD5lwB,SAAhD,CAApB;AACH;;AACD,MAAMmmwB,gBAAgB,GAAG,IAAIzqL,yDAAJ,CAAmBu4I,aAAa,GAAG,kBAAH,GAAwB,EAAxD,CAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS2yC,cAAT,CAAwBzC,kBAAxB,EAA4C;EACxC,MAAMnkwB,SAAS,GAAG,CACd;IAAEC,OAAO,EAAEkmwB,gBAAX;IAA6BjmwB,WAAW,EAAEgkwB;EAA1C,CADc,EAEd;IAAEjkwB,OAAO,EAAE8jwB,kBAAX;IAA+B7jwB,WAAW,EAAEikwB;EAA5C,CAFc,CAAlB;EAIA,OAAOyB,aAAa,CAAC;EAAE;EAAH,EAA8C5lwB,SAA9C,CAApB;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,SAAS6mwB,gBAAT,CAA0BtxwB,OAA1B,EAAmC;EAC/B,MAAMyK,SAAS,GAAG,CACd;IAAEC,OAAO,EAAEk7vB,oBAAX;IAAiC5sI,QAAQ,EAAEh5nB;EAA3C,CADc,CAAlB;EAGA,OAAOqwwB,aAAa,CAAC;EAAE;EAAH,EAAuD5lwB,SAAvD,CAApB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo6jB,WAAW,GAAG,OAAOtikB,SAAP,KAAqB,WAArB,IAAoCA,SAAxD;AACA;AACA;AACA;;AACA,MAAMgvwB,iBAAiB,GAAG,CAACpb,YAAD,EAAeyW,UAAf,EAA2BS,kBAA3B,EAA+CE,gBAA/C,EAAiEtW,qBAAjE,CAA1B;AACA;AACA;AACA;;AACA,MAAMua,oBAAoB,GAAG,IAAIrrL,yDAAJ,CAAmBthB,WAAW,GAAG,gCAAH,GAAsC,sBAApE,CAA7B,EACA;AACA;AACA;AACA;;AACA,MAAM4sM,gBAAgB,GAAG,CACrBxsK,sDADqB,EAErB;EAAEv6lB,OAAO,EAAE0/uB,aAAX;EAA0BvyI,QAAQ,EAAEwyI;AAApC,CAFqB,EAGrB;EAAE3/uB,OAAO,EAAEk9vB,MAAX;EAAmBxgK,UAAU,EAAEogK;AAA/B,CAHqB,EAIrB9R,sBAJqB,EAKrB;EAAEhrvB,OAAO,EAAEuovB,cAAX;EAA2B7rJ,UAAU,EAAE+oK,SAAvC;EAAkDhpK,IAAI,EAAE,CAACygK,MAAD;AAAxD,CALqB,EAMrB7B,kBANqB,CAAzB;;AAQA,SAAS2L,kBAAT,GAA8B;EAC1B,OAAO,IAAI7nD,uDAAJ,CAAiB,QAAjB,EAA2B+9C,MAA3B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+J,YAAN,CAAmB;EACfzywB,WAAW,CAAC+3Q,KAAD,EAAQ,CAAG;EACtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACkB,OAAP1sQ,OAAO,CAACiuvB,MAAD,EAAShpnB,MAAT,EAAiB;IAC3B,OAAO;MACHhlI,QAAQ,EAAEmnwB,YADP;MAEHlnwB,SAAS,EAAE,CACPgnwB,gBADO,EAEP5sM,WAAW,GAAIr1b,MAAM,EAAEoioB,aAAR,GAAwBT,gBAAgB,GAAG9iI,UAA3C,GAAwD,EAA5D,GAAkE,EAFtE,EAGP6hI,aAAa,CAAC1X,MAAD,CAHN,EAIP;QACI9tvB,OAAO,EAAE8mwB,oBADb;QAEIpqK,UAAU,EAAEyqK,mBAFhB;QAGI1qK,IAAI,EAAE,CAAC,CAACygK,MAAD,EAAS,IAAItpwB,mDAAJ,EAAT,EAAyB,IAAI0vmB,mDAAJ,EAAzB,CAAD;MAHV,CAJO,EASP;QAAEtjmB,OAAO,EAAEk7vB,oBAAX;QAAiC5sI,QAAQ,EAAExpf,MAAM,GAAGA,MAAH,GAAY;MAA7D,CATO,EAUPA,MAAM,EAAEsioB,OAAR,GAAkBC,2BAA2B,EAA7C,GAAkDC,2BAA2B,EAVtE,EAWPC,qBAAqB,EAXd,EAYPzioB,MAAM,EAAEo/nB,kBAAR,GAA6ByC,cAAc,CAAC7hoB,MAAM,CAACo/nB,kBAAR,CAAd,CAA0CvgI,UAAvE,GAAoF,EAZ7E,EAaP;QAAE3joB,OAAO,EAAEm/sB,uDAAX;QAAyB/1iB,KAAK,EAAE,IAAhC;QAAsCszb,UAAU,EAAEsqK;MAAlD,CAbO,EAcPlioB,MAAM,EAAE+7nB,iBAAR,GAA4B2G,wBAAwB,CAAC1ioB,MAAD,CAApD,GAA+D,EAdxD,EAeP2ioB,wBAAwB,EAfjB;IAFR,CAAP;EAoBH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAARC,QAAQ,CAAC5Z,MAAD,EAAS;IACpB,OAAO;MAAEhuvB,QAAQ,EAAEmnwB,YAAZ;MAA0BlnwB,SAAS,EAAE,CAACylwB,aAAa,CAAC1X,MAAD,CAAd;IAArC,CAAP;EACH;;AA5Dc;;AA8DnBmZ,YAAY,CAAC5vwB,IAAb;EAAA,iBAAyG4vwB,YAAzG,EAt6MgGlpvB,sDAs6MhG,CAAuI+ovB,oBAAvI;AAAA;;AACAG,YAAY,CAAC9mwB,IAAb,kBAv6MgG4d,8DAu6MhG;EAAA,MAA0GkpvB;AAA1G;AACAA,YAAY,CAAC5mwB,IAAb,kBAx6MgG0d,8DAw6MhG;EAAA,UAAkIwuuB,qBAAlI;AAAA;;AACA;EAAA,mDAz6MgGxuuB,+DAy6MhG,CAA2FkpvB,YAA3F,EAAqH,CAAC;IAC1GlvwB,IAAI,EAAEhE,mDADoG;IAE1G2G,IAAI,EAAE,CAAC;MACCoH,OAAO,EAAE+kwB,iBADV;MAECniuB,OAAO,EAAEmiuB;IAFV,CAAD;EAFoG,CAAD,CAArH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE9uwB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAEnE,mDAAQA;MADgD,CAAD,EAE9D;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACoswB,oBAAD;MAFP,CAF8D;IAA/B,CAAD,CAAP;EAKlB,CAXxB;AAAA;AAYA;AACA;AACA;AACA;;;AACA,SAASS,qBAAT,GAAiC;EAC7B,OAAO;IACHvnwB,OAAO,EAAE2kwB,eADN;IAEHjoK,UAAU,EAAE,MAAM;MACd,MAAMk+J,MAAM,GAAGl/K,qDAAM,CAACwhL,MAAD,CAArB;MACA,MAAM2H,gBAAgB,GAAGnpL,qDAAM,CAACowC,8DAAD,CAA/B;MACA,MAAMhnf,MAAM,GAAG42c,qDAAM,CAACw/K,oBAAD,CAArB;;MACA,IAAIp2nB,MAAM,CAACsge,YAAX,EAAyB;QACrBy/J,gBAAgB,CAAC74I,SAAjB,CAA2Blnf,MAAM,CAACsge,YAAlC;MACH;;MACD,OAAO,IAAIw/J,cAAJ,CAAmBhK,MAAnB,EAA2BiK,gBAA3B,EAA6C//nB,MAA7C,CAAP;IACH;EAVE,CAAP;AAYH,EACD;AACA;;;AACA,SAASuioB,2BAAT,GAAuC;EACnC,OAAO;IAAErnwB,OAAO,EAAE6wmB,8DAAX;IAA6B1D,QAAQ,EAAEqE,kEAAoBA;EAA3D,CAAP;AACH,EACD;AACA;;;AACA,SAAS81J,2BAAT,GAAuC;EACnC,OAAO;IAAEtnwB,OAAO,EAAE6wmB,8DAAX;IAA6B1D,QAAQ,EAAE2D,kEAAoBA;EAA3D,CAAP;AACH;;AACD,SAASq2J,mBAAT,CAA6BvM,MAA7B,EAAqC;EACjC,IAAIzgM,WAAW,IAAIygM,MAAnB,EAA2B;IACvB,MAAM,IAAI7qM,2DAAJ,CAAkB;IAAK;IAAvB,EAAsE,4GAAD,GACtE,kEADC,CAAN;EAEH;;EACD,OAAO,SAAP;AACH,EACD;AACA;;;AACA,SAASy3M,wBAAT,CAAkC1ioB,MAAlC,EAA0C;EACtC,OAAO,CACHA,MAAM,CAAC+7nB,iBAAP,KAA6B,UAA7B,GAA0C2F,6BAA6B,GAAG7iI,UAA1E,GAAuF,EADpF,EAEH7+f,MAAM,CAAC+7nB,iBAAP,KAA6B,iBAA7B,GACIsF,oCAAoC,GAAGxiI,UAD3C,GAEI,EAJD,CAAP;AAMH,EACD;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgkI,kBAAkB,GAAG,IAAIlsL,yDAAJ,CAAmBthB,WAAW,GAAG,oBAAH,GAA0B,EAAxD,CAA3B;;AACA,SAASstM,wBAAT,GAAoC;EAChC,OAAO,CACH;EACA;EACA;IAAEznwB,OAAO,EAAE2nwB,kBAAX;IAA+BjrK,UAAU,EAAEgpK;EAA3C,CAHG,EAIH;IAAE1lwB,OAAO,EAAE+2sB,iEAAX;IAAmC3tiB,KAAK,EAAE,IAA1C;IAAgDnpK,WAAW,EAAE0nwB;EAA7D,CAJG,CAAP;AAMH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM97I,OAAO,GAAG,IAAI52G,kDAAJ,CAAY,QAAZ,CAAhB;AAEA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/+NA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;IAwCwGl3f,4DAmtDhG;IAntDgGA,gEAotD5F;IAptD4FA,0DAqtDhG;;;;mBArtDgGA;IAAAA,uDAotD9E;IAptD8EA,wDAotD9E,uEAptD8EA,6DAotD9E;;;;;;IAptD8EA,4DA4tDhG;IA5tDgGA,gEA6tD5F;IA7tD4FA,0DA8tDhG;;;;mBA9tDgGA;IAAAA,uDA6tD9E;IA7tD8EA,wDA6tD9E,uEA7tD8EA,6DA6tD9E;;;;;;;;;iBA7tD8EA;;IAAAA,4DAumF6zE;IAvmF7zEA,wDAumFg2E;MAvmFh2EA,2DAumFg2E;MAAA,gBAvmFh2EA,2DAumFg2E;MAAA,gBAvmFh2EA,2DAumFg2E;MAAA,OAvmFh2EA,yDAumF02E,2BAAV;IAAA;IAvmFh2EA,oDAumFi5E;IAvmFj5EA,0DAumFu5E;IAvmFv5EA,uDAumFo7E;;;;oBAvmFp7EA;mBAAAA;IAAAA,uDAumFm9E;IAvmFn9EA,wDAumFm9E;;;;;;;;;;;;;;;;IAvmFn9EA,4DAumFinE;IAvmFjnEA,wDAumFowE,kGAvmFpwEA,oEAumFowE;IAvmFpwEA,wDAumFmkF;IAvmFnkFA,0DAumF6zF;;;;;;gBAvmF7zFA;;mBAAAA;IAAAA,yDAumFsnE;IAvmFtnEA,uDAumFqmF;IAvmFrmFA,wDAumFqmF,6EAvmFrmFA,6DAumFqmF;;;;;;IAvmFrmFA,qEAumF0gE;IAvmF1gEA,wDAumFinE;IAvmFjnEA,mEAumF60F;;;;mBAvmF70FA;IAAAA,uDAumFusE;IAvmFvsEA,wDAumFusE;;;;;;;;;;;;;;;IAvmFvsEA,wDAumFw2F;;;;mBAvmFx2FA;IAAAA,wDAumF48F,2EAvmF58FA,6DAumF48F;;;;;;IAvmF58FA,uDAumFm0I;;;;;;;;IAvmFn0IA,qEAumF+tI;IAvmF/tIA,wDAumFywI,4FAvmFzwIA,oEAumFywI;IAvmFzwIA,wDAumF84I;IAvmF94IA,mEAumFqhJ;;;;iBAvmFrhJA;;mBAAAA;IAAAA,uDAumFw6I;IAvmFx6IA,wDAumFw6I;;;;;;IAvmFx6IA,4DAumF4iJ;IAvmF5iJA,oDAumFsrJ;IAvmFtrJA,0DAumF4rJ;;;;mBAvmF5rJA;IAAAA,mEAumFmmJ;;;;;;IAvmFnmJA,uDAumFglN;;;;qBAvmFhlNA;oBAAAA;IAAAA,wDAumFgnN;;;;;;;;;;;;;;;;;iBAvmFhnNA;;IAAAA,4DAumF61L;IAvmF71LA,wDAumFy6L;MAAA,oBAvmFz6LA,2DAumFy6L;MAAA;MAAA,gBAvmFz6LA,2DAumFy6L;MAAA,OAvmFz6LA,yDAumFm7L,8BAAV;IAAA;MAAA,oBAvmFz6LA,2DAumFy6L;MAAA;MAAA,gBAvmFz6LA,2DAumFy6L;MAAA,OAvmFz6LA,yDAumFo9L,+BAA3C;IAAA;IAvmFz6LA,wDAumF0hN,wGAvmF1hNA,oEAumF0hN;IAvmF1hNA,wDAumFwtN;IAvmFxtNA,0DAumFshO;;;;;;iBAvmFthOA;;oBAAAA;IAAAA,yDAumFukM;IAvmFvkMA,yDAumFs3L;IAvmFt3LA,uDAumFsvN;IAvmFtvNA,wDAumFsvN,uIAvmFtvNA,6DAumFsvN;;;;;;IAvmFtvNA,4DAumFyxO;IAvmFzxOA,oDAumF4zO;IAvmF5zOA,0DAumF00O;IAvmF10OA,oDAumFi1O;IAvmFj1OA,0DAumFm2O;;;;oBAvmFn2OA;IAAAA,uDAumF4zO;IAvmF5zOA,+DAumF4zO;IAvmF5zOA,uDAumFi1O;IAvmFj1OA,gEAumFi1O;;;;;;;;iBAvmFj1OA;;IAAAA,4DAumFwiO;IAvmFxiOA,wDAumFonO;MAvmFpnOA,2DAumFonO;MAAA,gBAvmFpnOA,2DAumFonO;MAAA,OAvmFpnOA,yDAumFkoO,gCAAd;IAAA;MAvmFpnOA,2DAumFonO;MAAA,gBAvmFpnOA,2DAumFonO;MAAA,OAvmFpnOA,yDAumFqrO,qBAAjE;IAAA;IAvmFpnOA,wDAumFsuO,wGAvmFtuOA,oEAumFsuO;IAvmFtuOA,wDAumFs5O;IAvmFt5OA,0DAumF6lP;;;;iBAvmF7lPA;;oBAAAA;IAAAA,yDAumFikO;IAvmFjkOA,uDAumFo7O;IAvmFp7OA,wDAumFo7O,6EAvmFp7OA,6DAumFo7O;;;;;;IAvmFp7OA,4DAumFyuP;IAvmFzuPA,oDAumFqxP;IAvmFrxPA,0DAumFqyP;;;;oBAvmFryPA;IAAAA,uDAumFqxP;IAvmFrxPA,+DAumFqxP;;;;;;;;IAvmFrxPA,qEAumFgoP;IAvmFhoPA,wDAumFqrP,iHAvmFrrPA,oEAumFqrP;IAvmFrrPA,wDAumF+0P;IAvmF/0PA,mEAumFghQ;;;;iBAvmFhhQA;;oBAAAA;IAAAA,uDAumFy2P;IAvmFz2PA,wDAumFy2P,kFAvmFz2PA,6DAumFy2P;;;;;;IAvmFz2PA,4DAumFopQ;IAvmFppQA,oDAumFgsQ;IAvmFhsQA,0DAumFotQ;;;;oBAvmFptQA;IAAAA,uDAumFgsQ;IAvmFhsQA,+DAumFgsQ;;;;;;;;IAvmFhsQA,qEAumFuiQ;IAvmFviQA,wDAumF4lQ,iHAvmF5lQA,oEAumF4lQ;IAvmF5lQA,wDAumF8vQ;IAvmF9vQA,mEAumFi4Q;;;;iBAvmFj4QA;;oBAAAA;IAAAA,uDAumFwxQ;IAvmFxxQA,wDAumFwxQ;;;;;;IAvmFxxQA,4DAumFiiR;IAvmFjiRA,oDAumF6kR;IAvmF7kRA,0DAumF4lR;;;;oBAvmF5lRA;IAAAA,uDAumF6kR;IAvmF7kRA,+DAumF6kR;;;;;;;;IAvmF7kRA,qEAumFw5Q;IAvmFx5QA,wDAumF0+Q,iHAvmF1+QA,oEAumF0+Q;IAvmF1+QA,wDAumFsoR;IAvmFtoRA,mEAumF60R;;;;iBAvmF70RA;;oBAAAA;IAAAA,uDAumFgqR;IAvmFhqRA,wDAumFgqR,qFAvmFhqRA,6DAumFgqR;;;;;;iBAvmFhqRA;;IAAAA,4DAumF4zJ;IAvmF5zJA,wDAumFi4K;MAvmFj4KA,2DAumFi4K;MAAA,gBAvmFj4KA,2DAumFi4K;MAAA,OAvmFj4KA,yDAumFi4K;IAAA;MAvmFj4KA,2DAumFi4K;MAAA,gBAvmFj4KA,2DAumFi4K;MAAA,OAvmFj4KA,yDAumFo8K,6BAAnE;IAAA;MAvmFj4KA,2DAumFi4K;MAAA,gBAvmFj4KA,2DAumFi4K;MAAA,OAvmFj4KA,yDAumF8/K,kCAA7H;IAAA;MAvmFj4KA,2DAumFi4K;MAAA,gBAvmFj4KA,2DAumFi4K;MAAA,OAvmFj4KA,yDAumF8jL,iBAA7L;IAAA;IAvmFj4KA,qEAumFq0L;IAvmFr0LA,wDAumF61L;IAvmF71LA,wDAumFwiO;IAvmFxiOA,mEAumFymP;IAvmFzmPA,wDAumFgoP;IAvmFhoPA,wDAumFuiQ;IAvmFviQA,wDAumFw5Q;IAvmFx5QA,0DAumFg2R;;;;mBAvmFh2RA;IAAAA,yDAumF4lL;IAvmF5lLA,wDAumFo6J;IAvmFp6JA,uDAumF2gM;IAvmF3gMA,wDAumF2gM;IAvmF3gMA,uDAumFosO;IAvmFpsOA,wDAumFosO;IAvmFpsOA,uDAumF+oP;IAvmF/oPA,wDAumF+oP;IAvmF/oPA,uDAumFsjQ;IAvmFtjQA,wDAumFsjQ;IAvmFtjQA,uDAumFu6Q;IAvmFv6QA,wDAumFu6Q;;;;AA7oF/gR,MAAMiqvB,gBAAgB,GAAG,UAAzB;AACA,MAAMC,mBAAmB,GAAGtgpB,MAAM,CAACqgpB,gBAAgB,CAAC3ywB,MAAlB,CAAlC;AACA,MAAM6ywB,WAAW,GAAG;EAChB,KAAK,OADW;EAEhB,KAAK,MAFW;EAGhB,KAAK,MAHW;EAIhB,KAAK,QAJW;EAKhB,MAAM;AALU,CAApB;;AAOA,SAASC,UAAT,CAAoBtzwB,KAApB,EAA2B;EACvB,OAAQA,KAAK,IAAIozwB,mBAAmB,CAAC17vB,IAApB,CAAyB1X,KAAzB,CAAV,GACHA,KAAK,CAAC0nB,OAAN,CAAcyrvB,gBAAd,EAAgCpusB,GAAG,IAAIsusB,WAAW,CAACtusB,GAAD,CAAlD,CADG,GAEH/kE,KAFJ;AAGH;;AACD,SAASuzwB,SAAT,CAAmBvzwB,KAAnB,EAA0B;EACtB,OAAOA,KAAK,KAAK+B,SAAV,IAAuB/B,KAAK,KAAK,IAAxC;AACH;;AACD,SAASwoX,QAAT,CAAkBxoX,KAAlB,EAAyB;EACrB,OAAO,OAAOA,KAAP,KAAiB,QAAjB,IAA6BuzwB,SAAS,CAACvzwB,KAAD,CAA7C;AACH;;AACD,SAAS0rjB,SAAT,CAAmB1rjB,KAAnB,EAA0B;EACtB,OAAOA,KAAK,YAAYgR,OAAxB;AACH;;AACD,SAASmlC,UAAT,CAAoBn2C,KAApB,EAA2B;EACvB,OAAOA,KAAK,YAAY0xR,QAAxB;AACH;;AAED,MAAM8hf,oBAAN,CAA2B;EACvB7zwB,WAAW,CAAC2O,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAK20gB,MAAL,GAAc,IAAd;EACH;;EACDt0e,WAAW,CAACC,OAAD,EAAU;IACjB,KAAKtgC,OAAL,CAAaqnB,aAAb,CAA2BgzF,SAA3B,GAAuC,KAAKs6Z,MAAL,GACnCqwP,UAAU,CAAC,KAAKG,WAAN,CADyB,GAEnC,KAAKA,WAFT;EAGH;;AATsB;;AAW3BD,oBAAoB,CAAChxwB,IAArB;EAAA,iBAAkHgxwB,oBAAlH,EAAwGtqvB,+DAAxG,CAAwJA,qDAAxJ;AAAA;;AACAsqvB,oBAAoB,CAACzrL,IAArB,kBADwG7+jB,+DACxG;EAAA,MAAsGsqvB,oBAAtG;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA,WADwGtqvB,kEACxG;AAAA;;AACA;EAAA,mDAFwGA,+DAExG,CAA4FsqvB,oBAA5F,EAA8H,CAAC;IACnHtwwB,IAAI,EAAE4jlB,oDAD6G;IAEnHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAF6G,CAAD,CAA9H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,CAAP;EAAmC,CAH7E,EAG+F;IAAEmkuB,WAAW,EAAE,CAAC;MAC/FvwwB,IAAI,EAAEmmB,gDAAKA;IADoF,CAAD,CAAf;IAE/E45f,MAAM,EAAE,CAAC;MACT//gB,IAAI,EAAEmmB,gDAAKA;IADF,CAAD;EAFuE,CAH/F;AAAA,MAQA;;;AACA,MAAMqqvB,yBAAN,CAAgC;EAC5B/zwB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH2B;;AAKhCipvB,yBAAyB,CAAClxwB,IAA1B;EAAA,iBAAuHkxwB,yBAAvH,EAhBwGxqvB,+DAgBxG,CAAkKA,sDAAlK;AAAA;;AACAwqvB,yBAAyB,CAAC3rL,IAA1B,kBAjBwG7+jB,+DAiBxG;EAAA,MAA2GwqvB,yBAA3G;EAAA;AAAA;;AACA;EAAA,mDAlBwGxqvB,+DAkBxG,CAA4FwqvB,yBAA5F,EAAmI,CAAC;IACxHxwwB,IAAI,EAAE4jlB,oDADkH;IAExHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFkH,CAAD,CAAnI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMksK,2BAAN,CAAkC;EAC9Bh0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH6B;;AAKlCkpvB,2BAA2B,CAACnxwB,IAA5B;EAAA,iBAAyHmxwB,2BAAzH,EA5BwGzqvB,+DA4BxG,CAAsKA,sDAAtK;AAAA;;AACAyqvB,2BAA2B,CAAC5rL,IAA5B,kBA7BwG7+jB,+DA6BxG;EAAA,MAA6GyqvB,2BAA7G;EAAA;AAAA;;AACA;EAAA,mDA9BwGzqvB,+DA8BxG,CAA4FyqvB,2BAA5F,EAAqI,CAAC;IAC1HzwwB,IAAI,EAAE4jlB,oDADoH;IAE1HjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFoH,CAAD,CAArI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMmsK,wBAAN,CAA+B;EAC3Bj0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH0B;;AAK/BmpvB,wBAAwB,CAACpxwB,IAAzB;EAAA,iBAAsHoxwB,wBAAtH,EAxCwG1qvB,+DAwCxG,CAAgKA,sDAAhK;AAAA;;AACA0qvB,wBAAwB,CAAC7rL,IAAzB,kBAzCwG7+jB,+DAyCxG;EAAA,MAA0G0qvB,wBAA1G;EAAA;AAAA;;AACA;EAAA,mDA1CwG1qvB,+DA0CxG,CAA4F0qvB,wBAA5F,EAAkI,CAAC;IACvH1wwB,IAAI,EAAE4jlB,oDADiH;IAEvHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFiH,CAAD,CAAlI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMosK,6BAAN,CAAoC;EAChCl0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH+B;;AAKpCopvB,6BAA6B,CAACrxwB,IAA9B;EAAA,iBAA2HqxwB,6BAA3H,EApDwG3qvB,+DAoDxG,CAA0KA,sDAA1K;AAAA;;AACA2qvB,6BAA6B,CAAC9rL,IAA9B,kBArDwG7+jB,+DAqDxG;EAAA,MAA+G2qvB,6BAA/G;EAAA;AAAA;;AACA;EAAA,mDAtDwG3qvB,+DAsDxG,CAA4F2qvB,6BAA5F,EAAuI,CAAC;IAC5H3wwB,IAAI,EAAE4jlB,oDADsH;IAE5HjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFsH,CAAD,CAAvI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMqsK,yBAAN,CAAgC;EAC5Bn0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH2B;;AAKhCqpvB,yBAAyB,CAACtxwB,IAA1B;EAAA,iBAAuHsxwB,yBAAvH,EAhEwG5qvB,+DAgExG,CAAkKA,sDAAlK;AAAA;;AACA4qvB,yBAAyB,CAAC/rL,IAA1B,kBAjEwG7+jB,+DAiExG;EAAA,MAA2G4qvB,yBAA3G;EAAA;AAAA;;AACA;EAAA,mDAlEwG5qvB,+DAkExG,CAA4F4qvB,yBAA5F,EAAmI,CAAC;IACxH5wwB,IAAI,EAAE4jlB,oDADkH;IAExHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFkH,CAAD,CAAnI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMssK,yBAAN,CAAgC;EAC5Bp0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH2B;;AAKhCspvB,yBAAyB,CAACvxwB,IAA1B;EAAA,iBAAuHuxwB,yBAAvH,EA5EwG7qvB,+DA4ExG,CAAkKA,sDAAlK;AAAA;;AACA6qvB,yBAAyB,CAAChsL,IAA1B,kBA7EwG7+jB,+DA6ExG;EAAA,MAA2G6qvB,yBAA3G;EAAA;AAAA;;AACA;EAAA,mDA9EwG7qvB,+DA8ExG,CAA4F6qvB,yBAA5F,EAAmI,CAAC;IACxH7wwB,IAAI,EAAE4jlB,oDADkH;IAExHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFkH,CAAD,CAAnI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMusK,2BAAN,CAAkC;EAC9Br0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAH6B;;AAKlCupvB,2BAA2B,CAACxxwB,IAA5B;EAAA,iBAAyHwxwB,2BAAzH,EAxFwG9qvB,+DAwFxG,CAAsKA,sDAAtK;AAAA;;AACA8qvB,2BAA2B,CAACjsL,IAA5B,kBAzFwG7+jB,+DAyFxG;EAAA,MAA6G8qvB,2BAA7G;EAAA;AAAA;;AACA;EAAA,mDA1FwG9qvB,+DA0FxG,CAA4F8qvB,2BAA5F,EAAqI,CAAC;IAC1H9wwB,IAAI,EAAE4jlB,oDADoH;IAE1HjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFoH,CAAD,CAArI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMwsK,+BAAN,CAAsC;EAClCt0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAHiC;;AAKtCwpvB,+BAA+B,CAACzxwB,IAAhC;EAAA,iBAA6HyxwB,+BAA7H,EApGwG/qvB,+DAoGxG,CAA8KA,sDAA9K;AAAA;;AACA+qvB,+BAA+B,CAAClsL,IAAhC,kBArGwG7+jB,+DAqGxG;EAAA,MAAiH+qvB,+BAAjH;EAAA;AAAA;;AACA;EAAA,mDAtGwG/qvB,+DAsGxG,CAA4F+qvB,+BAA5F,EAAyI,CAAC;IAC9H/wwB,IAAI,EAAE4jlB,oDADwH;IAE9HjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFwH,CAAD,CAAzI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAMysK,8BAAN,CAAqC;EACjCv0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAHgC;;AAKrCypvB,8BAA8B,CAAC1xwB,IAA/B;EAAA,iBAA4H0xwB,8BAA5H,EAhHwGhrvB,+DAgHxG,CAA4KA,sDAA5K;AAAA;;AACAgrvB,8BAA8B,CAACnsL,IAA/B,kBAjHwG7+jB,+DAiHxG;EAAA,MAAgHgrvB,8BAAhH;EAAA;AAAA;;AACA;EAAA,mDAlHwGhrvB,+DAkHxG,CAA4FgrvB,8BAA5F,EAAwI,CAAC;IAC7HhxwB,IAAI,EAAE4jlB,oDADuH;IAE7HjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAFuH,CAAD,CAAxI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAM0sK,sBAAN,CAA6B;EACzBx0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAHwB;;AAK7B0pvB,sBAAsB,CAAC3xwB,IAAvB;EAAA,iBAAoH2xwB,sBAApH,EA5HwGjrvB,+DA4HxG,CAA4JA,sDAA5J;AAAA;;AACAirvB,sBAAsB,CAACpsL,IAAvB,kBA7HwG7+jB,+DA6HxG;EAAA,MAAwGirvB,sBAAxG;EAAA;AAAA;;AACA;EAAA,mDA9HwGjrvB,+DA8HxG,CAA4FirvB,sBAA5F,EAAgI,CAAC;IACrHjxwB,IAAI,EAAE4jlB,oDAD+G;IAErHjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAF+G,CAAD,CAAhI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA,MAIA;;;AACA,MAAM2sK,iCAAN,CAAwC;EACpCz0wB,WAAW,CAAC8qB,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;AAHmC;;AAKxC2pvB,iCAAiC,CAAC5xwB,IAAlC;EAAA,iBAA+H4xwB,iCAA/H,EAxIwGlrvB,+DAwIxG,CAAkLA,sDAAlL;AAAA;;AACAkrvB,iCAAiC,CAACrsL,IAAlC,kBAzIwG7+jB,+DAyIxG;EAAA,MAAmHkrvB,iCAAnH;EAAA;AAAA;;AACA;EAAA,mDA1IwGlrvB,+DA0IxG,CAA4FkrvB,iCAA5F,EAA2I,CAAC;IAChIlxwB,IAAI,EAAE4jlB,oDAD0H;IAEhIjhlB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE;IAAZ,CAAD;EAF0H,CAAD,CAA3I,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,sDAAcu+kB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA;;AAKA,SAAS4sK,KAAT,GAAiB;EACb;EACA,OAAO,eAAe3svB,OAAf,CAAuB,MAAvB,EAA+B,MAAM;IACxC;IACA,MAAM0uB,GAAG,GAAGp/B,IAAI,CAACm8D,MAAL,KAAgB,EAAhB,GAAqB,CAAjC;IACA,OAAO/8B,GAAG,CAACvyC,QAAJ,CAAa,EAAb,CAAP;EACH,CAJM,CAAP;AAKH;;AAED,MAAMywwB,UAAU,GAAG;EACf,UAAU,GADK;EAEf,UAAU,GAFK;EAGf,UAAU,GAHK;EAIf,UAAU,GAJK;EAKf,UAAU,GALK;EAMf,UAAU,GANK;EAOf,UAAU,GAPK;EAQf,UAAU,GARK;EASf,UAAU,GATK;EAUf,UAAU,GAVK;EAWf,UAAU,GAXK;EAYf,UAAU,GAZK;EAaf,UAAU,GAbK;EAcf,UAAU,GAdK;EAef,UAAU,GAfK;EAgBf,UAAU,GAhBK;EAiBf,UAAU,GAjBK;EAkBf,UAAU,GAlBK;EAmBf,UAAU,GAnBK;EAoBf,UAAU,GApBK;EAqBf,UAAU,GArBK;EAsBf,UAAU,GAtBK;EAuBf,UAAU,GAvBK;EAwBf,UAAU,GAxBK;EAyBf,UAAU,GAzBK;EA0Bf,UAAU,GA1BK;EA2Bf,UAAU,GA3BK;EA4Bf,UAAU,GA5BK;EA6Bf,UAAU,GA7BK;EA8Bf,UAAU,GA9BK;EA+Bf,UAAU,GA/BK;EAgCf,UAAU,GAhCK;EAiCf,UAAU,GAjCK;EAkCf,UAAU,IAlCK;EAmCf,UAAU,IAnCK;EAoCf,UAAU,IApCK;EAqCf,UAAU,IArCK;EAsCf,UAAU,IAtCK;EAuCf,UAAU,IAvCK;EAwCf,UAAU,IAxCK;EAyCf,UAAU,IAzCK;EA0Cf,UAAU,IA1CK;EA2Cf,UAAU,GA3CK;EA4Cf,UAAU,GA5CK;EA6Cf,UAAU,GA7CK;EA8Cf,UAAU,GA9CK;EA+Cf,UAAU,GA/CK;EAgDf,UAAU,GAhDK;EAiDf,UAAU,GAjDK;EAkDf,UAAU,GAlDK;EAmDf,UAAU,GAnDK;EAoDf,UAAU,GApDK;EAqDf,UAAU,GArDK;EAsDf,UAAU,GAtDK;EAuDf,UAAU,GAvDK;EAwDf,UAAU,GAxDK;EAyDf,UAAU,GAzDK;EA0Df,UAAU,GA1DK;EA2Df,UAAU,GA3DK;EA4Df,UAAU,GA5DK;EA6Df,UAAU,GA7DK;EA8Df,UAAU,GA9DK;EA+Df,UAAU,GA/DK;EAgEf,UAAU,GAhEK;EAiEf,UAAU,GAjEK;EAkEf,UAAU,GAlEK;EAmEf,UAAU,GAnEK;EAoEf,UAAU,GApEK;EAqEf,UAAU,GArEK;EAsEf,UAAU,GAtEK;EAuEf,UAAU,GAvEK;EAwEf,UAAU,GAxEK;EAyEf,UAAU,GAzEK;EA0Ef,UAAU,GA1EK;EA2Ef,UAAU,IA3EK;EA4Ef,UAAU,IA5EK;EA6Ef,UAAU,IA7EK;EA8Ef,UAAU,IA9EK;EA+Ef,UAAU,GA/EK;EAgFf,UAAU,GAhFK;EAiFf,UAAU,GAjFK;EAkFf,UAAU,GAlFK;EAmFf,UAAU,GAnFK;EAoFf,UAAU,GApFK;EAqFf,UAAU,GArFK;EAsFf,UAAU,GAtFK;EAuFf,UAAU,GAvFK;EAwFf,UAAU,GAxFK;EAyFf,UAAU,GAzFK;EA0Ff,UAAU,GA1FK;EA2Ff,UAAU,GA3FK;EA4Ff,UAAU,GA5FK;EA6Ff,UAAU,GA7FK;EA8Ff,UAAU,GA9FK;EA+Ff,UAAU,GA/FK;EAgGf,UAAU,GAhGK;EAiGf,UAAU,GAjGK;EAkGf,UAAU,GAlGK;EAmGf,UAAU,GAnGK;EAoGf,UAAU,GApGK;EAqGf,UAAU,GArGK;EAsGf,UAAU,GAtGK;EAuGf,UAAU,GAvGK;EAwGf,UAAU,GAxGK;EAyGf,UAAU,GAzGK;EA0Gf,UAAU,GA1GK;EA2Gf,UAAU,GA3GK;EA4Gf,UAAU,GA5GK;EA6Gf,UAAU,GA7GK;EA8Gf,UAAU,GA9GK;EA+Gf,UAAU,GA/GK;EAgHf,UAAU,GAhHK;EAiHf,UAAU,GAjHK;EAkHf,UAAU,GAlHK;EAmHf,UAAU,GAnHK;EAoHf,UAAU,GApHK;EAqHf,UAAU,GArHK;EAsHf,UAAU,GAtHK;EAuHf,UAAU,GAvHK;EAwHf,UAAU,GAxHK;EAyHf,UAAU,GAzHK;EA0Hf,UAAU,GA1HK;EA2Hf,UAAU,GA3HK;EA4Hf,UAAU,GA5HK;EA6Hf,UAAU,GA7HK;EA8Hf,UAAU,GA9HK;EA+Hf,UAAU,GA/HK;EAgIf,UAAU,GAhIK;EAiIf,UAAU,GAjIK;EAkIf,UAAU,GAlIK;EAmIf,UAAU,GAnIK;EAoIf,UAAU,GApIK;EAqIf,UAAU,GArIK;EAsIf,UAAU,GAtIK;EAuIf,UAAU,GAvIK;EAwIf,UAAU,GAxIK;EAyIf,UAAU,GAzIK;EA0If,UAAU,GA1IK;EA2If,UAAU,GA3IK;EA4If,UAAU,GA5IK;EA6If,UAAU,GA7IK;EA8If,UAAU,GA9IK;EA+If,UAAU,GA/IK;EAgJf,UAAU,GAhJK;EAiJf,UAAU,GAjJK;EAkJf,UAAU,GAlJK;EAmJf,UAAU,GAnJK;EAoJf,UAAU,GApJK;EAqJf,UAAU,GArJK;EAsJf,UAAU,GAtJK;EAuJf,UAAU,GAvJK;EAwJf,UAAU,GAxJK;EAyJf,UAAU,GAzJK;EA0Jf,UAAU,GA1JK;EA2Jf,UAAU,GA3JK;EA4Jf,UAAU,GA5JK;EA6Jf,UAAU,GA7JK;EA8Jf,UAAU,GA9JK;EA+Jf,UAAU,GA/JK;EAgKf,UAAU,GAhKK;EAiKf,UAAU,GAjKK;EAkKf,UAAU,GAlKK;EAmKf,UAAU,GAnKK;EAoKf,UAAU,GApKK;EAqKf,UAAU,GArKK;EAsKf,UAAU,GAtKK;EAuKf,UAAU,GAvKK;EAwKf,UAAU,GAxKK;EAyKf,UAAU,GAzKK;EA0Kf,UAAU,GA1KK;EA2Kf,UAAU,GA3KK;EA4Kf,UAAU,GA5KK;EA6Kf,UAAU,GA7KK;EA8Kf,UAAU,GA9KK;EA+Kf,UAAU,GA/KK;EAgLf,UAAU,GAhLK;EAiLf,UAAU,GAjLK;EAkLf,UAAU,GAlLK;EAmLf,UAAU,GAnLK;EAoLf,UAAU,GApLK;EAqLf,UAAU,GArLK;EAsLf,UAAU,GAtLK;EAuLf,UAAU,GAvLK;EAwLf,UAAU,GAxLK;EAyLf,UAAU,GAzLK;EA0Lf,UAAU,GA1LK;EA2Lf,UAAU,GA3LK;EA4Lf,UAAU,GA5LK;EA6Lf,UAAU,GA7LK;EA8Lf,UAAU,GA9LK;EA+Lf,UAAU,GA/LK;EAgMf,UAAU,GAhMK;EAiMf,UAAU,IAjMK;EAkMf,UAAU,IAlMK;EAmMf,UAAU,GAnMK;EAoMf,UAAU,GApMK;EAqMf,UAAU,GArMK;EAsMf,UAAU,GAtMK;EAuMf,UAAU,GAvMK;EAwMf,UAAU,GAxMK;EAyMf,UAAU,GAzMK;EA0Mf,UAAU,GA1MK;EA2Mf,UAAU,GA3MK;EA4Mf,UAAU,GA5MK;EA6Mf,UAAU,GA7MK;EA8Mf,UAAU,GA9MK;EA+Mf,UAAU,GA/MK;EAgNf,UAAU,GAhNK;EAiNf,UAAU,GAjNK;EAkNf,UAAU,GAlNK;EAmNf,UAAU,GAnNK;EAoNf,UAAU,GApNK;EAqNf,UAAU,GArNK;EAsNf,UAAU,GAtNK;EAuNf,UAAU,GAvNK;EAwNf,UAAU,GAxNK;EAyNf,UAAU,IAzNK;EA0Nf,UAAU,IA1NK;EA2Nf,UAAU,GA3NK;EA4Nf,UAAU,GA5NK;EA6Nf,UAAU,GA7NK;EA8Nf,UAAU,GA9NK;EA+Nf,UAAU,GA/NK;EAgOf,UAAU,GAhOK;EAiOf,UAAU,GAjOK;EAkOf,UAAU,GAlOK;EAmOf,UAAU,GAnOK;EAoOf,UAAU,GApOK;EAqOf,UAAU,GArOK;EAsOf,UAAU,GAtOK;EAuOf,UAAU,GAvOK;EAwOf,UAAU,GAxOK;EAyOf,UAAU,GAzOK;EA0Of,UAAU,GA1OK;EA2Of,UAAU,GA3OK;EA4Of,UAAU,GA5OK;EA6Of,UAAU,GA7OK;EA8Of,UAAU,GA9OK;EA+Of,UAAU,GA/OK;EAgPf,UAAU,GAhPK;EAiPf,UAAU,GAjPK;EAkPf,UAAU,GAlPK;EAmPf,UAAU,GAnPK;EAoPf,UAAU,GApPK;EAqPf,UAAU,GArPK;EAsPf,UAAU,GAtPK;EAuPf,UAAU,GAvPK;EAwPf,UAAU,GAxPK;EAyPf,UAAU,GAzPK;EA0Pf,UAAU,GA1PK;EA2Pf,UAAU,GA3PK;EA4Pf,UAAU,GA5PK;EA6Pf,UAAU,GA7PK;EA8Pf,UAAU,GA9PK;EA+Pf,UAAU,GA/PK;EAgQf,UAAU,GAhQK;EAiQf,UAAU,GAjQK;EAkQf,UAAU,GAlQK;EAmQf,UAAU,GAnQK;EAoQf,UAAU,GApQK;EAqQf,UAAU,IArQK;EAsQf,UAAU,IAtQK;EAuQf,UAAU,IAvQK;EAwQf,UAAU,GAxQK;EAyQf,UAAU,GAzQK;EA0Qf,UAAU,GA1QK;EA2Qf,UAAU,GA3QK;EA4Qf,UAAU,GA5QK;EA6Qf,UAAU,GA7QK;EA8Qf,UAAU,GA9QK;EA+Qf,UAAU,GA/QK;EAgRf,UAAU,GAhRK;EAiRf,UAAU,GAjRK;EAkRf,UAAU,GAlRK;EAmRf,UAAU,GAnRK;EAoRf,UAAU,GApRK;EAqRf,UAAU,GArRK;EAsRf,UAAU,GAtRK;EAuRf,UAAU,GAvRK;EAwRf,UAAU,GAxRK;EAyRf,UAAU,GAzRK;EA0Rf,UAAU,GA1RK;EA2Rf,UAAU,GA3RK;EA4Rf,UAAU,GA5RK;EA6Rf,UAAU,GA7RK;EA8Rf,UAAU,GA9RK;EA+Rf,UAAU,GA/RK;EAgSf,UAAU,GAhSK;EAiSf,UAAU,GAjSK;EAkSf,UAAU,GAlSK;EAmSf,UAAU,GAnSK;EAoSf,UAAU,GApSK;EAqSf,UAAU,GArSK;EAsSf,UAAU,GAtSK;EAuSf,UAAU,GAvSK;EAwSf,UAAU,GAxSK;EAySf,UAAU,GAzSK;EA0Sf,UAAU,GA1SK;EA2Sf,UAAU,GA3SK;EA4Sf,UAAU,GA5SK;EA6Sf,UAAU,GA7SK;EA8Sf,UAAU,GA9SK;EA+Sf,UAAU,GA/SK;EAgTf,UAAU,GAhTK;EAiTf,UAAU,GAjTK;EAkTf,UAAU,GAlTK;EAmTf,UAAU,GAnTK;EAoTf,UAAU,GApTK;EAqTf,UAAU,GArTK;EAsTf,UAAU,GAtTK;EAuTf,UAAU,GAvTK;EAwTf,UAAU,GAxTK;EAyTf,UAAU,GAzTK;EA0Tf,UAAU,GA1TK;EA2Tf,UAAU,GA3TK;EA4Tf,UAAU,GA5TK;EA6Tf,UAAU,GA7TK;EA8Tf,UAAU,GA9TK;EA+Tf,UAAU,GA/TK;EAgUf,UAAU,GAhUK;EAiUf,UAAU,GAjUK;EAkUf,UAAU,GAlUK;EAmUf,UAAU,GAnUK;EAoUf,UAAU,IApUK;EAqUf,UAAU,GArUK;EAsUf,UAAU,GAtUK;EAuUf,UAAU,GAvUK;EAwUf,UAAU,GAxUK;EAyUf,UAAU,GAzUK;EA0Uf,UAAU,GA1UK;EA2Uf,UAAU,GA3UK;EA4Uf,UAAU,GA5UK;EA6Uf,UAAU,GA7UK;EA8Uf,UAAU,GA9UK;EA+Uf,UAAU,GA/UK;EAgVf,UAAU,GAhVK;EAiVf,UAAU,GAjVK;EAkVf,UAAU,GAlVK;EAmVf,UAAU,GAnVK;EAoVf,UAAU,GApVK;EAqVf,UAAU,GArVK;EAsVf,UAAU,GAtVK;EAuVf,UAAU,GAvVK;EAwVf,UAAU,GAxVK;EAyVf,UAAU,GAzVK;EA0Vf,UAAU,GA1VK;EA2Vf,UAAU,GA3VK;EA4Vf,UAAU,GA5VK;EA6Vf,UAAU,GA7VK;EA8Vf,UAAU,GA9VK;EA+Vf,UAAU,GA/VK;EAgWf,UAAU,GAhWK;EAiWf,UAAU,GAjWK;EAkWf,UAAU,GAlWK;EAmWf,UAAU,GAnWK;EAoWf,UAAU,GApWK;EAqWf,UAAU,GArWK;EAsWf,UAAU,GAtWK;EAuWf,UAAU,GAvWK;EAwWf,UAAU,GAxWK;EAyWf,UAAU,GAzWK;EA0Wf,UAAU,GA1WK;EA2Wf,UAAU,GA3WK;EA4Wf,UAAU,GA5WK;EA6Wf,UAAU,IA7WK;EA8Wf,UAAU,GA9WK;EA+Wf,UAAU,GA/WK;EAgXf,UAAU,GAhXK;EAiXf,UAAU,GAjXK;EAkXf,UAAU,GAlXK;EAmXf,UAAU,GAnXK;EAoXf,UAAU,GApXK;EAqXf,UAAU,GArXK;EAsXf,UAAU,GAtXK;EAuXf,UAAU,GAvXK;EAwXf,UAAU,GAxXK;EAyXf,UAAU,GAzXK;EA0Xf,UAAU,GA1XK;EA2Xf,UAAU,GA3XK;EA4Xf,UAAU,GA5XK;EA6Xf,UAAU,GA7XK;EA8Xf,UAAU,GA9XK;EA+Xf,UAAU,GA/XK;EAgYf,UAAU,GAhYK;EAiYf,UAAU,GAjYK;EAkYf,UAAU,GAlYK;EAmYf,UAAU,GAnYK;EAoYf,UAAU,GApYK;EAqYf,UAAU,GArYK;EAsYf,UAAU,GAtYK;EAuYf,UAAU,GAvYK;EAwYf,UAAU,GAxYK;EAyYf,UAAU,GAzYK;EA0Yf,UAAU,GA1YK;EA2Yf,UAAU,GA3YK;EA4Yf,UAAU,GA5YK;EA6Yf,UAAU,GA7YK;EA8Yf,UAAU,GA9YK;EA+Yf,UAAU,GA/YK;EAgZf,UAAU,GAhZK;EAiZf,UAAU,GAjZK;EAkZf,UAAU,GAlZK;EAmZf,UAAU,GAnZK;EAoZf,UAAU,GApZK;EAqZf,UAAU,GArZK;EAsZf,UAAU,GAtZK;EAuZf,UAAU,GAvZK;EAwZf,UAAU,GAxZK;EAyZf,UAAU,GAzZK;EA0Zf,UAAU,GA1ZK;EA2Zf,UAAU,GA3ZK;EA4Zf,UAAU,GA5ZK;EA6Zf,UAAU,GA7ZK;EA8Zf,UAAU,GA9ZK;EA+Zf,UAAU,GA/ZK;EAgaf,UAAU,GAhaK;EAiaf,UAAU,GAjaK;EAkaf,UAAU,GAlaK;EAmaf,UAAU,GAnaK;EAoaf,UAAU,GApaK;EAqaf,UAAU,GAraK;EAsaf,UAAU,GAtaK;EAuaf,UAAU,GAvaK;EAwaf,UAAU,GAxaK;EAyaf,UAAU,GAzaK;EA0af,UAAU,GA1aK;EA2af,UAAU,GA3aK;EA4af,UAAU,GA5aK;EA6af,UAAU,GA7aK;EA8af,UAAU,GA9aK;EA+af,UAAU,GA/aK;EAgbf,UAAU,GAhbK;EAibf,UAAU,GAjbK;EAkbf,UAAU,GAlbK;EAmbf,UAAU,GAnbK;EAobf,UAAU,GApbK;EAqbf,UAAU,GArbK;EAsbf,UAAU,GAtbK;EAubf,UAAU,GAvbK;EAwbf,UAAU,IAxbK;EAybf,UAAU,IAzbK;EA0bf,UAAU,IA1bK;EA2bf,UAAU,IA3bK;EA4bf,UAAU,IA5bK;EA6bf,UAAU,IA7bK;EA8bf,UAAU,IA9bK;EA+bf,UAAU,IA/bK;EAgcf,UAAU,IAhcK;EAicf,UAAU,GAjcK;EAkcf,UAAU,GAlcK;EAmcf,UAAU,GAncK;EAocf,UAAU,GApcK;EAqcf,UAAU,GArcK;EAscf,UAAU,GAtcK;EAucf,UAAU,GAvcK;EAwcf,UAAU,GAxcK;EAycf,UAAU,GAzcK;EA0cf,UAAU,GA1cK;EA2cf,UAAU,GA3cK;EA4cf,UAAU,GA5cK;EA6cf,UAAU,GA7cK;EA8cf,UAAU,GA9cK;EA+cf,UAAU,GA/cK;EAgdf,UAAU,GAhdK;EAidf,UAAU,GAjdK;EAkdf,UAAU,GAldK;EAmdf,UAAU,GAndK;EAodf,UAAU,GApdK;EAqdf,UAAU,GArdK;EAsdf,UAAU,GAtdK;EAudf,UAAU,GAvdK;EAwdf,UAAU,GAxdK;EAydf,UAAU,GAzdK;EA0df,UAAU,GA1dK;EA2df,UAAU,GA3dK;EA4df,UAAU,GA5dK;EA6df,UAAU,GA7dK;EA8df,UAAU,GA9dK;EA+df,UAAU,GA/dK;EAgef,UAAU,GAheK;EAief,UAAU,GAjeK;EAkef,UAAU,IAleK;EAmef,UAAU,IAneK;EAoef,UAAU,GApeK;EAqef,UAAU,GAreK;EAsef,UAAU,GAteK;EAuef,UAAU,GAveK;EAwef,UAAU,GAxeK;EAyef,UAAU,GAzeK;EA0ef,UAAU,GA1eK;EA2ef,UAAU,GA3eK;EA4ef,UAAU,GA5eK;EA6ef,UAAU,GA7eK;EA8ef,UAAU,GA9eK;EA+ef,UAAU,GA/eK;EAgff,UAAU,GAhfK;EAiff,UAAU,GAjfK;EAkff,UAAU,GAlfK;EAmff,UAAU,GAnfK;EAoff,UAAU,GApfK;EAqff,UAAU,GArfK;EAsff,UAAU,GAtfK;EAuff,UAAU,GAvfK;EAwff,UAAU,GAxfK;EAyff,UAAU,GAzfK;EA0ff,UAAU,GA1fK;EA2ff,UAAU,GA3fK;EA4ff,UAAU,GA5fK;EA6ff,UAAU,GA7fK;EA8ff,UAAU,GA9fK;EA+ff,UAAU,GA/fK;EAggBf,UAAU,GAhgBK;EAigBf,UAAU,GAjgBK;EAkgBf,UAAU,GAlgBK;EAmgBf,UAAU,GAngBK;EAogBf,UAAU,GApgBK;EAqgBf,UAAU,GArgBK;EAsgBf,UAAU,GAtgBK;EAugBf,UAAU,GAvgBK;EAwgBf,UAAU,GAxgBK;EAygBf,UAAU,GAzgBK;EA0gBf,UAAU,GA1gBK;EA2gBf,UAAU,GA3gBK;EA4gBf,UAAU,GA5gBK;EA6gBf,UAAU,GA7gBK;EA8gBf,UAAU,GA9gBK;EA+gBf,UAAU,GA/gBK;EAghBf,UAAU,GAhhBK;EAihBf,UAAU,GAjhBK;EAkhBf,UAAU,GAlhBK;EAmhBf,UAAU,GAnhBK;EAohBf,UAAU,GAphBK;EAqhBf,UAAU,GArhBK;EAshBf,UAAU,GAthBK;EAuhBf,UAAU,GAvhBK;EAwhBf,UAAU,GAxhBK;EAyhBf,UAAU,GAzhBK;EA0hBf,UAAU,GA1hBK;EA2hBf,UAAU,GA3hBK;EA4hBf,UAAU,GA5hBK;EA6hBf,UAAU,GA7hBK;EA8hBf,UAAU,GA9hBK;EA+hBf,UAAU,GA/hBK;EAgiBf,UAAU,GAhiBK;EAiiBf,UAAU,GAjiBK;EAkiBf,UAAU,GAliBK;EAmiBf,UAAU,IAniBK;EAoiBf,UAAU,GApiBK;EAqiBf,UAAU,GAriBK;EAsiBf,UAAU,GAtiBK;EAuiBf,UAAU,GAviBK;EAwiBf,UAAU,GAxiBK;EAyiBf,UAAU,GAziBK;EA0iBf,UAAU,GA1iBK;EA2iBf,UAAU,GA3iBK;EA4iBf,UAAU,GA5iBK;EA6iBf,UAAU,GA7iBK;EA8iBf,UAAU,GA9iBK;EA+iBf,UAAU,GA/iBK;EAgjBf,UAAU,GAhjBK;EAijBf,UAAU,GAjjBK;EAkjBf,UAAU,GAljBK;EAmjBf,UAAU,GAnjBK;EAojBf,UAAU,GApjBK;EAqjBf,UAAU,GArjBK;EAsjBf,UAAU,GAtjBK;EAujBf,UAAU,GAvjBK;EAwjBf,UAAU,GAxjBK;EAyjBf,UAAU,GAzjBK;EA0jBf,UAAU,GA1jBK;EA2jBf,UAAU,GA3jBK;EA4jBf,UAAU,GA5jBK;EA6jBf,UAAU,GA7jBK;EA8jBf,UAAU,GA9jBK;EA+jBf,UAAU,GA/jBK;EAgkBf,UAAU,GAhkBK;EAikBf,UAAU,GAjkBK;EAkkBf,UAAU,GAlkBK;EAmkBf,UAAU,GAnkBK;EAokBf,UAAU,GApkBK;EAqkBf,UAAU,GArkBK;EAskBf,UAAU,GAtkBK;EAukBf,UAAU,GAvkBK;EAwkBf,UAAU,GAxkBK;EAykBf,UAAU,GAzkBK;EA0kBf,UAAU,GA1kBK;EA2kBf,UAAU,GA3kBK;EA4kBf,UAAU,GA5kBK;EA6kBf,UAAU,GA7kBK;EA8kBf,UAAU,GA9kBK;EA+kBf,UAAU,GA/kBK;EAglBf,UAAU,GAhlBK;EAilBf,UAAU,GAjlBK;EAklBf,UAAU,GAllBK;EAmlBf,UAAU,GAnlBK;EAolBf,UAAU,GAplBK;EAqlBf,UAAU,GArlBK;EAslBf,UAAU,GAtlBK;EAulBf,UAAU,GAvlBK;EAwlBf,UAAU,GAxlBK;EAylBf,UAAU,GAzlBK;EA0lBf,UAAU,GA1lBK;EA2lBf,UAAU,IA3lBK;EA4lBf,UAAU,GA5lBK;EA6lBf,UAAU,GA7lBK;EA8lBf,UAAU,GA9lBK;EA+lBf,UAAU,GA/lBK;EAgmBf,UAAU,GAhmBK;EAimBf,UAAU,GAjmBK;EAkmBf,UAAU,GAlmBK;EAmmBf,UAAU,GAnmBK;EAomBf,UAAU,GApmBK;EAqmBf,UAAU,GArmBK;EAsmBf,UAAU,GAtmBK;EAumBf,UAAU,GAvmBK;EAwmBf,UAAU,GAxmBK;EAymBf,UAAU,GAzmBK;EA0mBf,UAAU,GA1mBK;EA2mBf,UAAU,GA3mBK;EA4mBf,UAAU,GA5mBK;EA6mBf,UAAU,GA7mBK;EA8mBf,UAAU,GA9mBK;EA+mBf,UAAU,GA/mBK;EAgnBf,UAAU,GAhnBK;EAinBf,UAAU,GAjnBK;EAknBf,UAAU,GAlnBK;EAmnBf,UAAU,IAnnBK;EAonBf,UAAU,GApnBK;EAqnBf,UAAU,GArnBK;EAsnBf,UAAU,GAtnBK;EAunBf,UAAU,GAvnBK;EAwnBf,UAAU,GAxnBK;EAynBf,UAAU,GAznBK;EA0nBf,UAAU,GA1nBK;EA2nBf,UAAU,GA3nBK;EA4nBf,UAAU,GA5nBK;EA6nBf,UAAU,GA7nBK;EA8nBf,UAAU,GA9nBK;EA+nBf,UAAU,GA/nBK;EAgoBf,UAAU,GAhoBK;EAioBf,UAAU,GAjoBK;EAkoBf,UAAU,GAloBK;EAmoBf,UAAU,GAnoBK;EAooBf,UAAU,GApoBK;EAqoBf,UAAU,GAroBK;EAsoBf,UAAU,GAtoBK;EAuoBf,UAAU,GAvoBK;EAwoBf,UAAU,GAxoBK;EAyoBf,UAAU,GAzoBK;EA0oBf,UAAU,GA1oBK;EA2oBf,UAAU,GA3oBK;EA4oBf,UAAU,GA5oBK;EA6oBf,UAAU,GA7oBK;EA8oBf,UAAU,GA9oBK;EA+oBf,UAAU,GA/oBK;EAgpBf,UAAU,GAhpBK;EAipBf,UAAU,GAjpBK;EAkpBf,UAAU,GAlpBK;EAmpBf,UAAU,GAnpBK;EAopBf,UAAU,GAppBK;EAqpBf,UAAU,GArpBK;EAspBf,UAAU,GAtpBK;EAupBf,UAAU,GAvpBK;EAwpBf,UAAU,GAxpBK;EAypBf,UAAU,GAzpBK;EA0pBf,UAAU,GA1pBK;EA2pBf,UAAU,GA3pBK;EA4pBf,UAAU,GA5pBK;EA6pBf,UAAU,GA7pBK;EA8pBf,UAAU,IA9pBK;EA+pBf,UAAU,IA/pBK;EAgqBf,UAAU,IAhqBK;EAiqBf,UAAU,GAjqBK;EAkqBf,UAAU,GAlqBK;EAmqBf,UAAU,GAnqBK;EAoqBf,UAAU,GApqBK;EAqqBf,UAAU,GArqBK;EAsqBf,UAAU,GAtqBK;EAuqBf,UAAU,GAvqBK;EAwqBf,UAAU,GAxqBK;EAyqBf,UAAU,GAzqBK;EA0qBf,UAAU,GA1qBK;EA2qBf,UAAU,GA3qBK;EA4qBf,UAAU,GA5qBK;EA6qBf,UAAU,GA7qBK;EA8qBf,UAAU,GA9qBK;EA+qBf,UAAU,GA/qBK;EAgrBf,UAAU,GAhrBK;EAirBf,UAAU,GAjrBK;EAkrBf,UAAU,GAlrBK;EAmrBf,UAAU,GAnrBK;EAorBf,UAAU,GAprBK;EAqrBf,UAAU,GArrBK;EAsrBf,UAAU,GAtrBK;EAurBf,UAAU,GAvrBK;EAwrBf,UAAU,GAxrBK;EAyrBf,UAAU,GAzrBK;EA0rBf,UAAU,GA1rBK;EA2rBf,UAAU,GA3rBK;EA4rBf,UAAU,GA5rBK;EA6rBf,UAAU,GA7rBK;EA8rBf,UAAU,GA9rBK;EA+rBf,UAAU,GA/rBK;EAgsBf,UAAU,GAhsBK;EAisBf,UAAU,GAjsBK;EAksBf,UAAU,GAlsBK;EAmsBf,UAAU,GAnsBK;EAosBf,UAAU,GApsBK;EAqsBf,UAAU,GArsBK;EAssBf,UAAU,GAtsBK;EAusBf,UAAU,GAvsBK;EAwsBf,UAAU,GAxsBK;EAysBf,UAAU,GAzsBK;EA0sBf,UAAU,GA1sBK;EA2sBf,UAAU,GA3sBK;EA4sBf,UAAU,GA5sBK;EA6sBf,UAAU,GA7sBK;EA8sBf,UAAU,GA9sBK;EA+sBf,UAAU,GA/sBK;EAgtBf,UAAU,GAhtBK;EAitBf,UAAU,GAjtBK;EAktBf,UAAU,GAltBK;EAmtBf,UAAU,GAntBK;EAotBf,UAAU,GAptBK;EAqtBf,UAAU,GArtBK;EAstBf,UAAU,GAttBK;EAutBf,UAAU,GAvtBK;EAwtBf,UAAU,GAxtBK;EAytBf,UAAU,GAztBK;EA0tBf,UAAU,GA1tBK;EA2tBf,UAAU,GA3tBK;EA4tBf,UAAU,GA5tBK;EA6tBf,UAAU,GA7tBK;EA8tBf,UAAU,GA9tBK;EA+tBf,UAAU,IA/tBK;EAguBf,UAAU,GAhuBK;EAiuBf,UAAU,GAjuBK;EAkuBf,UAAU,GAluBK;EAmuBf,UAAU,GAnuBK;EAouBf,UAAU,GApuBK;EAquBf,UAAU,GAruBK;EAsuBf,UAAU,GAtuBK;EAuuBf,UAAU,GAvuBK;EAwuBf,UAAU,GAxuBK;EAyuBf,UAAU,GAzuBK;EA0uBf,UAAU,GA1uBK;EA2uBf,UAAU,GA3uBK;EA4uBf,UAAU,GA5uBK;EA6uBf,UAAU,GA7uBK;EA8uBf,UAAU,GA9uBK;EA+uBf,UAAU,GA/uBK;EAgvBf,UAAU,GAhvBK;EAivBf,UAAU,GAjvBK;EAkvBf,UAAU,GAlvBK;EAmvBf,UAAU,GAnvBK;EAovBf,UAAU,GApvBK;EAqvBf,UAAU,GArvBK;EAsvBf,UAAU,GAtvBK;EAuvBf,UAAU,GAvvBK;EAwvBf,UAAU,GAxvBK;EAyvBf,UAAU,GAzvBK;EA0vBf,UAAU,GA1vBK;EA2vBf,UAAU,GA3vBK;EA4vBf,UAAU,GA5vBK;EA6vBf,UAAU,GA7vBK;EA8vBf,UAAU,GA9vBK;EA+vBf,UAAU,GA/vBK;EAgwBf,UAAU,GAhwBK;EAiwBf,UAAU,GAjwBK;EAkwBf,UAAU,GAlwBK;EAmwBf,UAAU,GAnwBK;EAowBf,UAAU,GApwBK;EAqwBf,UAAU,GArwBK;EAswBf,UAAU,GAtwBK;EAuwBf,UAAU,GAvwBK;EAwwBf,UAAU,IAxwBK;EAywBf,UAAU,GAzwBK;EA0wBf,UAAU,GA1wBK;EA2wBf,UAAU,GA3wBK;EA4wBf,UAAU,GA5wBK;EA6wBf,UAAU,GA7wBK;EA8wBf,UAAU,GA9wBK;EA+wBf,UAAU,GA/wBK;EAgxBf,UAAU,GAhxBK;EAixBf,UAAU,GAjxBK;EAkxBf,UAAU,GAlxBK;EAmxBf,UAAU,GAnxBK;EAoxBf,UAAU,GApxBK;EAqxBf,UAAU,GArxBK;EAsxBf,UAAU,GAtxBK;EAuxBf,UAAU,GAvxBK;EAwxBf,UAAU,GAxxBK;EAyxBf,UAAU,GAzxBK;EA0xBf,UAAU,GA1xBK;EA2xBf,UAAU,GA3xBK;EA4xBf,UAAU,GA5xBK;EA6xBf,UAAU,GA7xBK;EA8xBf,UAAU,GA9xBK;EA+xBf,UAAU,GA/xBK;EAgyBf,UAAU,GAhyBK;EAiyBf,UAAU,GAjyBK;EAkyBf,UAAU,GAlyBK;EAmyBf,UAAU,GAnyBK;EAoyBf,UAAU,GApyBK;EAqyBf,UAAU,GAryBK;EAsyBf,UAAU,GAtyBK;EAuyBf,UAAU,GAvyBK;EAwyBf,UAAU,GAxyBK;EAyyBf,UAAU,GAzyBK;EA0yBf,UAAU,GA1yBK;EA2yBf,UAAU,GA3yBK;EA4yBf,UAAU,GA5yBK;EA6yBf,UAAU,GA7yBK;EA8yBf,UAAU,GA9yBK;EA+yBf,UAAU,GA/yBK;EAgzBf,UAAU,GAhzBK;EAizBf,UAAU,GAjzBK;EAkzBf,UAAU,GAlzBK;EAmzBf,UAAU,QAnzBK;EAozBf,UAAU,QApzBK;EAqzBf,UAAU,QArzBK;EAszBf,UAAU,QAtzBK;EAuzBf,UAAU,QAvzBK;EAwzBf,UAAU,QAxzBK;EAyzBf,UAAU,QAzzBK;EA0zBf,UAAU,QA1zBK;EA2zBf,UAAU,QA3zBK;EA4zBf,UAAU,QA5zBK;EA6zBf,UAAU,QA7zBK;EA8zBf,UAAU,QA9zBK;EA+zBf,UAAU,QA/zBK;EAg0Bf,UAAU,QAh0BK;EAi0Bf,UAAU,QAj0BK;EAk0Bf,UAAU,QAl0BK;EAm0Bf,UAAU,QAn0BK;EAo0Bf,UAAU,QAp0BK;EAq0Bf,UAAU,QAr0BK;EAs0Bf,UAAU,QAt0BK;EAu0Bf,UAAU;AAv0BK,CAAnB;;AAy0BA,SAASC,iBAAT,CAA2BzksB,IAA3B,EAAiC;EAC7B,MAAMrE,KAAK,GAAIrlD,CAAD,IAAOkuvB,UAAU,CAACluvB,CAAD,CAAV,IAAiBA,CAAtC;;EACA,OAAO0pD,IAAI,CAACpoD,OAAL,CAAa,mBAAb,EAAkC+jD,KAAlC,CAAP;AACH;;AAED,MAAM+osB,SAAN,CAAgB;EACZ70wB,WAAW,CAAC80wB,SAAD,EAAYC,eAAZ,EAA6B;IACpC,KAAKD,SAAL,GAAiBA,SAAjB;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAKC,MAAL,GAAc,EAAd;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,YAAL,GAAoB,CAAC,CAArB;EACH;;EACQ,IAALvhtB,KAAK,GAAG;IACR,OAAO,KAAKqhtB,MAAZ;EACH;;EACgB,IAAbG,aAAa,GAAG;IAChB,OAAO,KAAKF,cAAZ;EACH;;EACc,IAAXG,WAAW,GAAG;IACd,OAAO,KAAKF,YAAZ;EACH;;EACgB,IAAbG,aAAa,GAAG;IAChB,OAAO,KAAKN,eAAL,CAAqB10wB,KAA5B;EACH;;EACa,IAAVi1wB,UAAU,GAAG;IACb,OAAO,KAAKL,cAAL,CAAoB,KAAKC,YAAzB,CAAP;EACH;;EACkB,IAAfK,eAAe,GAAG;IAClB,OAAO,KAAKT,SAAL,CAAeU,YAAf,IAA+B,KAAKR,MAAL,CAAYpzwB,MAAZ,KAAuB,KAAKyzwB,aAAL,CAAmBzzwB,MAAhF;EACH;;EACmB,IAAhB6zwB,gBAAgB,GAAG;IACnB,OAAO,KAAKX,SAAL,CAAeY,QAAf,IAA2B,KAAKZ,SAAL,CAAea,gBAAf,IAAmC,KAAKN,aAAL,CAAmBzzwB,MAAxF;EACH;;EACmB,IAAhBg0wB,gBAAgB,GAAG;IACnB,IAAIv0vB,CAAC,GAAG,KAAKg0vB,aAAL,CAAmBzzwB,MAAnB,GAA4B,CAApC;;IACA,OAAOyf,CAAC,IAAI,CAAZ,EAAeA,CAAC,EAAhB,EAAoB;MAChB,MAAM2H,IAAI,GAAG,KAAKqsvB,aAAL,CAAmBh0vB,CAAnB,CAAb;;MACA,IAAI,CAAC2H,IAAI,CAACu+F,QAAV,EAAoB;QAChB,OAAOv+F,IAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EACD6svB,QAAQ,CAAClitB,KAAD,EAAQ;IACZ,KAAKqhtB,MAAL,GAAcrhtB,KAAK,CAAC1pD,GAAN,CAAU,CAAC+e,IAAD,EAAO9mB,KAAP,KAAiB,KAAK4zwB,OAAL,CAAa9svB,IAAb,EAAmB9mB,KAAnB,CAA3B,CAAd;;IACA,IAAI,KAAK4ywB,SAAL,CAAeiB,OAAnB,EAA4B;MACxB,KAAKC,OAAL,GAAe,KAAKC,QAAL,CAAc,KAAKjB,MAAnB,EAA2B,KAAKF,SAAL,CAAeiB,OAA1C,CAAf;MACA,KAAKf,MAAL,GAAc,KAAKkB,QAAL,CAAc,KAAKF,OAAnB,CAAd;IACH,CAHD,MAIK;MACD,KAAKA,OAAL,GAAe,IAAI90vB,GAAJ,EAAf;;MACA,KAAK80vB,OAAL,CAAan0vB,GAAb,CAAiBzf,SAAjB,EAA4B,KAAK4ywB,MAAjC;IACH;;IACD,KAAKC,cAAL,GAAsB,CAAC,GAAG,KAAKD,MAAT,CAAtB;EACH;;EACDzgtB,MAAM,CAACvrC,IAAD,EAAO;IACT,IAAIA,IAAI,CAAC4nG,QAAL,IAAiB,KAAK6kpB,gBAA1B,EAA4C;MACxC;IACH;;IACD,MAAMC,QAAQ,GAAG,KAAKZ,SAAL,CAAeY,QAAhC;;IACA,IAAI,CAACA,QAAL,EAAe;MACX,KAAKS,aAAL;IACH;;IACD,KAAKpB,eAAL,CAAqBxgtB,MAArB,CAA4BvrC,IAA5B,EAAkC0svB,QAAlC,EAA4C,KAAKZ,SAAL,CAAesB,sBAA3D;;IACA,IAAI,KAAKtB,SAAL,CAAeU,YAAnB,EAAiC;MAC7B,KAAKa,aAAL,CAAmBrtvB,IAAnB;IACH;EACJ;;EACDstvB,QAAQ,CAACttvB,IAAD,EAAO;IACX,IAAI,CAACA,IAAI,CAAC4nG,QAAV,EAAoB;MAChB;IACH;;IACD,KAAKmkpB,eAAL,CAAqBuB,QAArB,CAA8BttvB,IAA9B,EAAoC,KAAK8rvB,SAAL,CAAeY,QAAnD;;IACA,IAAI,KAAKZ,SAAL,CAAeU,YAAf,IAA+B5B,SAAS,CAAC5qvB,IAAI,CAAC9mB,KAAN,CAAxC,IAAwD,KAAK4ywB,SAAL,CAAeY,QAA3E,EAAqF;MACjF,KAAKa,aAAL,CAAmBvtvB,IAAnB;IACH;EACJ;;EACDwtvB,QAAQ,CAACn2wB,KAAD,EAAQ;IACZ,IAAIo2wB,MAAJ;;IACA,IAAI,KAAK3B,SAAL,CAAe1pL,WAAnB,EAAgC;MAC5BqrL,MAAM,GAAGztvB,IAAI,IAAI,KAAK8rvB,SAAL,CAAe1pL,WAAf,CAA2BpikB,IAAI,CAAC3oB,KAAhC,EAAuCA,KAAvC,CAAjB;IACH,CAFD,MAGK,IAAI,KAAKy0wB,SAAL,CAAe4B,SAAnB,EAA8B;MAC/BD,MAAM,GAAGztvB,IAAI,IAAI,CAACA,IAAI,CAACgD,QAAN,IAAkB,KAAK2qvB,aAAL,CAAmB3tvB,IAAI,CAAC3oB,KAAxB,EAA+B,KAAKy0wB,SAAL,CAAe4B,SAA9C,MAA6Dr2wB,KAAhG;IACH,CAFI,MAGA;MACDo2wB,MAAM,GAAGztvB,IAAI,IAAIA,IAAI,CAAC3oB,KAAL,KAAeA,KAAf,IACb,CAAC2oB,IAAI,CAACgD,QAAN,IAAkBhD,IAAI,CAAC+lG,KAAvB,IAAgC/lG,IAAI,CAAC+lG,KAAL,KAAe,KAAK4npB,aAAL,CAAmBt2wB,KAAnB,EAA0B,KAAKy0wB,SAAL,CAAe8B,SAAzC,CADnD;IAEH;;IACD,OAAO,KAAK5B,MAAL,CAAY9yvB,IAAZ,CAAiB8G,IAAI,IAAIytvB,MAAM,CAACztvB,IAAD,CAA/B,CAAP;EACH;;EACD2/N,OAAO,CAAC3/N,IAAD,EAAO;IACV,MAAMmrH,MAAM,GAAG,KAAK2hoB,OAAL,CAAa9svB,IAAb,EAAmB,KAAKgsvB,MAAL,CAAYpzwB,MAA/B,CAAf;;IACA,KAAKozwB,MAAL,CAAY1uwB,IAAZ,CAAiB6tI,MAAjB;;IACA,KAAK8goB,cAAL,CAAoB3uwB,IAApB,CAAyB6tI,MAAzB;;IACA,OAAOA,MAAP;EACH;;EACDgioB,aAAa,CAACU,YAAY,GAAG,KAAhB,EAAuB;IAChC,KAAK9B,eAAL,CAAqBhzwB,KAArB,CAA2B80wB,YAA3B;;IACA,KAAK7B,MAAL,CAAYjkwB,OAAZ,CAAoBiY,IAAI,IAAI;MACxBA,IAAI,CAAC4nG,QAAL,GAAgBimpB,YAAY,IAAI7tvB,IAAI,CAAC4nG,QAArB,IAAiC5nG,IAAI,CAACu+F,QAAtD;MACAv+F,IAAI,CAAC8tvB,MAAL,GAAc,KAAd;IACH,CAHD;;IAIA,IAAI,KAAKhC,SAAL,CAAeU,YAAnB,EAAiC;MAC7B,KAAKuB,kBAAL;IACH;EACJ;;EACDC,WAAW,CAACC,IAAD,EAAO;IACdA,IAAI,GAAGrC,iBAAiB,CAACqC,IAAD,CAAjB,CAAwB5msB,iBAAxB,EAAP;IACA,OAAO,KAAK8ksB,aAAL,CAAmBjzvB,IAAnB,CAAwB8G,IAAI,IAAI;MACnC,MAAM+lG,KAAK,GAAG6lpB,iBAAiB,CAAC5rvB,IAAI,CAAC+lG,KAAN,CAAjB,CAA8B1+C,iBAA9B,EAAd;MACA,OAAO0+C,KAAK,CAAChqD,MAAN,CAAa,CAAb,EAAgBkysB,IAAI,CAACr1wB,MAArB,MAAiCq1wB,IAAxC;IACH,CAHM,CAAP;EAIH;;EACDr3wB,MAAM,CAACq3wB,IAAD,EAAO;IACT,IAAI,CAACA,IAAL,EAAW;MACP,KAAKF,kBAAL;MACA;IACH;;IACD,KAAK9B,cAAL,GAAsB,EAAtB;IACAgC,IAAI,GAAG,KAAKnC,SAAL,CAAeoC,QAAf,GAA0BD,IAA1B,GAAiCrC,iBAAiB,CAACqC,IAAD,CAAjB,CAAwB5msB,iBAAxB,EAAxC;IACA,MAAMvE,KAAK,GAAG,KAAKgpsB,SAAL,CAAeoC,QAAf,IAA2B,KAAKC,gBAA9C;IACA,MAAM3B,YAAY,GAAG,KAAKV,SAAL,CAAeU,YAApC;;IACA,KAAK,MAAMvzwB,GAAX,IAAkB6C,KAAK,CAAC6lB,IAAN,CAAW,KAAKqrvB,OAAL,CAAal0wB,IAAb,EAAX,CAAlB,EAAmD;MAC/C,MAAMs1wB,YAAY,GAAG,EAArB;;MACA,KAAK,MAAMpuvB,IAAX,IAAmB,KAAKgtvB,OAAL,CAAa5swB,GAAb,CAAiBnH,GAAjB,CAAnB,EAA0C;QACtC,IAAIuzwB,YAAY,KAAKxsvB,IAAI,CAAC3f,MAAL,IAAe2f,IAAI,CAAC3f,MAAL,CAAYunH,QAA3B,IAAuC5nG,IAAI,CAAC4nG,QAAjD,CAAhB,EAA4E;UACxE;QACH;;QACD,MAAMympB,UAAU,GAAG,KAAKvC,SAAL,CAAeoC,QAAf,GAA0BluvB,IAAI,CAAC3oB,KAA/B,GAAuC2oB,IAA1D;;QACA,IAAI8iD,KAAK,CAACmrsB,IAAD,EAAOI,UAAP,CAAT,EAA6B;UACzBD,YAAY,CAAC9wwB,IAAb,CAAkB0iB,IAAlB;QACH;MACJ;;MACD,IAAIouvB,YAAY,CAACx1wB,MAAb,GAAsB,CAA1B,EAA6B;QACzB,MAAM,CAACjB,IAAD,IAASy2wB,YAAY,CAACj1vB,KAAb,CAAmB,CAAC,CAApB,CAAf;;QACA,IAAIxhB,IAAI,CAAC0I,MAAT,EAAiB;UACb,MAAMgja,IAAI,GAAG,KAAK2oW,MAAL,CAAY9yvB,IAAZ,CAAiB3O,CAAC,IAAIA,CAAC,KAAK5S,IAAI,CAAC0I,MAAjC,CAAb;;UACA,KAAK4rwB,cAAL,CAAoB3uwB,IAApB,CAAyB+la,IAAzB;QACH;;QACD,KAAK4oW,cAAL,CAAoB3uwB,IAApB,CAAyB,GAAG8wwB,YAA5B;MACH;IACJ;EACJ;;EACDL,kBAAkB,GAAG;IACjB,IAAI,KAAK9B,cAAL,CAAoBrzwB,MAApB,KAA+B,KAAKozwB,MAAL,CAAYpzwB,MAA/C,EAAuD;MACnD;IACH;;IACD,IAAI,KAAKkzwB,SAAL,CAAeU,YAAf,IAA+B,KAAKH,aAAL,CAAmBzzwB,MAAnB,GAA4B,CAA/D,EAAkE;MAC9D,KAAKqzwB,cAAL,GAAsB,KAAKD,MAAL,CAAYp1wB,MAAZ,CAAmB2T,CAAC,IAAI,CAACA,CAAC,CAACq9G,QAA3B,CAAtB;IACH,CAFD,MAGK;MACD,KAAKqkpB,cAAL,GAAsB,KAAKD,MAA3B;IACH;EACJ;;EACDsC,UAAU,GAAG;IACT,KAAKpC,YAAL,GAAoB,CAAC,CAArB;EACH;;EACDqC,YAAY,GAAG;IACX,KAAKC,WAAL,CAAiB,CAAC,CAAlB;EACH;;EACDC,gBAAgB,GAAG;IACf,KAAKD,WAAL,CAAiB,CAAC,CAAlB;EACH;;EACDE,QAAQ,CAAC1uvB,IAAD,EAAO;IACX,KAAKksvB,YAAL,GAAoB,KAAKD,cAAL,CAAoBhqwB,OAApB,CAA4B+d,IAA5B,CAApB;EACH;;EACD2uvB,qBAAqB,CAACC,WAAD,EAAc;IAC/B,IAAI,KAAK3C,cAAL,CAAoBrzwB,MAApB,KAA+B,CAAnC,EAAsC;MAClC;IACH;;IACD,MAAMi2wB,eAAe,GAAG,KAAKC,mBAAL,EAAxB;;IACA,IAAID,eAAe,GAAG,CAAC,CAAvB,EAA0B;MACtB,KAAK3C,YAAL,GAAoB2C,eAApB;IACH,CAFD,MAGK;MACD,KAAK3C,YAAL,GAAoB0C,WAAW,GAAG,KAAKzC,aAAL,CAAmB5goB,SAAnB,CAA6BhhI,CAAC,IAAI,CAACA,CAAC,CAACg0G,QAArC,CAAH,GAAoD,CAAC,CAApF;IACH;EACJ;;EACDovpB,aAAa,CAACxioB,MAAD,EAASlyI,GAAT,EAAc;IACvB,IAAI,CAAC4mX,QAAQ,CAAC10O,MAAD,CAAb,EAAuB;MACnB,OAAOA,MAAP;IACH;;IACD,IAAIlyI,GAAG,CAACgJ,OAAJ,CAAY,GAAZ,MAAqB,CAAC,CAA1B,EAA6B;MACzB,OAAOkpI,MAAM,CAAClyI,GAAD,CAAb;IACH,CAFD,MAGK;MACD,MAAMH,IAAI,GAAGG,GAAG,CAAC+H,KAAJ,CAAU,GAAV,CAAb;MACA,IAAI3J,KAAK,GAAG8zI,MAAZ;;MACA,KAAK,IAAI9yH,CAAC,GAAG,CAAR,EAAW/E,GAAG,GAAGxa,IAAI,CAACF,MAA3B,EAAmCyf,CAAC,GAAG/E,GAAvC,EAA4C,EAAE+E,CAA9C,EAAiD;QAC7C,IAAIhhB,KAAK,IAAI,IAAb,EAAmB;UACf,OAAO,IAAP;QACH;;QACDA,KAAK,GAAGA,KAAK,CAACyB,IAAI,CAACuf,CAAD,CAAL,CAAb;MACH;;MACD,OAAOhhB,KAAP;IACH;EACJ;;EACDy1wB,OAAO,CAAC9svB,IAAD,EAAO9mB,KAAP,EAAc;IACjB,MAAM6sH,KAAK,GAAG6kpB,SAAS,CAAC5qvB,IAAI,CAAC+uvB,cAAN,CAAT,GAAiC/uvB,IAAI,CAAC+uvB,cAAtC,GAAuD,KAAKpB,aAAL,CAAmB3tvB,IAAnB,EAAyB,KAAK8rvB,SAAL,CAAe8B,SAAxC,CAArE;IACA,MAAMv2wB,KAAK,GAAGuzwB,SAAS,CAAC5qvB,IAAI,CAACgvvB,cAAN,CAAT,GAAiChvvB,IAAI,CAACgvvB,cAAtC,GAAuDhvvB,IAArE;IACA,OAAO;MACH9mB,KADG;MAEH6sH,KAAK,EAAE6kpB,SAAS,CAAC7kpB,KAAD,CAAT,GAAmBA,KAAK,CAAC7qH,QAAN,EAAnB,GAAsC,EAF1C;MAGH7D,KAHG;MAIHknH,QAAQ,EAAEv+F,IAAI,CAACu+F,QAJZ;MAKH0wpB,MAAM,EAAG,GAAE,KAAKnD,SAAL,CAAeoD,UAAW,IAAGh2wB,KAAM;IAL3C,CAAP;EAOH;;EACDi2wB,gBAAgB,GAAG;IACf,MAAMzC,QAAQ,GAAG,KAAKZ,SAAL,CAAeY,QAAhC;;IACA,KAAK,MAAM9kpB,QAAX,IAAuB,KAAKykpB,aAA5B,EAA2C;MACvC,MAAMh1wB,KAAK,GAAG,KAAKy0wB,SAAL,CAAe4B,SAAf,GAA2B,KAAKC,aAAL,CAAmB/lpB,QAAQ,CAACvwH,KAA5B,EAAmC,KAAKy0wB,SAAL,CAAe4B,SAAlD,CAA3B,GAA0F9lpB,QAAQ,CAACvwH,KAAjH;MACA,MAAM2oB,IAAI,GAAG4qvB,SAAS,CAACvzwB,KAAD,CAAT,GAAmB,KAAKm2wB,QAAL,CAAcn2wB,KAAd,CAAnB,GAA0C,IAAvD;;MACA,KAAK00wB,eAAL,CAAqBuB,QAArB,CAA8B1lpB,QAA9B,EAAwC8kpB,QAAxC;;MACA,KAAKX,eAAL,CAAqBxgtB,MAArB,CAA4BvrC,IAAI,IAAI4nG,QAApC,EAA8C8kpB,QAA9C,EAAwD,KAAKZ,SAAL,CAAesB,sBAAvE;IACH;;IACD,IAAI,KAAKtB,SAAL,CAAeU,YAAnB,EAAiC;MAC7B,KAAKP,cAAL,GAAsB,KAAKE,aAAL,CAAmBv1wB,MAAnB,CAA0B2T,CAAC,IAAI,KAAK8hwB,aAAL,CAAmBpqwB,OAAnB,CAA2BsI,CAA3B,MAAkC,CAAC,CAAlE,CAAtB;IACH;EACJ;;EACDgjwB,aAAa,CAACvtvB,IAAD,EAAO;IAChB,KAAKisvB,cAAL,CAAoB3uwB,IAApB,CAAyB0iB,IAAzB;;IACA,IAAIA,IAAI,CAAC3f,MAAT,EAAiB;MACb,MAAMA,MAAM,GAAG2f,IAAI,CAAC3f,MAApB;;MACA,MAAM+uwB,YAAY,GAAG,KAAKnD,cAAL,CAAoB/yvB,IAApB,CAAyB3O,CAAC,IAAIA,CAAC,KAAKlK,MAApC,CAArB;;MACA,IAAI,CAAC+uwB,YAAL,EAAmB;QACf,KAAKnD,cAAL,CAAoB3uwB,IAApB,CAAyB+C,MAAzB;MACH;IACJ,CAND,MAOK,IAAI2f,IAAI,CAACgD,QAAT,EAAmB;MACpB,KAAK,MAAM/Z,KAAX,IAAoB+W,IAAI,CAACgD,QAAzB,EAAmC;QAC/B/Z,KAAK,CAAC2+G,QAAN,GAAiB,KAAjB;;QACA,KAAKqkpB,cAAL,CAAoB3uwB,IAApB,CAAyB2L,KAAzB;MACH;IACJ;;IACD,KAAKgjwB,cAAL,GAAsB,CAAC,GAAG,KAAKA,cAAL,CAAoBzuvB,IAApB,CAAyB,CAACC,CAAD,EAAIC,CAAJ,KAAWD,CAAC,CAACvkB,KAAF,GAAUwkB,CAAC,CAACxkB,KAAhD,CAAJ,CAAtB;EACH;;EACDm0wB,aAAa,CAACrtvB,IAAD,EAAO;IAChB,KAAKisvB,cAAL,GAAsB,KAAKA,cAAL,CAAoBr1wB,MAApB,CAA2B2T,CAAC,IAAIA,CAAC,KAAKyV,IAAtC,CAAtB;;IACA,IAAIA,IAAI,CAAC3f,MAAT,EAAiB;MACb,MAAM2iB,QAAQ,GAAGhD,IAAI,CAAC3f,MAAL,CAAY2iB,QAA7B;;MACA,IAAIA,QAAQ,CAACrK,KAAT,CAAepO,CAAC,IAAIA,CAAC,CAACq9G,QAAtB,CAAJ,EAAqC;QACjC,KAAKqkpB,cAAL,GAAsB,KAAKA,cAAL,CAAoBr1wB,MAApB,CAA2B2T,CAAC,IAAIA,CAAC,KAAKyV,IAAI,CAAC3f,MAA3C,CAAtB;MACH;IACJ,CALD,MAMK,IAAI2f,IAAI,CAACgD,QAAT,EAAmB;MACpB,KAAKipvB,cAAL,GAAsB,KAAKE,aAAL,CAAmBv1wB,MAAnB,CAA0B2T,CAAC,IAAIA,CAAC,CAAClK,MAAF,KAAa2f,IAA5C,CAAtB;IACH;EACJ;;EACDmuvB,gBAAgB,CAACpnsB,MAAD,EAAS84D,GAAT,EAAc;IAC1B,MAAM9Z,KAAK,GAAG6lpB,iBAAiB,CAAC/roB,GAAG,CAAC9Z,KAAL,CAAjB,CAA6B1+C,iBAA7B,EAAd;IACA,OAAO0+C,KAAK,CAAC9jH,OAAN,CAAc8kE,MAAd,IAAwB,CAAC,CAAhC;EACH;;EACDsosB,iBAAiB,CAAC5/M,KAAD,EAAQ;IACrB,IAAIA,KAAK,GAAG,CAAZ,EAAe;MACX,OAAQ,KAAKy8M,YAAL,IAAqB,KAAKD,cAAL,CAAoBrzwB,MAApB,GAA6B,CAAnD,GAAwD,CAAxD,GAA6D,KAAKszwB,YAAL,GAAoB,CAAxF;IACH;;IACD,OAAQ,KAAKA,YAAL,IAAqB,CAAtB,GAA4B,KAAKD,cAAL,CAAoBrzwB,MAApB,GAA6B,CAAzD,GAA+D,KAAKszwB,YAAL,GAAoB,CAA1F;EACH;;EACDsC,WAAW,CAAC/+M,KAAD,EAAQ;IACf,IAAI,KAAKw8M,cAAL,CAAoBrzwB,MAApB,KAA+B,CAA/B,IAAoC,KAAKqzwB,cAAL,CAAoBtzvB,KAApB,CAA0BpO,CAAC,IAAIA,CAAC,CAACg0G,QAAjC,CAAxC,EAAoF;MAChF;IACH;;IACD,KAAK2tpB,YAAL,GAAoB,KAAKmD,iBAAL,CAAuB5/M,KAAvB,CAApB;;IACA,IAAI,KAAK68M,UAAL,CAAgB/tpB,QAApB,EAA8B;MAC1B,KAAKiwpB,WAAL,CAAiB/+M,KAAjB;IACH;EACJ;;EACDq/M,mBAAmB,GAAG;IAClB,IAAI,KAAKhD,SAAL,CAAeU,YAAnB,EAAiC;MAC7B,OAAO,CAAC,CAAR;IACH;;IACD,IAAI,KAAKN,YAAL,GAAoB,CAAC,CAArB,IAA0B,KAAKI,UAAL,KAAoBlzwB,SAAlD,EAA6D;MACzD,OAAO,CAAC,CAAR;IACH;;IACD,MAAMs0e,aAAa,GAAG,KAAKu+R,cAAL,CAAoBhqwB,OAApB,CAA4B,KAAK2qwB,gBAAjC,CAAtB;;IACA,IAAI,KAAKA,gBAAL,IAAyBl/R,aAAa,GAAG,CAA7C,EAAgD;MAC5C,OAAO,CAAC,CAAR;IACH;;IACD,OAAOr/d,IAAI,CAAC9C,GAAL,CAAS,KAAK6gwB,WAAd,EAA2B1+R,aAA3B,CAAP;EACH;;EACDu/R,QAAQ,CAACtitB,KAAD,EAAQ4gB,IAAR,EAAc;IAClB,MAAM6/P,MAAM,GAAG,IAAIlzT,GAAJ,EAAf;;IACA,IAAIyyC,KAAK,CAAC/xD,MAAN,KAAiB,CAArB,EAAwB;MACpB,OAAOwyU,MAAP;IACH,CAJiB,CAKlB;;;IACA,IAAItvU,KAAK,CAACikB,OAAN,CAAc4qC,KAAK,CAAC,CAAD,CAAL,CAAStzD,KAAT,CAAek0E,IAAf,CAAd,CAAJ,EAAyC;MACrC,KAAK,MAAMvrD,IAAX,IAAmB2qC,KAAnB,EAA0B;QACtB,MAAM3nC,QAAQ,GAAG,CAAChD,IAAI,CAAC3oB,KAAL,CAAWk0E,IAAX,KAAoB,EAArB,EAAyBtqE,GAAzB,CAA6B,CAACsJ,CAAD,EAAIrR,KAAJ,KAAc,KAAK4zwB,OAAL,CAAaviwB,CAAb,EAAgBrR,KAAhB,CAA3C,CAAjB;QACAkyU,MAAM,CAACvyT,GAAP,CAAWmH,IAAX,EAAiBgD,QAAjB;MACH;;MACD,OAAOooT,MAAP;IACH;;IACD,MAAMkkc,OAAO,GAAG9huB,UAAU,CAAC,KAAKs+tB,SAAL,CAAeiB,OAAhB,CAA1B;;IACA,MAAMwC,KAAK,GAAIvvvB,IAAD,IAAU;MACpB,MAAM/mB,GAAG,GAAGq2wB,OAAO,GAAG/jsB,IAAI,CAACvrD,IAAI,CAAC3oB,KAAN,CAAP,GAAsB2oB,IAAI,CAAC3oB,KAAL,CAAWk0E,IAAX,CAAzC;MACA,OAAOq/rB,SAAS,CAAC3xwB,GAAD,CAAT,GAAiBA,GAAjB,GAAuBG,SAA9B;IACH,CAHD,CAdkB,CAkBlB;;;IACA,KAAK,MAAM4mB,IAAX,IAAmB2qC,KAAnB,EAA0B;MACtB,MAAM1xD,GAAG,GAAGs2wB,KAAK,CAACvvvB,IAAD,CAAjB;MACA,MAAMs+B,KAAK,GAAG8sR,MAAM,CAAChrU,GAAP,CAAWnH,GAAX,CAAd;;MACA,IAAIqlD,KAAJ,EAAW;QACPA,KAAK,CAAChhD,IAAN,CAAW0iB,IAAX;MACH,CAFD,MAGK;QACDorT,MAAM,CAACvyT,GAAP,CAAW5f,GAAX,EAAgB,CAAC+mB,IAAD,CAAhB;MACH;IACJ;;IACD,OAAOorT,MAAP;EACH;;EACD8hc,QAAQ,CAAC9hc,MAAD,EAAS;IACb,MAAMokc,WAAW,GAAGhiuB,UAAU,CAAC,KAAKs+tB,SAAL,CAAeiB,OAAhB,CAA9B;IACA,MAAMpitB,KAAK,GAAG,EAAd;;IACA,KAAK,MAAM1xD,GAAX,IAAkB6C,KAAK,CAAC6lB,IAAN,CAAWypT,MAAM,CAACtyU,IAAP,EAAX,CAAlB,EAA6C;MACzC,IAAIuf,CAAC,GAAGsyC,KAAK,CAAC/xD,MAAd;;MACA,IAAIK,GAAG,KAAKG,SAAZ,EAAuB;QACnB,MAAMq2wB,YAAY,GAAGrkc,MAAM,CAAChrU,GAAP,CAAWhH,SAAX,KAAyB,EAA9C;QACAuxD,KAAK,CAACrtD,IAAN,CAAW,GAAGmywB,YAAY,CAACxuwB,GAAb,CAAiBsJ,CAAC,IAAI;UAChCA,CAAC,CAACrR,KAAF,GAAUmf,CAAC,EAAX;UACA,OAAO9N,CAAP;QACH,CAHa,CAAd;QAIA;MACH;;MACD,MAAMmlwB,WAAW,GAAG7vZ,QAAQ,CAAC5mX,GAAD,CAA5B;MACA,MAAMoH,MAAM,GAAG;QACX0lH,KAAK,EAAE2ppB,WAAW,GAAG,EAAH,GAAQn1sB,MAAM,CAACthE,GAAD,CADrB;QAEX+pB,QAAQ,EAAE5pB,SAFC;QAGXiH,MAAM,EAAE,IAHG;QAIXnH,KAAK,EAAEmf,CAAC,EAJG;QAKXkmG,QAAQ,EAAE,CAAC,KAAKutpB,SAAL,CAAe6D,eALf;QAMXV,MAAM,EAAEvD,KAAK;MANF,CAAf;MAQA,MAAM5oqB,QAAQ,GAAG0sqB,WAAW,GAAG,KAAK1D,SAAL,CAAe8B,SAAlB,GAA8B,KAAK9B,SAAL,CAAeiB,OAAzE;;MACA,MAAM16R,UAAU,GAAG,KAAKy5R,SAAL,CAAez5R,UAAf,KAA8B,MAAM;QACnD,IAAIq9R,WAAJ,EAAiB;UACb,OAAOz2wB,GAAG,CAAC5B,KAAX;QACH;;QACD,OAAO;UAAE,CAACyrG,QAAD,GAAY7pG;QAAd,CAAP;MACH,CALkB,CAAnB;;MAMA,MAAM+pB,QAAQ,GAAGooT,MAAM,CAAChrU,GAAP,CAAWnH,GAAX,EAAgBgI,GAAhB,CAAoBsJ,CAAC,IAAI;QACtCA,CAAC,CAAClK,MAAF,GAAWA,MAAX;QACAkK,CAAC,CAACyY,QAAF,GAAa5pB,SAAb;QACAmR,CAAC,CAACrR,KAAF,GAAUmf,CAAC,EAAX;QACA,OAAO9N,CAAP;MACH,CALgB,CAAjB;MAMAlK,MAAM,CAAC2iB,QAAP,GAAkBA,QAAlB;MACA3iB,MAAM,CAAChJ,KAAP,GAAeg7e,UAAU,CAACp5e,GAAD,EAAM+pB,QAAQ,CAAC/hB,GAAT,CAAasJ,CAAC,IAAIA,CAAC,CAAClT,KAApB,CAAN,CAAzB;MACAszD,KAAK,CAACrtD,IAAN,CAAW+C,MAAX;MACAsqD,KAAK,CAACrtD,IAAN,CAAW,GAAG0lB,QAAd;IACH;;IACD,OAAO2nC,KAAP;EACH;;AA9VW;;AAiWhB,IAAIikE,OAAJ;;AACA,CAAC,UAAUA,OAAV,EAAmB;EAChBA,OAAO,CAACA,OAAO,CAAC,KAAD,CAAP,GAAiB,CAAlB,CAAP,GAA8B,KAA9B;EACAA,OAAO,CAACA,OAAO,CAAC,OAAD,CAAP,GAAmB,EAApB,CAAP,GAAiC,OAAjC;EACAA,OAAO,CAACA,OAAO,CAAC,KAAD,CAAP,GAAiB,EAAlB,CAAP,GAA+B,KAA/B;EACAA,OAAO,CAACA,OAAO,CAAC,OAAD,CAAP,GAAmB,EAApB,CAAP,GAAiC,OAAjC;EACAA,OAAO,CAACA,OAAO,CAAC,SAAD,CAAP,GAAqB,EAAtB,CAAP,GAAmC,SAAnC;EACAA,OAAO,CAACA,OAAO,CAAC,WAAD,CAAP,GAAuB,EAAxB,CAAP,GAAqC,WAArC;EACAA,OAAO,CAACA,OAAO,CAAC,WAAD,CAAP,GAAuB,CAAxB,CAAP,GAAoC,WAApC;AACH,CARD,EAQGA,OAAO,KAAKA,OAAO,GAAG,EAAf,CARV;;AAUA,MAAMghpB,sBAAN,CAA6B;EACzB54wB,WAAW,GAAG;IACV,KAAK64wB,WAAL,GAAmB;MACf55W,UAAU,EAAE,CADG;MAEf65W,WAAW,EAAE,CAFE;MAGfC,gBAAgB,EAAE;IAHH,CAAnB;EAKH;;EACa,IAAV3lqB,UAAU,GAAG;IACb,OAAO,KAAKylqB,WAAZ;EACH;;EACDG,cAAc,CAACC,SAAD,EAAYC,WAAZ,EAAyB9/N,MAAzB,EAAiC;IAC3C,MAAMj7f,CAAC,GAAG,KAAK06tB,WAAf;IACA,MAAM3hwB,YAAY,GAAGinC,CAAC,CAAC8gX,UAAF,GAAei6W,WAApC;IACA,MAAMziwB,SAAS,GAAGY,IAAI,CAAC9C,GAAL,CAAS,CAAT,EAAY0kwB,SAAZ,CAAlB;IACA,MAAME,gBAAgB,GAAG1iwB,SAAS,GAAGS,YAAZ,GAA2BgiwB,WAApD;IACA,IAAIr/vB,GAAG,GAAGxC,IAAI,CAAC7C,GAAL,CAAS0kwB,WAAT,EAAsB7hwB,IAAI,CAACsxG,IAAL,CAAUwwpB,gBAAV,KAA+Bh7tB,CAAC,CAAC46tB,gBAAF,GAAqB,CAApD,CAAtB,CAAV;IACA,MAAMK,WAAW,GAAGv/vB,GAApB;IACA,MAAMw/vB,QAAQ,GAAGhiwB,IAAI,CAAC9C,GAAL,CAAS,CAAT,EAAY6kwB,WAAW,GAAGj7tB,CAAC,CAAC46tB,gBAA5B,CAAjB;IACA,IAAItwwB,KAAK,GAAG4O,IAAI,CAAC7C,GAAL,CAAS6kwB,QAAT,EAAmBhiwB,IAAI,CAACs6D,KAAL,CAAWwnsB,gBAAX,CAAnB,CAAZ;IACA,IAAIG,UAAU,GAAGn7tB,CAAC,CAAC8gX,UAAF,GAAe5nZ,IAAI,CAACsxG,IAAL,CAAUlgH,KAAV,CAAf,GAAmC01C,CAAC,CAAC8gX,UAAF,GAAe5nZ,IAAI,CAAC7C,GAAL,CAAS/L,KAAT,EAAgB2wiB,MAAhB,CAAnE;IACAkgO,UAAU,GAAG,CAACxswB,KAAK,CAACwswB,UAAD,CAAN,GAAqBA,UAArB,GAAkC,CAA/C;IACA7wwB,KAAK,GAAG,CAACqE,KAAK,CAACrE,KAAD,CAAN,GAAgBA,KAAhB,GAAwB,CAAC,CAAjC;IACAoR,GAAG,GAAG,CAAC/M,KAAK,CAAC+M,GAAD,CAAN,GAAcA,GAAd,GAAoB,CAAC,CAA3B;IACApR,KAAK,IAAI2wiB,MAAT;IACA3wiB,KAAK,GAAG4O,IAAI,CAAC9C,GAAL,CAAS,CAAT,EAAY9L,KAAZ,CAAR;IACAoR,GAAG,IAAIu/hB,MAAP;IACAv/hB,GAAG,GAAGxC,IAAI,CAAC7C,GAAL,CAAS0kwB,WAAT,EAAsBr/vB,GAAtB,CAAN;IACA,OAAO;MACHy/vB,UADG;MAEHpiwB,YAFG;MAGHzO,KAHG;MAIHoR;IAJG,CAAP;EAMH;;EACD0/vB,aAAa,CAACt6W,UAAD,EAAa65W,WAAb,EAA0B;IACnC,MAAMC,gBAAgB,GAAG1hwB,IAAI,CAAC9C,GAAL,CAAS,CAAT,EAAY8C,IAAI,CAACs6D,KAAL,CAAWmnsB,WAAW,GAAG75W,UAAzB,CAAZ,CAAzB;IACA,KAAK45W,WAAL,GAAmB;MACf55W,UADe;MAEf65W,WAFe;MAGfC;IAHe,CAAnB;EAKH;;EACDS,WAAW,CAACC,OAAD,EAAUx6W,UAAV,EAAsBy6W,UAAtB,EAAkC;IACzC,MAAM;MAAEZ;IAAF,IAAkB,KAAK1lqB,UAA7B;IACA,MAAMumqB,UAAU,GAAGF,OAAO,GAAGx6W,UAA7B;IACA,MAAMtrZ,GAAG,GAAG+lwB,UAAZ;IACA,MAAM5lwB,MAAM,GAAGH,GAAG,GAAGmlwB,WAArB;;IACA,IAAIA,WAAW,IAAIa,UAAf,IAA6BD,UAAU,KAAKD,OAAhD,EAAyD;MACrD,OAAO,IAAP;IACH;;IACD,IAAIE,UAAU,GAAG7lwB,MAAjB,EAAyB;MACrB,OAAOH,GAAG,GAAGgmwB,UAAN,GAAmB7lwB,MAA1B;IACH,CAFD,MAGK,IAAI2lwB,OAAO,IAAI9lwB,GAAf,EAAoB;MACrB,OAAO8lwB,OAAP;IACH;;IACD,OAAO,IAAP;EACH;;AA1DwB;;AA4D7Bb,sBAAsB,CAAC/1wB,IAAvB;EAAA,iBAAoH+1wB,sBAApH;AAAA;;AACAA,sBAAsB,CAAC51wB,KAAvB,kBA/4CwGumB,gEA+4CxG;EAAA,OAAwHqvvB,sBAAxH;EAAA,SAAwHA,sBAAxH;AAAA;;AACA;EAAA,mDAh5CwGrvvB,+DAg5CxG,CAA4FqvvB,sBAA5F,EAAgI,CAAC;IACrHr1wB,IAAI,EAAEtE,qDAAUA;EADqG,CAAD,CAAhI;AAAA;;AAIA,MAAM26wB,aAAa,GAAG,CAAC,KAAD,EAAQ,OAAR,EAAiB,QAAjB,EAA2B,MAA3B,CAAtB;AACA,MAAMnmK,gBAAgB,GAAG,OAAOrlX,qBAAP,KAAiC,WAAjC,GAA+C6nU,yDAA/C,GAAyEG,+CAAlG;;AACA,MAAMyjN,wBAAN,CAA+B;EAC3B75wB,WAAW,CAACitnB,SAAD,EAAYmgG,KAAZ,EAAmB0sD,aAAnB,EAAkC17C,WAAlC,EAA+Cx2I,SAA/C,EAA0D;IACjE,KAAKqlC,SAAL,GAAiBA,SAAjB;IACA,KAAKmgG,KAAL,GAAaA,KAAb;IACA,KAAK0sD,aAAL,GAAqBA,aAArB;IACA,KAAKlyL,SAAL,GAAiBA,SAAjB;IACA,KAAKj0hB,KAAL,GAAa,EAAb;IACA,KAAKv+C,QAAL,GAAgB,MAAhB;IACA,KAAK2kwB,aAAL,GAAqB,KAArB;IACA,KAAKC,WAAL,GAAmB,IAAnB;IACA,KAAKtpwB,MAAL,GAAc,IAAIxR,uDAAJ,EAAd;IACA,KAAKqX,MAAL,GAAc,IAAIrX,uDAAJ,EAAd;IACA,KAAK+6wB,WAAL,GAAmB,IAAI/6wB,uDAAJ,EAAnB;IACA,KAAKg7wB,YAAL,GAAoB,IAAIh7wB,uDAAJ,EAApB;IACA,KAAKi7wB,SAAL,GAAiB,IAAIv2N,yCAAJ,EAAjB;IACA,KAAKw2N,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,mBAAL,GAA2B,CAA3B;IACA,KAAKC,SAAL,GAAiBn8C,WAAW,CAACposB,aAA7B;EACH;;EACkB,IAAf8yN,eAAe,GAAG;IAClB,OAAO,KAAK0xhB,gBAAZ;EACH;;EACc,IAAXtB,WAAW,GAAG;IACd,OAAO,KAAKuB,YAAZ;EACH;;EACc,IAAXvB,WAAW,CAAC74wB,KAAD,EAAQ;IACnB,IAAIA,KAAK,KAAK,KAAKo6wB,YAAnB,EAAiC;MAC7B,KAAKA,YAAL,GAAoBp6wB,KAApB;;MACA,KAAKq6wB,qBAAL;IACH;EACJ;;EACe,IAAZC,YAAY,GAAG;IACf,IAAI,KAAKrF,UAAT,EAAqB;MACjB,MAAM;QAAEr2W,UAAF;QAAc65W;MAAd,IAA8B,KAAKgB,aAAL,CAAmB1mqB,UAAvD;MACA,MAAMn2F,MAAM,GAAG,KAAKq4vB,UAAL,CAAgBpzwB,KAAhB,GAAwB+8Z,UAAvC;MACA,OAAO65W,WAAW,GAAG77vB,MAAd,GAAuB,CAAvB,GAA2BA,MAAlC;IACH;;IACD,OAAO,CAAP;EACH;;EACDmxlB,QAAQ,GAAG;IACP,KAAKimI,OAAL,GAAe,KAAKkmC,SAAL,CAAepltB,aAA9B;IACA,KAAKyltB,eAAL,GAAuB,KAAKC,iBAAL,CAAuB7kvB,aAA9C;IACA,KAAK8kvB,gBAAL,GAAwB,KAAKC,gBAAL,CAAsB/kvB,aAA9C;IACA,KAAKglvB,aAAL,GAAqB,KAAKC,iBAAL,CAAuBjlvB,aAA5C;;IACA,KAAKklvB,aAAL;;IACA,KAAKC,mBAAL;;IACA,KAAKC,eAAL;;IACA,KAAKC,uBAAL;EACH;;EACDrsuB,WAAW,CAACC,OAAD,EAAU;IACjB,IAAIA,OAAO,CAAC0kB,KAAZ,EAAmB;MACf,MAAMa,MAAM,GAAGvlB,OAAO,CAAC0kB,KAAvB;;MACA,KAAK2ntB,cAAL,CAAoB9mtB,MAAM,CAAC4T,YAA3B,EAAyC5T,MAAM,CAACkolB,WAAhD;IACH;EACJ;;EACDh0oB,WAAW,GAAG;IACV,KAAKyxwB,SAAL,CAAe/nwB,IAAf;;IACA,KAAK+nwB,SAAL,CAAeh1N,QAAf;;IACA,KAAKg1N,SAAL,CAAe/4wB,WAAf;;IACA,IAAI,KAAKm6wB,QAAT,EAAmB;MACf,KAAKtuJ,SAAL,CAAer/iB,WAAf,CAA2B,KAAK2ssB,SAAL,CAAejowB,UAA1C,EAAsD,KAAKiowB,SAA3D;IACH;EACJ;;EACDn1lB,QAAQ,CAACjxC,MAAD,EAASqnoB,eAAe,GAAG,KAA3B,EAAkC;IACtC,IAAI,CAACrnoB,MAAL,EAAa;MACT;IACH;;IACD,MAAMjyI,KAAK,GAAG,KAAKyxD,KAAL,CAAW1oD,OAAX,CAAmBkpI,MAAnB,CAAd;;IACA,IAAIjyI,KAAK,GAAG,CAAR,IAAaA,KAAK,IAAI,KAAKg3wB,WAA/B,EAA4C;MACxC;IACH;;IACD,IAAI9zlB,QAAJ;;IACA,IAAI,KAAK20lB,aAAT,EAAwB;MACpB,MAAM96W,UAAU,GAAG,KAAK66W,aAAL,CAAmB1mqB,UAAnB,CAA8B6rT,UAAjD;MACA75O,QAAQ,GAAG,KAAK00lB,aAAL,CAAmBN,WAAnB,CAA+Bt3wB,KAAK,GAAG+8Z,UAAvC,EAAmDA,UAAnD,EAA+D,KAAKq7W,mBAApE,CAAX;IACH,CAHD,MAIK;MACD,MAAMtxvB,IAAI,GAAG,KAAKuxvB,SAAL,CAAel9vB,aAAf,CAA8B,IAAG82H,MAAM,CAAC8joB,MAAO,EAA/C,CAAb;;MACA,MAAMyB,UAAU,GAAG8B,eAAe,GAAGxyvB,IAAI,CAACpV,SAAR,GAAoB,KAAK0mwB,mBAA3D;MACAl1lB,QAAQ,GAAG,KAAK00lB,aAAL,CAAmBN,WAAnB,CAA+BxwvB,IAAI,CAACpV,SAApC,EAA+CoV,IAAI,CAACnU,YAApD,EAAkE6kwB,UAAlE,CAAX;IACH;;IACD,IAAI9F,SAAS,CAACxulB,QAAD,CAAb,EAAyB;MACrB,KAAK01lB,gBAAL,CAAsBrkwB,SAAtB,GAAkC2uK,QAAlC;IACH;EACJ;;EACDq2lB,WAAW,GAAG;IACV,MAAMt3b,KAAK,GAAG,KAAK22b,gBAAnB;IACA32b,KAAK,CAAC1tU,SAAN,GAAkB0tU,KAAK,CAACjtU,YAAN,GAAqBitU,KAAK,CAACtvU,YAA7C;EACH;;EACD6mwB,cAAc,GAAG;IACb,KAAKC,gBAAL;EACH;;EACDC,uBAAuB,GAAG;IACtB,KAAKpB,gBAAL,GAAwB,KAAKqB,yBAAL,CAA+B,KAAKtB,SAApC,CAAxB;;IACA,IAAIX,aAAa,CAACvqtB,QAAd,CAAuB,KAAKmrtB,gBAA5B,CAAJ,EAAmD;MAC/C,KAAKsB,oBAAL,CAA0B,KAAKtB,gBAA/B;IACH,CAFD,MAGK;MACD,KAAKsB,oBAAL,CAA0B,QAA1B;IACH;;IACD,IAAI,KAAKP,QAAT,EAAmB;MACf,KAAKI,gBAAL;IACH;;IACD,KAAKpB,SAAL,CAAe3/vB,KAAf,CAAqBmzD,OAArB,GAA+B,GAA/B;EACH;;EACD+tsB,oBAAoB,CAAChzhB,eAAD,EAAkB;IAClC8whB,aAAa,CAAC7owB,OAAd,CAAuBqE,QAAD,IAAc;MAChC,MAAM2mwB,gBAAgB,GAAI,aAAY3mwB,QAAS,EAA/C;;MACA,KAAK63mB,SAAL,CAAerzC,WAAf,CAA2B,KAAK2gM,SAAhC,EAA2CwB,gBAA3C;;MACA,KAAK9uJ,SAAL,CAAerzC,WAAf,CAA2B,KAAKy6J,OAAhC,EAAyC0nC,gBAAzC;IACH,CAJD;IAKA,MAAMC,aAAa,GAAI,aAAYlzhB,eAAgB,EAAnD;;IACA,KAAKmkY,SAAL,CAAep0C,QAAf,CAAwB,KAAK0hM,SAA7B,EAAwCyB,aAAxC;;IACA,KAAK/uJ,SAAL,CAAep0C,QAAf,CAAwB,KAAKw7J,OAA7B,EAAsC2nC,aAAtC;EACH;;EACDd,aAAa,GAAG;IACZ,KAAK9tD,KAAL,CAAW7ltB,iBAAX,CAA6B,MAAM;MAC/B7H,+CAAS,CAAC,KAAKq7wB,gBAAL,CAAsB/kvB,aAAvB,EAAsC,QAAtC,CAAT,CACK5rB,IADL,CACU4ojB,yDAAS,CAAC,KAAKmnN,SAAN,CADnB,EACqCxrN,yDAAS,CAAC,CAAD,EAAI8kD,gBAAJ,CAD9C,EAEKzymB,SAFL,CAEgB8wC,CAAD,IAAO;QAClB,MAAM8jB,IAAI,GAAG9jB,CAAC,CAAC8jB,IAAF,IAAW9jB,CAAC,CAAC+jB,YAAF,IAAkB/jB,CAAC,CAAC+jB,YAAF,EAA1C;QACA,MAAMp/C,SAAS,GAAG,CAACm/C,IAAD,IAASA,IAAI,CAACh0D,MAAL,KAAgB,CAAzB,GAA6BkwC,CAAC,CAACtoC,MAAF,CAASiN,SAAtC,GAAkDm/C,IAAI,CAAC,CAAD,CAAJ,CAAQn/C,SAA5E;;QACA,KAAKwlwB,kBAAL,CAAwBxlwB,SAAxB;MACH,CAND;IAOH,CARD;EASH;;EACD0kwB,mBAAmB,GAAG;IAClB,IAAI,CAAC,KAAKvzL,SAAV,EAAqB;MACjB;IACH;;IACD,KAAKwlI,KAAL,CAAW7ltB,iBAAX,CAA6B,MAAM;MAC/B5H,2CAAK,CAACD,+CAAS,CAAC,KAAKkolB,SAAN,EAAiB,YAAjB,EAA+B;QAAEz/T,OAAO,EAAE;MAAX,CAA/B,CAAV,EAA6DzoR,+CAAS,CAAC,KAAKkolB,SAAN,EAAiB,WAAjB,EAA8B;QAAEz/T,OAAO,EAAE;MAAX,CAA9B,CAAtE,CAAL,CAA6H/9Q,IAA7H,CAAkI4ojB,yDAAS,CAAC,KAAKmnN,SAAN,CAA3I,EACKn5wB,SADL,CACe0tuB,MAAM,IAAI,KAAKwtC,aAAL,CAAmBxtC,MAAnB,CADzB;IAEH,CAHD;EAIH;;EACDwtC,aAAa,CAACxtC,MAAD,EAAS;IAClB,IAAI,KAAK2F,OAAL,CAAariuB,QAAb,CAAsB08tB,MAAM,CAAClluB,MAA7B,KAAwC,KAAK+wwB,SAAL,CAAevowB,QAAf,CAAwB08tB,MAAM,CAAClluB,MAA/B,CAA5C,EAAoF;MAChF;IACH;;IACD,MAAMosD,IAAI,GAAG84qB,MAAM,CAAC94qB,IAAP,IAAgB84qB,MAAM,CAAC74qB,YAAP,IAAuB64qB,MAAM,CAAC74qB,YAAP,EAApD;;IACA,IAAI64qB,MAAM,CAAClluB,MAAP,IAAiBkluB,MAAM,CAAClluB,MAAP,CAAc0hmB,UAA/B,IAA6Ct1iB,IAA7C,IAAqDA,IAAI,CAAC,CAAD,CAAzD,IAAgE,KAAKy+qB,OAAL,CAAariuB,QAAb,CAAsB4jD,IAAI,CAAC,CAAD,CAA1B,CAApE,EAAoG;MAChG;IACH;;IACD,KAAKw3pB,KAAL,CAAWlmtB,GAAX,CAAe,MAAM,KAAKgzwB,YAAL,CAAkBrywB,IAAlB,EAArB;EACH;;EACDyzwB,cAAc,CAAC3ntB,KAAD,EAAQ+olB,WAAR,EAAqB;IAC/B,KAAK/olB,KAAL,GAAaA,KAAK,IAAI,EAAtB;IACA,KAAKymtB,iBAAL,GAAyB,KAAzB;IACA,KAAKlB,WAAL,GAAmBvltB,KAAK,CAAC/xD,MAAzB;;IACA,IAAI,KAAKm4wB,aAAT,EAAwB;MACpB,KAAKoC,iBAAL,CAAuBz/H,WAAvB;IACH,CAFD,MAGK;MACD,KAAK0/H,iBAAL;;MACA,KAAKC,YAAL,CAAkB3/H,WAAlB;IACH;EACJ;;EACD2/H,YAAY,CAAC3/H,WAAD,EAAc;IACtB,KAAKhsoB,MAAL,CAAY7I,IAAZ,CAAiB,KAAK8rD,KAAtB;;IACA,IAAI+olB,WAAW,KAAK,KAApB,EAA2B;MACvB;IACH;;IACD,KAAK0wE,KAAL,CAAW7ltB,iBAAX,CAA6B,MAAM;MAC/B8J,OAAO,CAACC,OAAR,GAAkBE,IAAlB,CAAuB,MAAM;QACzB,MAAMsnwB,WAAW,GAAG,KAAKgC,gBAAL,CAAsBjmwB,YAA1C;;QACA,KAAKilwB,aAAL,CAAmBP,aAAnB,CAAiC,CAAjC,EAAoCT,WAApC;;QACA,KAAK8C,uBAAL;;QACA,KAAKx2lB,QAAL,CAAc,KAAKkwlB,UAAnB,EAA+B54H,WAA/B;MACH,CALD;IAMH,CAPD;EAQH;;EACDy/H,iBAAiB,CAACz/H,WAAD,EAAc;IAC3B,KAAK0wE,KAAL,CAAW7ltB,iBAAX,CAA6B,MAAM;MAC/B,KAAK+0wB,kBAAL,GAA0B9qwB,IAA1B,CAA+B,MAAM;QACjC,IAAIkroB,WAAJ,EAAiB;UACb,KAAK6/H,iBAAL,CAAuB,KAAK5B,YAA5B;;UACA,KAAKiB,uBAAL;QACH,CAHD,MAIK;UACD,KAAKW,iBAAL;QACH;MACJ,CARD;IASH,CAVD;EAWH;;EACDN,kBAAkB,CAACxlwB,SAAD,EAAY;IAC1B,IAAI,KAAKsjwB,aAAT,EAAwB;MACpB,KAAKwC,iBAAL,CAAuB9lwB,SAAvB;IACH;;IACD,KAAK6jwB,mBAAL,GAA2B7jwB,SAA3B;;IACA,KAAK+lwB,gBAAL,CAAsB/lwB,SAAtB;EACH;;EACDgmwB,oBAAoB,CAACrpwB,MAAD,EAAS;IACzB,IAAI,KAAKinwB,mBAAT,EAA8B;MAC1B,KAAKO,eAAL,CAAqBhgwB,KAArB,CAA2BxH,MAA3B,GAAqC,GAAEA,MAAO,IAA9C;MACA,KAAKinwB,mBAAL,GAA2B,KAA3B;IACH;EACJ;;EACD+B,iBAAiB,GAAG;IAChB,IAAI,CAAC,KAAKxB,eAAV,EAA2B;MACvB;IACH;;IACD,KAAKA,eAAL,CAAqBhgwB,KAArB,CAA2BxH,MAA3B,GAAqC,KAArC;EACH;;EACDsnwB,qBAAqB,GAAG;IACpB,KAAKL,mBAAL,GAA2B,IAA3B;EACH;;EACDkC,iBAAiB,CAAC9lwB,SAAS,GAAG,IAAb,EAAmB;IAChC,IAAIA,SAAS,IAAI,KAAK6jwB,mBAAL,KAA6B7jwB,SAA9C,EAAyD;MACrD;IACH;;IACDA,SAAS,GAAGA,SAAS,IAAI,KAAKqkwB,gBAAL,CAAsBrkwB,SAA/C;;IACA,MAAMwgL,KAAK,GAAG,KAAK6ilB,aAAL,CAAmBd,cAAnB,CAAkCviwB,SAAlC,EAA6C,KAAKyiwB,WAAlD,EAA+D,KAAKwD,YAApE,CAAd;;IACA,KAAKD,oBAAL,CAA0BxllB,KAAK,CAAC//K,YAAhC;;IACA,KAAK8jwB,aAAL,CAAmBpgwB,KAAnB,CAAyBxC,SAAzB,GAAsC,cAAa6+K,KAAK,CAACqilB,UAAW,KAApE;;IACA,KAAKlsD,KAAL,CAAWlmtB,GAAX,CAAe,MAAM;MACjB,KAAKwJ,MAAL,CAAY7I,IAAZ,CAAiB,KAAK8rD,KAAL,CAAWxxC,KAAX,CAAiB80K,KAAK,CAACxuL,KAAvB,EAA8BwuL,KAAK,CAACp9K,GAApC,CAAjB;MACA,KAAKtD,MAAL,CAAY1O,IAAZ,CAAiB;QAAEY,KAAK,EAAEwuL,KAAK,CAACxuL,KAAf;QAAsBoR,GAAG,EAAEo9K,KAAK,CAACp9K;MAAjC,CAAjB;IACH,CAHD;;IAIA,IAAI+5vB,SAAS,CAACn9vB,SAAD,CAAT,IAAwB,KAAK6jwB,mBAAL,KAA6B,CAAzD,EAA4D;MACxD,KAAKQ,gBAAL,CAAsBrkwB,SAAtB,GAAkCA,SAAlC;MACA,KAAK6jwB,mBAAL,GAA2B7jwB,SAA3B;IACH;EACJ;;EACD6lwB,kBAAkB,GAAG;IACjB,IAAI,KAAKxC,aAAL,CAAmB1mqB,UAAnB,CAA8B6rT,UAA9B,GAA2C,CAA3C,IAAgD,KAAKi6W,WAAL,KAAqB,CAAzE,EAA4E;MACxE,OAAO7nwB,OAAO,CAACC,OAAR,CAAgB,KAAKwowB,aAAL,CAAmB1mqB,UAAnC,CAAP;IACH;;IACD,MAAM,CAAC/oF,KAAD,IAAU,KAAKspC,KAArB;IACA,KAAKjjD,MAAL,CAAY7I,IAAZ,CAAiB,CAACwiB,KAAD,CAAjB;IACA,OAAOhZ,OAAO,CAACC,OAAR,GAAkBE,IAAlB,CAAuB,MAAM;MAChC,MAAM2iI,MAAM,GAAG,KAAKomoB,SAAL,CAAel9vB,aAAf,CAA8B,IAAGgN,KAAK,CAAC4tvB,MAAO,EAA9C,CAAf;;MACA,MAAM0E,YAAY,GAAGxooB,MAAM,CAACt/H,YAA5B;MACA,KAAK+lwB,eAAL,CAAqBhgwB,KAArB,CAA2BxH,MAA3B,GAAqC,GAAEupwB,YAAY,GAAG,KAAKzD,WAAY,IAAvE;MACA,MAAMJ,WAAW,GAAG,KAAKgC,gBAAL,CAAsBjmwB,YAA1C;;MACA,KAAKilwB,aAAL,CAAmBP,aAAnB,CAAiCoD,YAAjC,EAA+C7D,WAA/C;;MACA,OAAO,KAAKgB,aAAL,CAAmB1mqB,UAA1B;IACH,CAPM,CAAP;EAQH;;EACDopqB,gBAAgB,CAAC/lwB,SAAD,EAAY;IACxB,IAAI,KAAK2jwB,iBAAL,IAA0B3jwB,SAAS,KAAK,CAA5C,EAA+C;MAC3C;IACH;;IACD,MAAMsF,OAAO,GAAG,KAAKg+vB,aAAL,GACZ,KAAKa,eADO,GAEZ,KAAKI,aAFT;;IAGA,IAAIvkwB,SAAS,GAAG,KAAK8jwB,SAAL,CAAe1lwB,YAA3B,IAA2CkH,OAAO,CAAClH,YAAR,GAAuB,CAAtE,EAAyE;MACrE,KAAKu4sB,KAAL,CAAWlmtB,GAAX,CAAe,MAAM,KAAK+ywB,WAAL,CAAiBpywB,IAAjB,EAArB;;MACA,KAAKuywB,iBAAL,GAAyB,IAAzB;IACH;EACJ;;EACDyB,yBAAyB,CAACe,UAAD,EAAa;IAClC,IAAI,KAAKxnwB,QAAL,KAAkB,MAAtB,EAA8B;MAC1B,OAAO,KAAKA,QAAZ;IACH;;IACD,MAAMynwB,UAAU,GAAG,KAAKxoC,OAAL,CAAazluB,qBAAb,EAAnB;;IACA,MAAM6H,SAAS,GAAGhM,QAAQ,CAACC,eAAT,CAAyB+L,SAAzB,IAAsChM,QAAQ,CAACuM,IAAT,CAAcP,SAAtE;IACA,MAAM7C,SAAS,GAAGipwB,UAAU,CAAClpwB,GAAX,GAAiB5I,MAAM,CAAC+N,WAA1C;IACA,MAAM1F,MAAM,GAAGypwB,UAAU,CAACzpwB,MAA1B;IACA,MAAM0pwB,cAAc,GAAGF,UAAU,CAAChuwB,qBAAX,GAAmCwE,MAA1D;;IACA,IAAIQ,SAAS,GAAGR,MAAZ,GAAqB0pwB,cAArB,GAAsCrmwB,SAAS,GAAGhM,QAAQ,CAACC,eAAT,CAAyBmK,YAA/E,EAA6F;MACzF,OAAO,KAAP;IACH,CAFD,MAGK;MACD,OAAO,QAAP;IACH;EACJ;;EACDumwB,eAAe,GAAG;IACd,IAAI,CAAC,KAAKG,QAAV,EAAoB;MAChB;IACH;;IACD,KAAK31Z,OAAL,GAAen7W,QAAQ,CAAC4S,aAAT,CAAuB,KAAKk+vB,QAA5B,CAAf;;IACA,IAAI,CAAC,KAAK31Z,OAAV,EAAmB;MACf,MAAM,IAAItlX,KAAJ,CAAW,qBAAoB,KAAKi7wB,QAAS,mCAA7C,CAAN;IACH;;IACD,KAAKwB,gBAAL;;IACA,KAAKn3Z,OAAL,CAAaj4S,WAAb,CAAyB,KAAK4ssB,SAA9B;EACH;;EACDwC,gBAAgB,GAAG;IACf,MAAMxotB,MAAM,GAAG,KAAK8/qB,OAAL,CAAazluB,qBAAb,EAAf;;IACA,MAAMvF,MAAM,GAAG,KAAKu8W,OAAL,CAAah3W,qBAAb,EAAf;;IACA,MAAM6E,UAAU,GAAG8gD,MAAM,CAAC/gD,IAAP,GAAcnK,MAAM,CAACmK,IAAxC;IACA,KAAK+mwB,SAAL,CAAe3/vB,KAAf,CAAqBpH,IAArB,GAA4BC,UAAU,GAAG,IAAzC;IACA,KAAK8mwB,SAAL,CAAe3/vB,KAAf,CAAqB1H,KAArB,GAA6BqhD,MAAM,CAACrhD,KAAP,GAAe,IAA5C;IACA,KAAKqnwB,SAAL,CAAe3/vB,KAAf,CAAqB8X,QAArB,GAAgC6hC,MAAM,CAACrhD,KAAP,GAAe,IAA/C;EACH;;EACDyowB,gBAAgB,GAAG;IACf,MAAMpntB,MAAM,GAAG,KAAK8/qB,OAAL,CAAazluB,qBAAb,EAAf;;IACA,MAAMvF,MAAM,GAAG,KAAKu8W,OAAL,CAAah3W,qBAAb,EAAf;;IACA,MAAMwsG,KAAK,GAAG7mD,MAAM,CAACnhD,MAArB;;IACA,IAAI,KAAKonwB,gBAAL,KAA0B,KAA9B,EAAqC;MACjC,MAAMwC,YAAY,GAAG3zwB,MAAM,CAACyK,MAAP,GAAgBygD,MAAM,CAACzgD,MAA5C;MACA,KAAKymwB,SAAL,CAAe3/vB,KAAf,CAAqB9G,MAArB,GAA8BkpwB,YAAY,GAAG5hqB,KAAf,GAAuB,IAArD;MACA,KAAKm/pB,SAAL,CAAe3/vB,KAAf,CAAqBjH,GAArB,GAA2B,MAA3B;IACH,CAJD,MAKK,IAAI,KAAK6mwB,gBAAL,KAA0B,QAA9B,EAAwC;MACzC,MAAM5mwB,SAAS,GAAG2gD,MAAM,CAAC5gD,GAAP,GAAatK,MAAM,CAACsK,GAAtC;MACA,KAAK4mwB,SAAL,CAAe3/vB,KAAf,CAAqBjH,GAArB,GAA2BC,SAAS,GAAGwnG,KAAZ,GAAoB,IAA/C;MACA,KAAKm/pB,SAAL,CAAe3/vB,KAAf,CAAqB9G,MAArB,GAA8B,MAA9B;IACH;EACJ;;EACDunwB,uBAAuB,GAAG;IACtB,KAAKjuD,KAAL,CAAW7ltB,iBAAX,CAA6B,MAAM;MAC/B7H,+CAAS,CAAC,KAAK66wB,SAAN,EAAiB,WAAjB,CAAT,CACKnwwB,IADL,CACU4ojB,yDAAS,CAAC,KAAKmnN,SAAN,CADnB,EAEKn5wB,SAFL,CAEgBuJ,KAAD,IAAW;QACtB,MAAMf,MAAM,GAAGe,KAAK,CAACf,MAArB;;QACA,IAAIA,MAAM,CAAC0xK,OAAP,KAAmB,OAAvB,EAAgC;UAC5B;QACH;;QACD3wK,KAAK,CAAC2hI,cAAN;MACH,CARD;IASH,CAVD;EAWH;;AAzT0B;;AA2T/B2toB,wBAAwB,CAACh3wB,IAAzB;EAAA,iBAAsHg3wB,wBAAtH,EAjtDwGtwvB,+DAitDxG,CAAgKA,oDAAhK,GAjtDwGA,+DAitDxG,CAAyLA,iDAAzL,GAjtDwGA,+DAitDxG,CAA+MqvvB,sBAA/M,GAjtDwGrvvB,+DAitDxG,CAAkPA,qDAAlP,GAjtDwGA,+DAitDxG,CAA4Q69jB,qDAA5Q;AAAA;;AACAyyL,wBAAwB,CAACjvvB,IAAzB,kBAltDwGrB,+DAktDxG;EAAA,MAA0GswvB,wBAA1G;EAAA;EAAA;IAAA;MAltDwGtwvB,yDAktDxG,SAA+nBomB,qDAA/nB;MAltDwGpmB,yDAktDxG,SAA4vBomB,qDAA5vB;MAltDwGpmB,yDAktDxG,SAA23BomB,qDAA33B;IAAA;;IAAA;MAAA;;MAltDwGpmB,4DAktDxG,MAltDwGA,yDAktDxG;MAltDwGA,4DAktDxG,MAltDwGA,yDAktDxG;MAltDwGA,4DAktDxG,MAltDwGA,yDAktDxG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WAltDwGA,kEAktDxG;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAltDwGA,6DAktDxG;MAltDwGA,wDAmtDhG,4DADR;MAltDwGA,4DAstDhG,gBAJR;MAltDwGA,uDAutD5F,mBALZ;MAltDwGA,4DAwtD5F,mBANZ;MAltDwGA,0DAytDxF,GAPhB;MAltDwGA,0DA0tD5F,IARZ;MAltDwGA,wDA4tDhG,4DAVR;IAAA;;IAAA;MAltDwGA,wDAmtD1F,4BADd;MAltDwGA,uDAutD9E,GAL1B;MAltDwGA,yDAutD9E,oCAL1B;MAltDwGA,uDAwtD9E,GAN1B;MAltDwGA,yDAwtD9E,6DAN1B;MAltDwGA,uDA4tD1F,GAVd;MAltDwGA,wDA4tD1F,4BAVd;IAAA;EAAA;EAAA,eAaiEwnqB,iDAbjE,EAaqKA,6DAbrK;EAAA;EAAA;AAAA;;AAcA;EAAA,mDAhuDwGxnqB,+DAguDxG,CAA4FswvB,wBAA5F,EAAkI,CAAC;IACvHt2wB,IAAI,EAAEimB,oDADiH;IAEvHtjB,IAAI,EAAE,CAAC;MACCswmB,eAAe,EAAE5H,yEADlB;MAEC9+jB,aAAa,EAAEnmB,iEAFhB;MAGCkB,QAAQ,EAAE,mBAHX;MAICC,QAAQ,EAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAjBmB,CAAD;EAFiH,CAAD,CAAlI,EAqB4B,YAAY;IAAE,OAAO,CAAC;MAAEvnB,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAAD,EAAyB;MAAE12mB,IAAI,EAAEgmB,iDAASpqB;IAAjB,CAAzB,EAA8C;MAAEoE,IAAI,EAAEq1wB;IAAR,CAA9C,EAAgF;MAAEr1wB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAhF,EAAyG;MAAEpsC,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QACtKrF,IAAI,EAAEnE,mDAAQA;MADwJ,CAAD,EAEtK;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACkhlB,qDAAD;MAFP,CAFsK;IAA/B,CAAzG,CAAP;EAKlB,CA1BxB,EA0B0C;IAAEzzhB,KAAK,EAAE,CAAC;MACpCpwD,IAAI,EAAEmmB,gDAAKA;IADyB,CAAD,CAAT;IAE1B4rvB,UAAU,EAAE,CAAC;MACb/xwB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAFc;IAI1BtU,QAAQ,EAAE,CAAC;MACX7R,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAJgB;IAM1B6xvB,QAAQ,EAAE,CAAC;MACXh4wB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CANgB;IAQ1BgzvB,YAAY,EAAE,CAAC;MACfn5wB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CARY;IAU1BqwvB,aAAa,EAAE,CAAC;MAChBx2wB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CAVW;IAY1BuzvB,cAAc,EAAE,CAAC;MACjB15wB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD,CAZU;IAc1BwzvB,cAAc,EAAE,CAAC;MACjB35wB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD,CAdU;IAgB1BswvB,WAAW,EAAE,CAAC;MACdz2wB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAhBa;IAkB1BhZ,MAAM,EAAE,CAAC;MACTnN,IAAI,EAAEqmB,iDAAMA;IADH,CAAD,CAlBkB;IAoB1BrT,MAAM,EAAE,CAAC;MACThT,IAAI,EAAEqmB,iDAAMA;IADH,CAAD,CApBkB;IAsB1BqwvB,WAAW,EAAE,CAAC;MACd12wB,IAAI,EAAEqmB,iDAAMA;IADE,CAAD,CAtBa;IAwB1BswvB,YAAY,EAAE,CAAC;MACf32wB,IAAI,EAAEqmB,iDAAMA;IADG,CAAD,CAxBY;IA0B1BqxvB,iBAAiB,EAAE,CAAC;MACpB13wB,IAAI,EAAEsrmB,oDADc;MAEpB3omB,IAAI,EAAE,CAAC,SAAD,EAAY;QAAEgU,IAAI,EAAEy1B,qDAAR;QAAoB+mkB,MAAM,EAAE;MAA5B,CAAZ;IAFc,CAAD,CA1BO;IA6B1BqkK,gBAAgB,EAAE,CAAC;MACnBx3wB,IAAI,EAAEsrmB,oDADa;MAEnB3omB,IAAI,EAAE,CAAC,QAAD,EAAW;QAAEgU,IAAI,EAAEy1B,qDAAR;QAAoB+mkB,MAAM,EAAE;MAA5B,CAAX;IAFa,CAAD,CA7BQ;IAgC1BmkK,iBAAiB,EAAE,CAAC;MACpBt3wB,IAAI,EAAEsrmB,oDADc;MAEpB3omB,IAAI,EAAE,CAAC,SAAD,EAAY;QAAEgU,IAAI,EAAEy1B,qDAAR;QAAoB+mkB,MAAM,EAAE;MAA5B,CAAZ;IAFc,CAAD;EAhCO,CA1B1C;AAAA;;AA+DA,MAAMymK,iBAAN,CAAwB;EACpBn9wB,WAAW,CAACmmmB,UAAD,EAAa;IACpB,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAKi3K,YAAL,GAAoB,IAAIx5N,yCAAJ,EAApB;IACA,KAAKy5N,SAAL,GAAiB,KAAjB;EACH;;EACW,IAAR91pB,QAAQ,GAAG;IAAE,OAAO,KAAK81pB,SAAZ;EAAwB;;EAC7B,IAAR91pB,QAAQ,CAAClnH,KAAD,EAAQ;IAAE,KAAKg9wB,SAAL,GAAiB,KAAKC,WAAL,CAAiBj9wB,KAAjB,CAAjB;EAA2C;;EACxD,IAAL0uH,KAAK,GAAG;IACR,OAAO,CAAC,KAAKo3e,UAAL,CAAgBnwkB,aAAhB,CAA8B+3V,WAA9B,IAA6C,EAA9C,EAAkDx3U,IAAlD,EAAP;EACH;;EACDvH,WAAW,CAACC,OAAD,EAAU;IACjB,IAAIA,OAAO,CAACs4E,QAAZ,EAAsB;MAClB,KAAK61pB,YAAL,CAAkBhrwB,IAAlB,CAAuB;QACnB/R,KAAK,EAAE,KAAKA,KADO;QAEnBknH,QAAQ,EAAE,KAAK81pB;MAFI,CAAvB;IAIH;EACJ;;EACD54H,kBAAkB,GAAG;IACjB,IAAI,KAAK11hB,KAAL,KAAe,KAAKwupB,cAAxB,EAAwC;MACpC,KAAKA,cAAL,GAAsB,KAAKxupB,KAA3B;MACA,KAAKqupB,YAAL,CAAkBhrwB,IAAlB,CAAuB;QACnB/R,KAAK,EAAE,KAAKA,KADO;QAEnBknH,QAAQ,EAAE,KAAK81pB,SAFI;QAGnBtupB,KAAK,EAAE,KAAKo3e,UAAL,CAAgBnwkB,aAAhB,CAA8BgzF;MAHlB,CAAvB;IAKH;EACJ;;EACDtgH,WAAW,GAAG;IACV,KAAK00wB,YAAL,CAAkBj4N,QAAlB;EACH;;EACDm4N,WAAW,CAACj9wB,KAAD,EAAQ;IACf,OAAOA,KAAK,IAAI,IAAT,IAAkB,GAAEA,KAAM,EAAT,KAAe,OAAvC;EACH;;AAlCmB;;AAoCxB88wB,iBAAiB,CAACt6wB,IAAlB;EAAA,iBAA+Gs6wB,iBAA/G,EAn0DwG5zvB,+DAm0DxG,CAAkJA,qDAAlJ;AAAA;;AACA4zvB,iBAAiB,CAACvyvB,IAAlB,kBAp0DwGrB,+DAo0DxG;EAAA,MAAmG4zvB,iBAAnG;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA,WAp0DwG5zvB,kEAo0DxG;EAAA;EAAA;EAAA;EAAA;IAAA;MAp0DwGA,6DAo0DxG;MAp0DwGA,0DAo0DqI,GAA7O;IAAA;EAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAr0DwGA,+DAq0DxG,CAA4F4zvB,iBAA5F,EAA2H,CAAC;IAChH55wB,IAAI,EAAEimB,oDAD0G;IAEhHtjB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE,WADX;MAEC2rlB,eAAe,EAAE5H,yEAFlB;MAGC9jlB,QAAQ,EAAG;IAHZ,CAAD;EAF0G,CAAD,CAA3H,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEvnB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,CAAP;EAAmC,CAP7E,EAO+F;IAAEtvC,KAAK,EAAE,CAAC;MACzFkD,IAAI,EAAEmmB,gDAAKA;IAD8E,CAAD,CAAT;IAE/E69F,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAEmmB,gDAAKA;IADA,CAAD;EAFqE,CAP/F;AAAA;;AAaA,MAAM8zvB,cAAN,CAAqB;EACjBx9wB,WAAW,GAAG;IACV,KAAKy9wB,YAAL,GAAoB,gBAApB;IACA,KAAKC,gBAAL,GAAwB,gBAAxB;IACA,KAAKC,UAAL,GAAkB,UAAlB;IACA,KAAKC,WAAL,GAAmB,YAAnB;IACA,KAAKC,YAAL,GAAoB,WAApB;IACA,KAAKC,oBAAL,GAA4B,IAA5B;IACA,KAAKC,WAAL,GAAmB,IAAnB;IACA,KAAKC,UAAL,GAAkB,WAAlB;EACH;;AAVgB;;AAYrBR,cAAc,CAAC36wB,IAAf;EAAA,iBAA4G26wB,cAA5G;AAAA;;AACAA,cAAc,CAACx6wB,KAAf,kBA/1DwGumB,gEA+1DxG;EAAA,OAAgHi0vB,cAAhH;EAAA,SAAgHA,cAAhH;EAAA,YAA4I;AAA5I;;AACA;EAAA,mDAh2DwGj0vB,+DAg2DxG,CAA4Fi0vB,cAA5F,EAAwH,CAAC;IAC7Gj6wB,IAAI,EAAEtE,qDADuG;IAE7GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFuG,CAAD,CAAxH;AAAA;;AAKA,MAAM22L,cAAN,CAAqB;EACjBpouB,IAAI,CAACg4E,OAAD,EAAU;IACVj4E,OAAO,CAACC,IAAR,CAAag4E,OAAb;EACH;;AAHgB;;AAKrBowpB,cAAc,CAACp7wB,IAAf;EAAA,iBAA4Go7wB,cAA5G;AAAA;;AACAA,cAAc,CAACj7wB,KAAf,kBA32DwGumB,gEA22DxG;EAAA,OAAgH00vB,cAAhH;EAAA,SAAgHA,cAAhH;EAAA,YAA4I;AAA5I;;AACA;EAAA,mDA52DwG10vB,+DA42DxG,CAA4F00vB,cAA5F,EAAwH,CAAC;IAC7G16wB,IAAI,EAAEtE,qDADuG;IAE7GiH,IAAI,EAAE,CAAC;MAAEohlB,UAAU,EAAE;IAAd,CAAD;EAFuG,CAAD,CAAxH;AAAA;;AAKA,MAAM42L,uBAAuB,GAAG,IAAIj3L,yDAAJ,CAAmB,2BAAnB,CAAhC;;AACA,MAAMk3L,iBAAN,CAAwB;EACpBn+wB,WAAW,CAACo7O,OAAD,EAAUgjiB,SAAV,EAAqB9toB,MAArB,EAA6B+toB,iBAA7B,EAAgDjgD,WAAhD,EAA6DyF,GAA7D,EAAkEz0D,QAAlE,EAA4E;IACnF,KAAKh0b,OAAL,GAAeA,OAAf;IACA,KAAKgjiB,SAAL,GAAiBA,SAAjB;IACA,KAAK9toB,MAAL,GAAcA,MAAd;IACA,KAAKuzlB,GAAL,GAAWA,GAAX;IACA,KAAKz0D,QAAL,GAAgBA,QAAhB;IACA,KAAKkvG,SAAL,GAAiB,IAAjB;IACA,KAAKC,gBAAL,GAAwB,MAAxB;IACA,KAAKvvR,OAAL,GAAe,KAAf;IACA,KAAKwvR,aAAL,GAAqB,IAArB;IACA,KAAKhJ,YAAL,GAAoB,KAApB;IACA,KAAKiJ,WAAL,GAAmB,KAAnB;IACA,KAAK/B,YAAL,GAAoB,CAApB;IACA,KAAK/D,eAAL,GAAuB,KAAvB;IACA,KAAKvC,sBAAL,GAA8B,IAA9B;IACA,KAAKc,QAAL,GAAgB,IAAhB;IACA,KAAKllD,SAAL,GAAiB,IAAjB;IACA,KAAK0sD,gBAAL,GAAwB,IAAxB;IACA,KAAKC,UAAL,GAAkB,IAAlB;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,QAAL,GAAgB,KAAhB;IACA,KAAKC,oBAAL,GAA4B,IAA5B;IACA,KAAKC,aAAL,GAAqB,CAArB;IACA,KAAKC,kBAAL,GAA0B,KAA1B;;IACA,KAAKC,SAAL,GAAkBn5sB,CAAD,IAAO,IAAxB;;IACA,KAAK4vsB,QAAL,GAAgB,KAAhB;IACA,KAAKlzB,MAAL,GAAc,KAAd;IACA,KAAK08B,UAAL,GAAkB,IAAlB;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAK99T,MAAL,GAAc,KAAd,CA7BmF,CA8BnF;;IACA,KAAK+9T,SAAL,GAAiB,IAAIlgxB,uDAAJ,EAAjB;IACA,KAAK0sN,UAAL,GAAkB,IAAI1sN,uDAAJ,EAAlB;IACA,KAAKgjmB,WAAL,GAAmB,IAAIhjmB,uDAAJ,EAAnB;IACA,KAAKmgxB,SAAL,GAAiB,IAAIngxB,uDAAJ,EAAjB;IACA,KAAKogxB,UAAL,GAAkB,IAAIpgxB,uDAAJ,EAAlB;IACA,KAAKqgxB,WAAL,GAAmB,IAAIrgxB,uDAAJ,EAAnB;IACA,KAAKsgxB,UAAL,GAAkB,IAAItgxB,uDAAJ,EAAlB;IACA,KAAKugxB,QAAL,GAAgB,IAAIvgxB,uDAAJ,EAAhB;IACA,KAAKwgxB,WAAL,GAAmB,IAAIxgxB,uDAAJ,EAAnB;IACA,KAAKqX,MAAL,GAAc,IAAIrX,uDAAJ,EAAd;IACA,KAAK+6wB,WAAL,GAAmB,IAAI/6wB,uDAAJ,EAAnB;IACA,KAAKygxB,eAAL,GAAuB,IAAvB;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKC,UAAL,GAAkB,IAAlB;IACA,KAAK3H,UAAL,GAAkBxD,KAAK,EAAvB;IACA,KAAKf,UAAL,GAAkB,IAAlB;IACA,KAAKqB,MAAL,GAAc,EAAd;IACA,KAAK8K,aAAL,GAAqB,OAArB;IACA,KAAKC,YAAL,GAAoB,EAApB;IACA,KAAKC,YAAL,GAAoB,KAApB;IACA,KAAK7F,SAAL,GAAiB,IAAIv2N,yCAAJ,EAAjB;IACA,KAAKq8N,UAAL,GAAkB,IAAIr8N,yCAAJ,EAAlB;;IACA,KAAKqrL,SAAL,GAAkBnpqB,CAAD,IAAO,CAAG,CAA3B;;IACA,KAAKo6sB,UAAL,GAAkB,MAAM,CAAG,CAA3B;;IACA,KAAKC,SAAL,GAAkBn3vB,IAAD,IAAU;MACvB,MAAMmrH,MAAM,GAAG,KAAKkhoB,aAAL,CAAmBnzvB,IAAnB,CAAwB3O,CAAC,IAAIA,CAAC,CAAClT,KAAF,KAAY2oB,IAAzC,CAAf;MACA,KAAKstvB,QAAL,CAAcnioB,MAAd;IACH,CAHD;;IAIA,KAAKisoB,aAAL,GAAqB,CAACt6sB,CAAD,EAAI98C,IAAJ,KAAa;MAC9B,IAAI,KAAKgpsB,SAAT,EAAoB;QAChB,OAAO,KAAKA,SAAL,CAAehpsB,IAAI,CAAC3oB,KAApB,CAAP;MACH;;MACD,OAAO2oB,IAAP;IACH,CALD;;IAMA,KAAKq3vB,kBAAL,CAAwB/voB,MAAxB;;IACA,KAAKgwoB,SAAL,GAAiB,IAAIzL,SAAJ,CAAc,IAAd,EAAoBwJ,iBAAiB,EAArC,CAAjB;IACA,KAAK1vwB,OAAL,GAAeyvtB,WAAW,CAACposB,aAA3B;EACH;;EACQ,IAAL29B,KAAK,GAAG;IAAE,OAAO,KAAKqhtB,MAAZ;EAAqB;;EAE1B,IAALrhtB,KAAK,CAACtzD,KAAD,EAAQ;IACb,IAAIA,KAAK,KAAK,IAAd,EAAoB;MAChBA,KAAK,GAAG,EAAR;IACH;;IACD,KAAKkgxB,aAAL,GAAqB,IAArB;IACA,KAAKvL,MAAL,GAAc30wB,KAAd;EACH;;EAEc,IAAX+qlB,WAAW,GAAG;IAAE,OAAO,KAAK4oJ,YAAZ;EAA2B;;EAChC,IAAX5oJ,WAAW,CAACnqlB,EAAD,EAAK;IAChB,IAAIA,EAAE,KAAKmB,SAAP,IAAoBnB,EAAE,KAAK,IAA3B,IAAmC,CAACu1C,UAAU,CAACv1C,EAAD,CAAlD,EAAwD;MACpD,MAAMX,KAAK,CAAC,mCAAD,CAAX;IACH;;IACD,KAAK0zuB,YAAL,GAAoB/yuB,EAApB;EACH;;EACmB,IAAhBu/wB,gBAAgB,GAAG;IACnB,IAAI5M,SAAS,CAAC,KAAK6M,iBAAN,CAAb,EAAuC;MACnC,OAAO,KAAKA,iBAAZ;IACH,CAFD,MAGK,IAAI7M,SAAS,CAAC,KAAKtjoB,MAAL,CAAYkwoB,gBAAb,CAAb,EAA6C;MAC9C,OAAO,KAAKlwoB,MAAL,CAAYkwoB,gBAAnB;IACH;;IACD,OAAO,KAAKhC,aAAZ;EACH;;EAEmB,IAAhBgC,gBAAgB,CAACngxB,KAAD,EAAQ;IACxB,KAAKogxB,iBAAL,GAAyBpgxB,KAAzB;EACH;;EAEW,IAARknH,QAAQ,GAAG;IAAE,OAAO,KAAKs3pB,QAAL,IAAiB,KAAKxB,SAA7B;EAAyC;;EAE9C,IAARqD,QAAQ,GAAG;IAAE,OAAQ,CAAC,CAAC,KAAKb,UAAP,IAAqB,KAAKX,UAA1B,IAAwC,KAAKc,YAArD;EAAqE;;EAE5E,IAANW,MAAM,GAAG;IAAE,OAAO,CAAC,KAAKjL,QAAb;EAAwB;;EAEhB,IAAnBkL,mBAAmB,GAAG;IACtB,OAAO,KAAK5B,kBAAL,IAA2B,CAAC,KAAKtJ,QAAxC;EACH;;EACgB,IAAbL,aAAa,GAAG;IAChB,OAAO,KAAKiL,SAAL,CAAejL,aAAtB;EACH;;EACiB,IAAdprR,cAAc,GAAG;IACjB,OAAO,KAAKorR,aAAL,CAAmBprwB,GAAnB,CAAuBsJ,CAAC,IAAIA,CAAC,CAAClT,KAA9B,CAAP;EACH;;EACW,IAAR0uJ,QAAQ,GAAG;IACX,OAAO,KAAKsmnB,aAAL,CAAmBzzwB,MAAnB,GAA4B,CAAnC;EACH;;EACuB,IAApBi/wB,oBAAoB,GAAG;IACvB,IAAI,KAAKC,aAAT,EAAwB;MACpB,OAAO,KAAKA,aAAL,CAAmBh4hB,eAA1B;IACH;;IACD,OAAO1mP,SAAP;EACH;;EACDgsmB,QAAQ,GAAG;IACP,KAAK2yK,iBAAL;;IACA,KAAKC,mBAAL;EACH;;EACDhyuB,WAAW,CAACC,OAAD,EAAU;IACjB,IAAIA,OAAO,CAACymuB,QAAZ,EAAsB;MAClB,KAAK4K,SAAL,CAAenK,aAAf;IACH;;IACD,IAAIlnuB,OAAO,CAAC0kB,KAAZ,EAAmB;MACf,KAAKsttB,SAAL,CAAehyuB,OAAO,CAAC0kB,KAAR,CAAcyU,YAAd,IAA8B,EAA7C;IACH;;IACD,IAAIn5B,OAAO,CAACoya,MAAZ,EAAoB;MAChB,KAAK6/T,WAAL,GAAmBtN,SAAS,CAAC3kuB,OAAO,CAACoya,MAAR,CAAej5Y,YAAhB,CAA5B;IACH;EACJ;;EACDj6B,eAAe,GAAG;IACd,IAAI,CAAC,KAAKoyuB,aAAV,EAAyB;MACrB,KAAK5M,UAAL,GAAkB,KAAlB;;MACA,KAAKwN,sBAAL;IACH;;IACD,IAAIvN,SAAS,CAAC,KAAKwK,SAAN,CAAb,EAA+B;MAC3B,KAAK9zpB,KAAL;IACH;EACJ;;EACD5hH,WAAW,GAAG;IACV,KAAKyxwB,SAAL,CAAe/nwB,IAAf;;IACA,KAAK+nwB,SAAL,CAAeh1N,QAAf;EACH;;EACD54a,aAAa,CAACmimB,MAAD,EAAS;IAClB,MAAMj0mB,OAAO,GAAG7C,OAAO,CAAC82mB,MAAM,CAACp9P,KAAR,CAAvB;;IACA,IAAI72W,OAAJ,EAAa;MACT,IAAI,KAAKwkpB,SAAL,CAAevwC,MAAf,MAA2B,KAA/B,EAAsC;QAClC;MACH;;MACD,KAAK0yC,aAAL,CAAmB1yC,MAAnB;IACH,CALD,MAMK,IAAIA,MAAM,CAACzsuB,GAAP,IAAcysuB,MAAM,CAACzsuB,GAAP,CAAWL,MAAX,KAAsB,CAAxC,EAA2C;MAC5C,KAAKq+wB,UAAL,CAAgB7twB,IAAhB,CAAqBs8tB,MAAM,CAACzsuB,GAAP,CAAWouE,iBAAX,EAArB;IACH;EACJ;;EACD+wsB,aAAa,CAAC1yC,MAAD,EAAS;IAClB,QAAQA,MAAM,CAACp9P,KAAf;MACI,KAAK15W,OAAO,CAACyppB,SAAb;QACI,KAAKC,gBAAL,CAAsB5yC,MAAtB;;QACA;;MACJ,KAAK92mB,OAAO,CAAC2ppB,OAAb;QACI,KAAKC,cAAL,CAAoB9yC,MAApB;;QACA;;MACJ,KAAK92mB,OAAO,CAAC6ppB,KAAb;QACI,KAAKC,YAAL,CAAkBhzC,MAAlB;;QACA;;MACJ,KAAK92mB,OAAO,CAAC+ppB,KAAb;QACI,KAAKC,YAAL,CAAkBlzC,MAAlB;;QACA;;MACJ,KAAK92mB,OAAO,CAACiqpB,GAAb;QACI,KAAKC,UAAL,CAAgBpzC,MAAhB;;QACA;;MACJ,KAAK92mB,OAAO,CAACmqpB,GAAb;QACI,KAAK9spB,KAAL;QACAy5mB,MAAM,CAACximB,cAAP;QACA;;MACJ,KAAKtU,OAAO,CAACoqpB,SAAb;QACI,KAAKC,gBAAL;;QACA;IAtBR;EAwBH;;EACDC,eAAe,CAACxzC,MAAD,EAAS;IACpB,MAAMlluB,MAAM,GAAGkluB,MAAM,CAAClluB,MAAtB;;IACA,IAAIA,MAAM,CAAC0xK,OAAP,KAAmB,OAAvB,EAAgC;MAC5BwzjB,MAAM,CAACximB,cAAP;IACH;;IACD,IAAI1iI,MAAM,CAACm9G,SAAP,CAAiB30G,QAAjB,CAA0B,kBAA1B,CAAJ,EAAmD;MAC/C,KAAKmwwB,gBAAL;MACA;IACH;;IACD,IAAI34wB,MAAM,CAACm9G,SAAP,CAAiB30G,QAAjB,CAA0B,kBAA1B,CAAJ,EAAmD;MAC/C,KAAKowwB,gBAAL;MACA;IACH;;IACD,IAAI54wB,MAAM,CAACm9G,SAAP,CAAiB30G,QAAjB,CAA0B,eAA1B,CAAJ,EAAgD;MAC5C;IACH;;IACD,IAAI,CAAC,KAAKw/L,OAAV,EAAmB;MACf,KAAKlnF,KAAL;IACH;;IACD,IAAI,KAAK40pB,UAAT,EAAqB;MACjB,KAAKzzqB,IAAL;IACH,CAFD,MAGK;MACD,KAAKmb,MAAL;IACH;EACJ;;EACDw7pB,gBAAgB,GAAG;IACf,IAAI,KAAK/gU,MAAT,EAAiB;MACb,KAAKpsV,KAAL;IACH,CAFD,MAGK;MACD,KAAKxpB,IAAL;IACH;EACJ;;EACD02qB,gBAAgB,GAAG;IACf,IAAI,KAAKpznB,QAAT,EAAmB;MACf,KAAKuxnB,SAAL,CAAenK,aAAf,CAA6B,IAA7B;;MACA,KAAKkM,cAAL;IACH;;IACD,KAAKC,YAAL;;IACA,KAAKh4pB,KAAL;IACA,KAAKk1pB,UAAL,CAAgB33wB,IAAhB;;IACA,KAAK06wB,mBAAL;EACH;;EACDC,UAAU,GAAG;IACT,IAAI,CAAC,KAAKrD,SAAV,EAAqB;MACjB;IACH;;IACD,KAAKmB,SAAL,CAAenK,aAAf;;IACA,KAAKkM,cAAL;EACH;;EACDxjD,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKigxB,SAAL,CAAenK,aAAf;;IACA,KAAKsM,iBAAL,CAAuBpixB,KAAvB;;IACA,KAAKwjuB,GAAL,CAASztH,YAAT;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKguuB,SAAL,GAAiBhuuB,EAAjB;EACH;;EACDq9tB,iBAAiB,CAACr9tB,EAAD,EAAK;IAClB,KAAKi/wB,UAAL,GAAkBj/wB,EAAlB;EACH;;EACDu9tB,gBAAgB,CAACjvtB,KAAD,EAAQ;IACpB,KAAK8twB,SAAL,GAAiB9twB,KAAjB;;IACA,KAAKs0tB,GAAL,CAASztH,YAAT;EACH;;EACDxvf,MAAM,GAAG;IACL,IAAI,CAAC,KAAKy6V,MAAV,EAAkB;MACd,KAAK51W,IAAL;IACH,CAFD,MAGK;MACD,KAAKwpB,KAAL;IACH;EACJ;;EACDxpB,IAAI,GAAG;IACH,IAAI,KAAK8b,QAAL,IAAiB,KAAK85V,MAAtB,IAAgC,KAAK6/T,WAAzC,EAAsD;MAClD;IACH;;IACD,IAAI,CAAC,KAAKwB,YAAN,IAAsB,CAAC,KAAKlgC,MAA5B,IAAsC,KAAK89B,SAAL,CAAe/K,eAAzD,EAA0E;MACtE;IACH;;IACD,KAAKl0T,MAAL,GAAc,IAAd;IACA,KAAKi/T,SAAL,CAAe3I,qBAAf,CAAqC,KAAK2G,SAA1C;IACA,KAAKe,SAAL,CAAex3wB,IAAf;;IACA,IAAI,CAAC,KAAKg4wB,UAAV,EAAsB;MAClB,KAAKv1pB,KAAL;IACH;;IACD,KAAKv1F,aAAL;EACH;;EACDkgG,KAAK,GAAG;IACJ,IAAI,CAAC,KAAKosV,MAAN,IAAgB,KAAK6/T,WAAzB,EAAsC;MAClC;IACH;;IACD,KAAK7/T,MAAL,GAAc,KAAd;IACA,KAAK2+T,YAAL,GAAoB,KAApB;;IACA,IAAI,CAAC,KAAKY,mBAAV,EAA+B;MAC3B,KAAK0B,YAAL;IACH,CAFD,MAGK;MACD,KAAKhC,SAAL,CAAevJ,kBAAf;IACH;;IACD,KAAKuJ,SAAL,CAAehJ,UAAf;;IACA,KAAK4I,UAAL;;IACA,KAAKZ,UAAL,CAAgBz3wB,IAAhB;;IACA,KAAKg8tB,GAAL,CAASztH,YAAT;EACH;;EACDusK,UAAU,CAAC35vB,IAAD,EAAO;IACb,IAAI,CAACA,IAAD,IAASA,IAAI,CAACu+F,QAAd,IAA0B,KAAKA,QAAnC,EAA6C;MACzC;IACH;;IACD,IAAI,KAAKmupB,QAAL,IAAiB1svB,IAAI,CAAC4nG,QAA1B,EAAoC;MAChC,KAAK0lpB,QAAL,CAActtvB,IAAd;IACH,CAFD,MAGK;MACD,KAAKurC,MAAL,CAAYvrC,IAAZ;IACH;;IACD,IAAI,KAAK43vB,mBAAT,EAA8B;MAC1B,KAAKgC,uBAAL;IACH;;IACD,KAAKL,mBAAL;EACH;;EACDhutB,MAAM,CAACvrC,IAAD,EAAO;IACT,IAAI,CAACA,IAAI,CAAC4nG,QAAV,EAAoB;MAChB,KAAK0vpB,SAAL,CAAe/rtB,MAAf,CAAsBvrC,IAAtB;;MACA,IAAI,KAAKw3vB,gBAAL,IAAyB,CAAC,KAAKI,mBAAnC,EAAwD;QACpD,KAAK0B,YAAL;MACH;;MACD,KAAKD,cAAL;;MACA,IAAI,KAAK3M,QAAT,EAAmB;QACf,KAAK+J,QAAL,CAAc53wB,IAAd,CAAmBmhB,IAAI,CAAC3oB,KAAxB;MACH;IACJ;;IACD,IAAI,KAAKm+wB,aAAL,IAAsB,KAAK8B,SAAL,CAAe/K,eAAzC,EAA0D;MACtD,KAAKtgpB,KAAL;IACH;EACJ;;EACD3K,KAAK,GAAG;IACJ,KAAKu4pB,WAAL,CAAiB7svB,aAAjB,CAA+Bs0F,KAA/B;EACH;;EACDwgQ,IAAI,GAAG;IACH,KAAK+3Z,WAAL,CAAiB7svB,aAAjB,CAA+B80V,IAA/B;EACH;;EACDwrZ,QAAQ,CAACttvB,IAAD,EAAO;IACX,IAAI,CAACA,IAAL,EAAW;MACP;IACH;;IACD,KAAKs3vB,SAAL,CAAehK,QAAf,CAAwBttvB,IAAxB;IACA,KAAKshG,KAAL;;IACA,KAAK+3pB,cAAL;;IACA,KAAK3C,WAAL,CAAiB73wB,IAAjB,CAAsBmhB,IAAtB;EACH;;EACD85vB,SAAS,GAAG;IACR,IAAI79Z,GAAJ;;IACA,IAAIzuU,UAAU,CAAC,KAAKgssB,MAAN,CAAd,EAA6B;MACzBv9X,GAAG,GAAG,KAAKu9X,MAAL,CAAY,KAAKq9B,UAAjB,CAAN;IACH,CAFD,MAGK;MACD56Z,GAAG,GAAG,KAAK89Z,UAAL,GAAkB,KAAKlD,UAAvB,GAAoC;QAAE,CAAC,KAAKjJ,SAAN,GAAkB,KAAKiJ;MAAzB,CAA1C;IACH;;IACD,MAAMmD,SAAS,GAAIh6vB,IAAD,IAAU,KAAK05vB,YAAL,IAAqB,CAAC,KAAKrhU,MAA3B,GAAoC,KAAKi/T,SAAL,CAAexK,OAAf,CAAuB9svB,IAAvB,EAA6B,IAA7B,CAApC,GAAyE,KAAKs3vB,SAAL,CAAe33hB,OAAf,CAAuB3/N,IAAvB,CAArG;;IACA,IAAI+iiB,SAAS,CAAC9mM,GAAD,CAAb,EAAoB;MAChBA,GAAG,CAACzzW,IAAJ,CAASwX,IAAI,IAAI,KAAKurC,MAAL,CAAYyutB,SAAS,CAACh6vB,IAAD,CAArB,CAAjB,EAA+C+uS,KAA/C,CAAqD,MAAM,CAAG,CAA9D;IACH,CAFD,MAGK,IAAIktD,GAAJ,EAAS;MACV,KAAK1wT,MAAL,CAAYyutB,SAAS,CAAC/9Z,GAAD,CAArB;IACH;EACJ;;EACDg+Z,SAAS,GAAG;IACR,OAAO,KAAK9D,SAAL,KAAmB,KAAKpwnB,QAAL,IAAiB,KAAK8wnB,UAAzC,KAAwD,CAAC,KAAKt4pB,QAArE;EACH;;EACa,IAAV27pB,UAAU,GAAG;IACb,IAAI,CAAC,KAAKC,UAAV,EAAsB;MAClB,OAAO,KAAP;IACH;;IACD,MAAMlM,IAAI,GAAG,KAAK4I,UAAL,CAAgBrowB,WAAhB,GAA8B++B,IAA9B,EAAb;IACA,OAAO,KAAKissB,MAAL,IACF,CAAC,KAAK89B,SAAL,CAAenL,aAAf,CAA6BzmwB,IAA7B,CAAkC6E,CAAC,IAAIA,CAAC,CAACw7G,KAAF,CAAQv3G,WAAR,OAA0By/vB,IAAjE,CAAD,KACI,CAAC,KAAKzB,YAAN,IAAsB,KAAKn0T,MAA3B,IAAqC,CAAC,KAAKg0T,aAAL,CAAmB3mwB,IAAnB,CAAwB6E,CAAC,IAAIA,CAAC,CAACw7G,KAAF,CAAQv3G,WAAR,OAA0By/vB,IAAvD,CAD1C,CADE,IAGH,CAAC,KAAKjoR,OAHV;EAIH;;EACDo0R,gBAAgB,GAAG;IACf,MAAM94oB,KAAK,GAAG,KAAKg2oB,SAAL,CAAenL,aAAf,CAA6BvzwB,MAA7B,KAAwC,CAAtD;IACA,OAAO,CAAE0oI,KAAK,IAAI,CAAC,KAAKo4oB,YAAf,IAA+B,CAAC,KAAK1zR,OAAtC,IACH1kX,KAAK,IAAI,KAAKo4oB,YAAd,IAA8B,KAAKS,UAAnC,IAAiD,CAAC,KAAKn0R,OADrD,KAEH,CAAC,KAAKk0R,UAFV;EAGH;;EACDG,gBAAgB,GAAG;IACf,MAAM/4oB,KAAK,GAAG,KAAKg2oB,SAAL,CAAenL,aAAf,CAA6BvzwB,MAA7B,KAAwC,CAAtD;IACA,OAAO0oI,KAAK,IAAI,KAAKo4oB,YAAd,IAA8B,CAAC,KAAKS,UAApC,IAAkD,CAAC,KAAKn0R,OAA/D;EACH;;EACDs0R,kBAAkB,GAAG;IACjB,KAAKtD,YAAL,GAAoB,IAApB;EACH;;EACDuD,gBAAgB,CAACtM,IAAD,EAAO;IACnB,KAAK+I,YAAL,GAAoB,KAApB;;IACA,IAAI,KAAKlB,oBAAT,EAA+B;MAC3B;IACH;;IACD,KAAKl/wB,MAAL,CAAYq3wB,IAAZ;EACH;;EACDr3wB,MAAM,CAACq3wB,IAAD,EAAO;IACT,IAAI,KAAK+I,YAAL,IAAqB,CAAC,KAAKlB,oBAA/B,EAAqD;MACjD;IACH;;IACD,KAAKe,UAAL,GAAkB5I,IAAlB;;IACA,IAAI,KAAKyL,YAAL,KAAsB,KAAKS,UAAL,IAAmB,KAAKpE,aAAL,KAAuB,CAAhE,CAAJ,EAAwE;MACpE,KAAKyE,SAAL,CAAepxwB,IAAf,CAAoB6kwB,IAApB;IACH;;IACD,IAAI,CAAC,KAAKyL,YAAV,EAAwB;MACpB,KAAKpC,SAAL,CAAe1gxB,MAAf,CAAsB,KAAKigxB,UAA3B;;MACA,IAAI,KAAKx+T,MAAT,EAAiB;QACb,KAAKi/T,SAAL,CAAe3I,qBAAf,CAAqC,KAAK2G,SAA1C;MACH;IACJ;;IACD,KAAKiB,WAAL,CAAiB13wB,IAAjB,CAAsB;MAAEovwB,IAAF;MAAQtjtB,KAAK,EAAE,KAAK2stB,SAAL,CAAenL,aAAf,CAA6BlrwB,GAA7B,CAAiCsJ,CAAC,IAAIA,CAAC,CAAClT,KAAxC;IAAf,CAAtB;IACA,KAAKorG,IAAL;EACH;;EACDg4qB,YAAY,CAAC/0C,MAAD,EAAS;IACjB,IAAI,KAAKl9hB,OAAT,EAAkB;MACd;IACH;;IACD,IAAI,KAAKovkB,mBAAT,EAA8B;MAC1B,KAAKgC,uBAAL;IACH;;IACD,KAAKj0wB,OAAL,CAAag4G,SAAb,CAAuBp+F,GAAvB,CAA2B,mBAA3B;IACA,KAAKqjM,UAAL,CAAgB/jN,IAAhB,CAAqB6muB,MAArB;IACA,KAAKl9hB,OAAL,GAAe,IAAf;EACH;;EACDkykB,WAAW,CAACh1C,MAAD,EAAS;IAChB,KAAK//tB,OAAL,CAAag4G,SAAb,CAAuByb,MAAvB,CAA8B,mBAA9B;IACA,KAAKg9oB,SAAL,CAAev3wB,IAAf,CAAoB6muB,MAApB;;IACA,IAAI,CAAC,KAAKrtR,MAAN,IAAgB,CAAC,KAAK95V,QAA1B,EAAoC;MAChC,KAAK24pB,UAAL;IACH;;IACD,IAAI,KAAKU,mBAAT,EAA8B;MAC1B,KAAKgC,uBAAL;IACH;;IACD,KAAKpxkB,OAAL,GAAe,KAAf;EACH;;EACDmykB,WAAW,CAAC36vB,IAAD,EAAO;IACd,IAAIA,IAAI,CAACu+F,QAAT,EAAmB;MACf;IACH;;IACD,KAAK+4pB,SAAL,CAAe5I,QAAf,CAAwB1uvB,IAAxB;EACH;;EACD+L,aAAa,GAAG;IACZ,IAAI,CAAC,KAAK8usB,GAAL,CAASjrrB,SAAd,EAAyB;MACrB,KAAKirrB,GAAL,CAAS9usB,aAAT;IACH;EACJ;;EACD6tvB,uBAAuB,GAAG;IACtB,MAAMhypB,QAAQ,GAAG,KAAKykpB,aAAL,IAAsB,KAAKA,aAAL,CAAmB,CAAnB,CAAvC;IACA,KAAKwK,UAAL,GAAmBjvpB,QAAQ,IAAIA,QAAQ,CAAC7B,KAAtB,IAAgC,IAAlD;EACH;;EACDkypB,SAAS,CAACtttB,KAAD,EAAQ;IACb,MAAMiwtB,SAAS,GAAGjwtB,KAAK,CAAC,CAAD,CAAvB;IACA,KAAKijtB,SAAL,GAAiB,KAAKA,SAAL,IAAkB,KAAKkJ,aAAxC;IACA,KAAKiD,UAAL,GAAkBnP,SAAS,CAACgQ,SAAD,CAAT,GAAuB,CAAC/6Z,QAAQ,CAAC+6Z,SAAD,CAAhC,GAA8C,KAAKb,UAAL,IAAmB,KAAKnM,SAAL,KAAmB,KAAKkJ,aAA3G;IACA,KAAKQ,SAAL,CAAezK,QAAf,CAAwBlitB,KAAxB;;IACA,IAAIA,KAAK,CAAC/xD,MAAN,GAAe,CAAf,IAAoB,KAAKmtJ,QAA7B,EAAuC;MACnC,KAAKuxnB,SAAL,CAAenI,gBAAf;IACH;;IACD,IAAI,KAAK92T,MAAL,IAAeuyT,SAAS,CAAC,KAAKiM,UAAN,CAAxB,IAA6C,CAAC,KAAK6C,YAAvD,EAAqE;MACjE,KAAKpC,SAAL,CAAe1gxB,MAAf,CAAsB,KAAKigxB,UAA3B;IACH;;IACD,IAAI,KAAK6C,YAAL,IAAqB,KAAKrhU,MAA9B,EAAsC;MAClC,KAAKi/T,SAAL,CAAe3I,qBAAf,CAAqC,KAAK2G,SAA1C;IACH;EACJ;;EACD6C,sBAAsB,GAAG;IACrB,MAAM0C,YAAY,GAAI/ixB,OAAD,IAAa;MAC9B,KAAK6yD,KAAL,GAAa7yD,OAAO,CAACmJ,GAAR,CAAYkqI,MAAM,KAAK;QAChC6joB,cAAc,EAAE7joB,MAAM,CAAC9zI,KADS;QAEhC03wB,cAAc,EAAE5joB,MAAM,CAACgyd,UAAP,CAAkBnwkB,aAAlB,CAAgCgzF,SAFhB;QAGhCzB,QAAQ,EAAE4sB,MAAM,CAAC5sB;MAHe,CAAL,CAAlB,CAAb;MAKA,KAAK+4pB,SAAL,CAAezK,QAAf,CAAwB,KAAKlitB,KAA7B;;MACA,IAAI,KAAKo7F,QAAT,EAAmB;QACf,KAAKuxnB,SAAL,CAAenI,gBAAf;MACH;;MACD,KAAKpjvB,aAAL;IACH,CAXD;;IAYA,MAAM+uvB,kBAAkB,GAAG,MAAM;MAC7B,MAAMC,kBAAkB,GAAGpkxB,2CAAK,CAAC,KAAKqkxB,SAAL,CAAe/0uB,OAAhB,EAAyB,KAAKkruB,SAA9B,CAAhC;MACAx6wB,2CAAK,CAAC,GAAG,KAAKqkxB,SAAL,CAAe/5wB,GAAf,CAAmBkqI,MAAM,IAAIA,MAAM,CAACipoB,YAApC,CAAJ,CAAL,CACKhzwB,IADL,CACU4ojB,yDAAS,CAAC+wN,kBAAD,CADnB,EAEK/ixB,SAFL,CAEemzI,MAAM,IAAI;QACrB,MAAMnrH,IAAI,GAAG,KAAKs3vB,SAAL,CAAe9J,QAAf,CAAwBrioB,MAAM,CAAC9zI,KAA/B,CAAb;QACA2oB,IAAI,CAACu+F,QAAL,GAAgB4sB,MAAM,CAAC5sB,QAAvB;QACAv+F,IAAI,CAAC+lG,KAAL,GAAaolB,MAAM,CAACplB,KAAP,IAAgB/lG,IAAI,CAAC+lG,KAAlC;;QACA,KAAK80mB,GAAL,CAAS9usB,aAAT;MACH,CAPD;IAQH,CAVD;;IAWA,KAAKivvB,SAAL,CAAe/0uB,OAAf,CACK7kC,IADL,CACUqojB,yDAAS,CAAC,KAAKuxN,SAAN,CADnB,EACqChxN,yDAAS,CAAC,KAAKmnN,SAAN,CAD9C,EAEKn5wB,SAFL,CAEeF,OAAO,IAAI;MACtB,KAAK81wB,SAAL,GAAiB,KAAKkJ,aAAtB;MACA+D,YAAY,CAAC/ixB,OAAD,CAAZ;MACAgjxB,kBAAkB;IACrB,CAND;EAOH;;EACDG,kBAAkB,CAAC5jxB,KAAD,EAAQ;IACtB,IAAI,CAACuzwB,SAAS,CAACvzwB,KAAD,CAAV,IAAsB,KAAKq1wB,QAAL,IAAiBr1wB,KAAK,KAAK,EAAjD,IAAwDyE,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,KAAwBA,KAAK,CAACuB,MAAN,KAAiB,CAArG,EAAwG;MACpG,OAAO,KAAP;IACH;;IACD,MAAMsixB,eAAe,GAAIl7vB,IAAD,IAAU;MAC9B,IAAI,CAAC4qvB,SAAS,CAAC,KAAKxoL,WAAN,CAAV,IAAgCviO,QAAQ,CAAC7/V,IAAD,CAAxC,IAAkD,KAAK0tvB,SAA3D,EAAsE;QAClE,KAAKtnG,QAAL,CAAcv5nB,IAAd,CAAoB,kBAAiB3E,IAAI,CAACC,SAAL,CAAenoB,IAAf,CAAqB,6EAA1D;;QACA,OAAO,KAAP;MACH;;MACD,OAAO,IAAP;IACH,CAND;;IAOA,IAAI,KAAK0svB,QAAT,EAAmB;MACf,IAAI,CAAC5wwB,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,CAAL,EAA2B;QACvB,KAAK+uqB,QAAL,CAAcv5nB,IAAd,CAAmB,0CAAnB;;QACA,OAAO,KAAP;MACH;;MACD,OAAOx1C,KAAK,CAACshB,KAAN,CAAYqH,IAAI,IAAIk7vB,eAAe,CAACl7vB,IAAD,CAAnC,CAAP;IACH,CAND,MAOK;MACD,OAAOk7vB,eAAe,CAAC7jxB,KAAD,CAAtB;IACH;EACJ;;EACDoixB,iBAAiB,CAAC0B,OAAD,EAAU;IACvB,IAAI,CAAC,KAAKF,kBAAL,CAAwBE,OAAxB,CAAL,EAAuC;MACnC;IACH;;IACD,MAAM5vtB,MAAM,GAAI9d,GAAD,IAAS;MACpB,IAAIztB,IAAI,GAAG,KAAKs3vB,SAAL,CAAe9J,QAAf,CAAwB//tB,GAAxB,CAAX;;MACA,IAAIztB,IAAJ,EAAU;QACN,KAAKs3vB,SAAL,CAAe/rtB,MAAf,CAAsBvrC,IAAtB;MACH,CAFD,MAGK;QACD,MAAMo7vB,WAAW,GAAGv7Z,QAAQ,CAACpyU,GAAD,CAA5B;QACA,MAAM4tuB,WAAW,GAAG,CAACD,WAAD,IAAgB,CAAC,KAAK1N,SAA1C;;QACA,IAAK0N,WAAW,IAAIC,WAApB,EAAkC;UAC9B,KAAK/D,SAAL,CAAe/rtB,MAAf,CAAsB,KAAK+rtB,SAAL,CAAexK,OAAf,CAAuBr/tB,GAAvB,EAA4B,IAA5B,CAAtB;QACH,CAFD,MAGK,IAAI,KAAKiguB,SAAT,EAAoB;UACrB1tvB,IAAI,GAAG;YACH,CAAC,KAAK4tvB,SAAN,GAAkB,IADf;YAEH,CAAC,KAAKF,SAAN,GAAkBjguB;UAFf,CAAP;UAIA,KAAK6puB,SAAL,CAAe/rtB,MAAf,CAAsB,KAAK+rtB,SAAL,CAAexK,OAAf,CAAuB9svB,IAAvB,EAA6B,IAA7B,CAAtB;QACH;MACJ;IACJ,CAnBD;;IAoBA,IAAI,KAAK0svB,QAAT,EAAmB;MACfyO,OAAO,CAACpzwB,OAAR,CAAgBiY,IAAI,IAAIurC,MAAM,CAACvrC,IAAD,CAA9B;IACH,CAFD,MAGK;MACDurC,MAAM,CAAC4vtB,OAAD,CAAN;IACH;EACJ;;EACDpD,iBAAiB,GAAG;IAChB,IAAI,KAAK7B,UAAT,EAAqB;MACjB;IACH;;IACD,KAAKe,UAAL,CACK71wB,IADL,CACU4ojB,yDAAS,CAAC,KAAKmnN,SAAN,CADnB,EACqC/mN,oDAAG,CAACkxN,MAAM,IAAI,KAAKvE,YAAL,CAAkBz5wB,IAAlB,CAAuBg+wB,MAAvB,CAAX,CADxC,EACoFp1N,6DAAY,CAAC,GAAD,CADhG,EACuGtvjB,uDAAM,CAAC,MAAM,KAAKmgxB,YAAL,CAAkBn+wB,MAAlB,GAA2B,CAAlC,CAD7G,EACmJqI,oDAAG,CAAC,MAAM,KAAK81wB,YAAL,CAAkB52vB,IAAlB,CAAuB,EAAvB,CAAP,CADtJ,EAEKnoB,SAFL,CAEei2wB,IAAI,IAAI;MACnB,MAAMjuvB,IAAI,GAAG,KAAKs3vB,SAAL,CAAetJ,WAAf,CAA2BC,IAA3B,CAAb;;MACA,IAAIjuvB,IAAJ,EAAU;QACN,IAAI,KAAKq4b,MAAT,EAAiB;UACb,KAAKi/T,SAAL,CAAe5I,QAAf,CAAwB1uvB,IAAxB;;UACA,KAAKu7vB,eAAL;;UACA,KAAK1gD,GAAL,CAASztH,YAAT;QACH,CAJD,MAKK;UACD,KAAK7hjB,MAAL,CAAYvrC,IAAZ;QACH;MACJ;;MACD,KAAK+2vB,YAAL,GAAoB,EAApB;IACH,CAfD;EAgBH;;EACDiB,mBAAmB,GAAG;IAClB,MAAMpnqB,KAAK,GAAG,KAAKipqB,WAAL,CAAiB7svB,aAA/B;IACA,MAAMpmB,UAAU,GAAG;MACfrM,IAAI,EAAE,MADS;MAEfihxB,WAAW,EAAE,KAFE;MAGfC,cAAc,EAAE,KAHD;MAIfC,YAAY,EAAE,KAAK/F,UAAL,GAAkB,KAAlB,GAA0B,KAAKzG,UAJ9B;MAKf,GAAG,KAAK0G;IALO,CAAnB;;IAOA,KAAK,MAAM38wB,GAAX,IAAkBJ,MAAM,CAACC,IAAP,CAAY8N,UAAZ,CAAlB,EAA2C;MACvCgqG,KAAK,CAAC9+F,YAAN,CAAmB7Y,GAAnB,EAAwB2N,UAAU,CAAC3N,GAAD,CAAlC;IACH;EACJ;;EACDogxB,cAAc,GAAG;IACb,MAAMvzoB,KAAK,GAAG,EAAd;;IACA,KAAK,MAAM9lH,IAAX,IAAmB,KAAKqsvB,aAAxB,EAAuC;MACnC,IAAI,KAAKqB,SAAT,EAAoB;QAChB,IAAIr2wB,KAAK,GAAG,IAAZ;;QACA,IAAI2oB,IAAI,CAACgD,QAAT,EAAmB;UACf,MAAM8/E,QAAQ,GAAG,KAAKuvY,UAAL,GAAkB,KAAKq7R,SAAvB,GAAmC,KAAKX,OAAzD;UACA11wB,KAAK,GAAG2oB,IAAI,CAAC3oB,KAAL,CAAWyrG,QAAQ,IAAI,KAAKiqqB,OAA5B,CAAR;QACH,CAHD,MAIK;UACD11wB,KAAK,GAAG,KAAKigxB,SAAL,CAAe3J,aAAf,CAA6B3tvB,IAAI,CAAC3oB,KAAlC,EAAyC,KAAKq2wB,SAA9C,CAAR;QACH;;QACD5noB,KAAK,CAACxoI,IAAN,CAAWjG,KAAX;MACH,CAVD,MAWK;QACDyuI,KAAK,CAACxoI,IAAN,CAAW0iB,IAAI,CAAC3oB,KAAhB;MACH;IACJ;;IACD,MAAMuwH,QAAQ,GAAG,KAAKykpB,aAAL,CAAmBprwB,GAAnB,CAAuBsJ,CAAC,IAAIA,CAAC,CAAClT,KAA9B,CAAjB;;IACA,IAAI,KAAKq1wB,QAAT,EAAmB;MACf,KAAKzmC,SAAL,CAAengmB,KAAf;;MACA,KAAKozd,WAAL,CAAiBr6lB,IAAjB,CAAsB+oH,QAAtB;IACH,CAHD,MAIK;MACD,KAAKq+mB,SAAL,CAAe2kC,SAAS,CAAC9koB,KAAK,CAAC,CAAD,CAAN,CAAT,GAAsBA,KAAK,CAAC,CAAD,CAA3B,GAAiC,IAAhD;;MACA,KAAKozd,WAAL,CAAiBr6lB,IAAjB,CAAsB+oH,QAAQ,CAAC,CAAD,CAA9B;IACH;;IACD,KAAKizmB,GAAL,CAASztH,YAAT;EACH;;EACDksK,YAAY,GAAG;IACX,IAAI,CAAC,KAAKzC,UAAV,EAAsB;MAClB;IACH;;IACD,KAAK8E,aAAL,CAAmB,IAAnB;;IACA,KAAKrE,SAAL,CAAevJ,kBAAf;EACH;;EACD4N,aAAa,CAAC9E,UAAD,EAAa;IACtB,KAAKA,UAAL,GAAkBA,UAAlB;;IACA,IAAI,KAAK6C,YAAT,EAAuB;MACnB,KAAKc,SAAL,CAAepxwB,IAAf,CAAoBytwB,UAApB;IACH;EACJ;;EACD0E,eAAe,GAAG;IACd,IAAI,CAAC,KAAKljU,MAAN,IAAgB,CAAC,KAAKy/T,aAA1B,EAAyC;MACrC;IACH;;IACD,KAAKA,aAAL,CAAmB17lB,QAAnB,CAA4B,KAAKk7lB,SAAL,CAAehL,UAA3C;EACH;;EACDsP,YAAY,GAAG;IACX,IAAI,CAAC,KAAKvjU,MAAN,IAAgB,CAAC,KAAKy/T,aAA1B,EAAyC;MACrC;IACH;;IACD,KAAKA,aAAL,CAAmBrF,WAAnB;EACH;;EACD8G,mBAAmB,GAAG;IAClB,IAAI,KAAKlhU,MAAL,IAAe,KAAKq0T,QAApB,IAAgC,KAAK6F,QAAzC,EAAmD;MAC/C;MACA,KAAK13C,GAAL,CAAS9usB,aAAT;;MACA,KAAK+rvB,aAAL,CAAmBpF,cAAnB;IACH;EACJ;;EACDoG,UAAU,CAACpzC,MAAD,EAAS;IACf,IAAI,KAAKrtR,MAAL,KAAgB,KAAhB,IAAyB,CAAC,KAAKmhS,MAAnC,EAA2C;MACvC;IACH;;IACD,IAAI,KAAKi8B,WAAT,EAAsB;MAClB,IAAI,KAAK6B,SAAL,CAAehL,UAAnB,EAA+B;QAC3B,KAAKqN,UAAL,CAAgB,KAAKrC,SAAL,CAAehL,UAA/B;QACA5mC,MAAM,CAACximB,cAAP;MACH,CAHD,MAIK,IAAI,KAAKg3oB,UAAT,EAAqB;QACtB,KAAKJ,SAAL;QACAp0C,MAAM,CAACximB,cAAP;MACH,CAHI,MAIA;QACD,KAAKjX,KAAL;MACH;IACJ,CAZD,MAaK;MACD,KAAKA,KAAL;IACH;EACJ;;EACD2spB,YAAY,CAAClzC,MAAD,EAAS;IACjB,IAAI,KAAKrtR,MAAL,IAAe,KAAK6/T,WAAxB,EAAqC;MACjC,IAAI,KAAKZ,SAAL,CAAehL,UAAnB,EAA+B;QAC3B,KAAKqN,UAAL,CAAgB,KAAKrC,SAAL,CAAehL,UAA/B;MACH,CAFD,MAGK,IAAI,KAAK4N,UAAT,EAAqB;QACtB,KAAKJ,SAAL;MACH;IACJ,CAPD,MAQK,IAAI,KAAK/E,WAAT,EAAsB;MACvB,KAAKtyqB,IAAL;IACH,CAFI,MAGA;MACD;IACH;;IACDijoB,MAAM,CAACximB,cAAP;EACH;;EACDw1oB,YAAY,CAAChzC,MAAD,EAAS;IACjB,IAAI,KAAKrtR,MAAL,IAAe,KAAK6/T,WAAxB,EAAqC;MACjC;IACH;;IACD,KAAKz1qB,IAAL;IACAijoB,MAAM,CAACximB,cAAP;EACH;;EACDo1oB,gBAAgB,CAAC5yC,MAAD,EAAS;IACrB,IAAI,KAAKm2C,cAAL,CAAoB,CAAC,CAArB,CAAJ,EAA6B;MACzB,KAAKvE,SAAL,CAAehJ,UAAf;;MACA,KAAKsN,YAAL;IACH,CAHD,MAIK;MACD,KAAKtE,SAAL,CAAe/I,YAAf;;MACA,KAAKgN,eAAL;IACH;;IACD,KAAK94qB,IAAL;IACAijoB,MAAM,CAACximB,cAAP;EACH;;EACDs1oB,cAAc,CAAC9yC,MAAD,EAAS;IACnB,IAAI,CAAC,KAAKrtR,MAAV,EAAkB;MACd;IACH;;IACD,IAAI,KAAKwjU,cAAL,CAAoB,CAAC,CAArB,CAAJ,EAA6B;MACzB,KAAKvE,SAAL,CAAehJ,UAAf;;MACA,KAAKsN,YAAL;IACH,CAHD,MAIK;MACD,KAAKtE,SAAL,CAAe7I,gBAAf;;MACA,KAAK8M,eAAL;IACH;;IACD71C,MAAM,CAACximB,cAAP;EACH;;EACD24oB,cAAc,CAACC,QAAD,EAAW;IACrB,MAAMtkgB,SAAS,GAAG,KAAK8/f,SAAL,CAAelL,WAAf,GAA6B0P,QAA/C;IACA,OAAO,KAAKtiC,MAAL,IAAe,KAAKq9B,UAApB,IACA,KAAKS,SAAL,CAAehL,UADf,KAEC90f,SAAS,GAAG,CAAZ,IAAiBA,SAAS,KAAK,KAAK8/f,SAAL,CAAenL,aAAf,CAA6BvzwB,MAF7D,CAAP;EAGH;;EACDqgxB,gBAAgB,GAAG;IACf,IAAI,KAAKpC,UAAL,IAAmB,CAAC,KAAKV,SAAzB,IAAsC,CAAC,KAAKT,gBAA5C,IAAgE,CAAC,KAAK3vnB,QAA1E,EAAoF;MAChF;IACH;;IACD,IAAI,KAAK2mnB,QAAT,EAAmB;MACf,KAAKY,QAAL,CAAc,KAAKgK,SAAL,CAAe1K,gBAA7B;IACH,CAFD,MAGK;MACD,KAAK4M,UAAL;IACH;EACJ;;EACe,IAAZE,YAAY,GAAG;IACf,OAAO,KAAKc,SAAL,IAAkB,KAAKA,SAAL,CAAen0uB,SAAf,CAAyBztC,MAAzB,GAAkC,CAA3D;EACH;;EACa,IAAVuhxB,UAAU,GAAG;IACb,MAAMlM,IAAI,GAAG,KAAK4I,UAAL,IAAmB,KAAKA,UAAL,CAAgBtpuB,IAAhB,EAAhC;IACA,OAAO0guB,IAAI,IAAIA,IAAI,CAACr1wB,MAAL,IAAe,KAAKm9wB,aAAnC;EACH;;EACDsB,kBAAkB,CAAC/voB,MAAD,EAAS;IACvB,KAAKjI,WAAL,GAAmB,KAAKA,WAAL,IAAoBiI,MAAM,CAACjI,WAA9C;IACA,KAAKo1oB,YAAL,GAAoB,KAAKA,YAAL,IAAqBntoB,MAAM,CAACmtoB,YAAhD;IACA,KAAKC,gBAAL,GAAwB,KAAKA,gBAAL,IAAyBptoB,MAAM,CAACotoB,gBAAxD;IACA,KAAKC,UAAL,GAAkB,KAAKA,UAAL,IAAmBrtoB,MAAM,CAACqtoB,UAA5C;IACA,KAAKC,WAAL,GAAmB,KAAKA,WAAL,IAAoBttoB,MAAM,CAACstoB,WAA9C;IACA,KAAKC,YAAL,GAAoB,KAAKA,YAAL,IAAqBvtoB,MAAM,CAACutoB,YAAhD;IACA,KAAK9D,aAAL,GAAqBnG,SAAS,CAAC,KAAKmG,aAAN,CAAT,GACf,KAAKA,aADU,GAEfnG,SAAS,CAACtjoB,MAAM,CAACwtoB,oBAAR,CAAT,GAAyC,CAACxtoB,MAAM,CAACwtoB,oBAAjD,GAAwE,KAF9E;IAGA,KAAKC,WAAL,GAAmBnK,SAAS,CAAC,KAAKmK,WAAN,CAAT,GAA8B,KAAKA,WAAnC,GAAiDztoB,MAAM,CAACytoB,WAA3E;IACA,KAAKxC,QAAL,GAAgB,KAAKA,QAAL,IAAiBjroB,MAAM,CAACiroB,QAAxC;IACA,KAAK7E,SAAL,GAAiB,KAAKA,SAAL,IAAkBpmoB,MAAM,CAAComoB,SAA1C;IACA,KAAKE,SAAL,GAAiB,KAAKA,SAAL,IAAkBtmoB,MAAM,CAACsmoB,SAA1C;IACA,KAAKoH,UAAL,GAAkB,KAAKA,UAAL,IAAmB1toB,MAAM,CAAC0toB,UAA5C;EACH;;AA9uBmB;;AAgvBxBG,iBAAiB,CAACt7wB,IAAlB;EAAA,iBAA+Gs7wB,iBAA/G,EAlmFwG50vB,+DAkmFxG,CAAkJ,OAAlJ,GAlmFwGA,+DAkmFxG,CAAuL,WAAvL,GAlmFwGA,+DAkmFxG,CAAgOi0vB,cAAhO,GAlmFwGj0vB,+DAkmFxG,CAA2P20vB,uBAA3P,GAlmFwG30vB,+DAkmFxG,CAA+RA,qDAA/R,GAlmFwGA,+DAkmFxG,CAAyTA,4DAAzT,GAlmFwGA,+DAkmFxG,CAA0V00vB,cAA1V;AAAA;;AACAE,iBAAiB,CAACvzvB,IAAlB,kBAnmFwGrB,+DAmmFxG;EAAA,MAAmG40vB,iBAAnG;EAAA;EAAA;IAAA;MAnmFwG50vB,4DAmmFxG,WAIwGwqvB,yBAJxG,KAI4JjsK,sDAJ5J;MAnmFwGv+kB,4DAmmFxG,WAIuOyqvB,2BAJvO,KAI6RlsK,sDAJ7R;MAnmFwGv+kB,4DAmmFxG,WAIqW0qvB,wBAJrW,KAIwZnsK,sDAJxZ;MAnmFwGv+kB,4DAmmFxG,WAIqe2qvB,6BAJre,KAI6hBpsK,sDAJ7hB;MAnmFwGv+kB,4DAmmFxG,WAIsmB4qvB,yBAJtmB,KAI0pBrsK,sDAJ1pB;MAnmFwGv+kB,4DAmmFxG,WAImuB6qvB,yBAJnuB,KAIuxBtsK,sDAJvxB;MAnmFwGv+kB,4DAmmFxG,WAIk2B8qvB,2BAJl2B,KAIw5BvsK,sDAJx5B;MAnmFwGv+kB,4DAmmFxG,WAIu+B+qvB,+BAJv+B,KAIiiCxsK,sDAJjiC;MAnmFwGv+kB,4DAmmFxG,WAI+mCgrvB,8BAJ/mC,KAIwqCzsK,sDAJxqC;MAnmFwGv+kB,4DAmmFxG,WAI8uCirvB,sBAJ9uC,KAI+xC1sK,sDAJ/xC;MAnmFwGv+kB,4DAmmFxG,WAIg3CkrvB,iCAJh3C,KAI46C3sK,sDAJ56C;MAnmFwGv+kB,4DAmmFxG,WAIm+C4zvB,iBAJn+C;IAAA;;IAAA;MAAA;;MAnmFwG5zvB,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;IAAA;EAAA;EAAA;IAAA;MAnmFwGA,yDAmmFxG,CAIsnDswvB,wBAJtnD;MAnmFwGtwvB,yDAmmFxG;IAAA;;IAAA;MAAA;;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;MAnmFwGA,4DAmmFxG,MAnmFwGA,yDAmmFxG;IAAA;EAAA;EAAA;EAAA;IAAA;MAnmFwGA,wDAmmFxG;QAAA,OAAmG,yBAAnG;MAAA;IAAA;;IAAA;MAnmFwGA,yDAmmFxG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WAnmFwGA,gEAmmFxG,CAAmoE,CAAC;IACxnE/d,OAAO,EAAEkztB,8DAD+mE;IAExnEjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMwvK,iBAAP,CAFimE;IAGxnEvpmB,KAAK,EAAE;EAHinE,CAAD,EAIxnEgkmB,sBAJwnE,CAAnoE,GAnmFwGrvvB,kEAmmFxG;EAAA;EAAA;EAAA;EAAA;IAAA;MAAA,aAnmFwGA,8DAmmFxG;;MAnmFwGA,4DAumF2tD,aAJn0D;MAnmFwGA,wDAumFquD;QAAA,OAAc,2BAAd;MAAA,EAJ70D;MAnmFwGA,4DAumF+5D,0BAJvgE;MAnmFwGA,oDAumFy+D,GAJjlE;MAnmFwGA,0DAumFw/D,EAJhmE;MAnmFwGA,wDAumF0gE,uEAJlnE;MAnmFwGA,wDAumFw2F,gDAJh9F;MAnmFwGA,4DAumFqnG,+BAJ7tG;MAnmFwGA,wDAumF4oH;QAvmF5oHA,2DAumF4oH;;QAAA,YAvmF5oHA,yDAumF4oH;;QAAA,OAvmF5oHA,yDAumFspH,uBAAV;MAAA;QAAA,OAA+E,wBAA/E;MAAA;QAvmF5oHA,2DAumF4oH;;QAAA,YAvmF5oHA,yDAumF4oH;;QAAA,OAvmF5oHA,yDAumFyxH,iCAA7I;MAAA;QAAA,OAAiN,wBAAjN;MAAA;QAAA,OAAqQ,uBAArQ;MAAA;QAAA,OAA0T,wBAA1T;MAAA,EAJpvH;MAnmFwGA,0DAumFg1G,MAJx7G;MAnmFwGA,wDAumF+tI,uEAJv0I;MAnmFwGA,wDAumF4iJ,yDAJppJ;MAnmFwGA,4DAumFwtJ,eAJh0J;MAnmFwGA,uDAumFmwJ,eAJ32J;MAnmFwGA,0DAumFyyJ,IAJj5J;MAnmFwGA,wDAumF4zJ,qFAJp6J;IAAA;;IAAA;MAnmFwGA,yDAumFkxD,qFAJ13D;MAnmFwGA,uDAumFy+D,GAJjlE;MAnmFwGA,+DAumFy+D,iBAJjlE;MAnmFwGA,uDAumFyhE,GAJjoE;MAnmFwGA,wDAumFyhE,oFAJjoE;MAnmFwGA,uDAumFs3F,GAJ99F;MAnmFwGA,wDAumFs3F,iFAJ99F;MAnmFwGA,uDAumF0rG,GAJlyG;MAnmFwGA,yDAumF0rG,8EAJlyG;MAnmFwGA,uDAumFs9G,GAJ9jH;MAnmFwGA,wDAumFs9G,wIAJ9jH;MAnmFwGA,yDAumFw3G,4PAJh+G;MAnmFwGA,uDAumF8uI,GAJt1I;MAnmFwGA,wDAumF8uI,qBAJt1I;MAnmFwGA,uDAumFmjJ,GAJ3pJ;MAnmFwGA,wDAumFmjJ,yBAJ3pJ;MAnmFwGA,uDAumFg1J,GAJx7J;MAnmFwGA,wDAumFg1J,oBAJx7J;IAAA;EAAA;EAAA,eAI6vbwnqB,oDAJ7vb,EAI21bA,oDAJ31b,EAIw9bA,iDAJx9b,EAI4jcA,6DAJ5jc,EAImuc8oF,wBAJnuc,EAIogdhG,oBAJpgd;EAAA;EAAA;EAAA;AAAA;;AAKA;EAAA,mDAxmFwGtqvB,+DAwmFxG,CAA4F40vB,iBAA5F,EAA2H,CAAC;IAChH56wB,IAAI,EAAEimB,oDAD0G;IAEhHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,WAAZ;MAAyBtf,SAAS,EAAE,CAAC;QAC5BC,OAAO,EAAEkztB,8DADmB;QAE5BjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMwvK,iBAAP,CAFK;QAG5BvpmB,KAAK,EAAE;MAHqB,CAAD,EAI5BgkmB,sBAJ4B,CAApC;MAIiC9ouB,aAAa,EAAEnmB,iEAJhD;MAIwE6slB,eAAe,EAAE5H,yEAJzF;MAIyH9jlB,QAAQ,EAAE,6pOAJnI;MAIkyOjb,MAAM,EAAE,CAAC,suJAAD;IAJ1yO,CAAD;EAF0G,CAAD,CAA3H,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAEm2mB,oDADwD;QAE9DxzmB,IAAI,EAAE,CAAC,OAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAE3C,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEm2mB,oDAD4B;QAElCxzmB,IAAI,EAAE,CAAC,WAAD;MAF4B,CAAD;IAA/B,CAH2B,EAM3B;MAAE3C,IAAI,EAAEi6wB;IAAR,CAN2B,EAMD;MAAEj6wB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC5DrF,IAAI,EAAElE,iDADsD;QAE5D6G,IAAI,EAAE,CAACg4wB,uBAAD;MAFsD,CAAD;IAA/B,CANC,EAS3B;MAAE36wB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAT2B,EASF;MAAEpsC,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CATE,EAS8B;MAAE/ymB,IAAI,EAAE06wB;IAAR,CAT9B,CAAP;EASiE,CAhB3G,EAgB6H;IAAErH,SAAS,EAAE,CAAC;MAC3HrzwB,IAAI,EAAEmmB,gDAAKA;IADgH,CAAD,CAAb;IAE7GgtvB,SAAS,EAAE,CAAC;MACZnzwB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAFkG;IAI7G40vB,SAAS,EAAE,CAAC;MACZ/6wB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAJkG;IAM7G2+G,WAAW,EAAE,CAAC;MACd9kI,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CANgG;IAQ7G+zvB,YAAY,EAAE,CAAC;MACfl6wB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CAR+F;IAU7Gg0vB,gBAAgB,EAAE,CAAC;MACnBn6wB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAV2F;IAY7Gi0vB,UAAU,EAAE,CAAC;MACbp6wB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAZiG;IAc7Gk0vB,WAAW,EAAE,CAAC;MACdr6wB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAdgG;IAgB7Gm0vB,YAAY,EAAE,CAAC;MACft6wB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CAhB+F;IAkB7Gs0vB,UAAU,EAAE,CAAC;MACbz6wB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAlBiG;IAoB7G60vB,gBAAgB,EAAE,CAAC;MACnBh7wB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CApB2F;IAsB7G6xvB,QAAQ,EAAE,CAAC;MACXh4wB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAtBmG;IAwB7Gsle,OAAO,EAAE,CAAC;MACVzrf,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAxBoG;IA0B7G80vB,aAAa,EAAE,CAAC;MAChBj7wB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CA1B8F;IA4B7G8rvB,YAAY,EAAE,CAAC;MACfjywB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CA5B+F;IA8B7G+0vB,WAAW,EAAE,CAAC;MACdl7wB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CA9BgG;IAgC7Gq0vB,WAAW,EAAE,CAAC;MACdx6wB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAhCgG;IAkC7GisvB,gBAAgB,EAAE,CAAC;MACnBpywB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAlC2F;IAoC7GqsvB,OAAO,EAAE,CAAC;MACVxywB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CApCoG;IAsC7G2xd,UAAU,EAAE,CAAC;MACb93e,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAtCiG;IAwC7GgzvB,YAAY,EAAE,CAAC;MACfn5wB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CAxC+F;IA0C7GqwvB,aAAa,EAAE,CAAC;MAChBx2wB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CA1C8F;IA4C7GivvB,eAAe,EAAE,CAAC;MAClBp1wB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CA5C4F;IA8C7G0svB,sBAAsB,EAAE,CAAC;MACzB7ywB,IAAI,EAAEmmB,gDAAKA;IADc,CAAD,CA9CqF;IAgD7GwtvB,QAAQ,EAAE,CAAC;MACX3zwB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAhDmG;IAkD7GsosB,SAAS,EAAE,CAAC;MACZzutB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAlDkG;IAoD7Gg1vB,gBAAgB,EAAE,CAAC;MACnBn7wB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CApD2F;IAsD7Gi1vB,UAAU,EAAE,CAAC;MACbp7wB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAtDiG;IAwD7Gk1vB,UAAU,EAAE,CAAC;MACbr7wB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAxDiG;IA0D7GwS,QAAQ,EAAE,CAAC;MACX34B,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CA1DmG;IA4D7Gm1vB,QAAQ,EAAE,CAAC;MACXt7wB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CA5DmG;IA8D7Go1vB,oBAAoB,EAAE,CAAC;MACvBv7wB,IAAI,EAAEmmB,gDAAKA;IADY,CAAD,CA9DuF;IAgE7Gq1vB,aAAa,EAAE,CAAC;MAChBx7wB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CAhE8F;IAkE7Gs1vB,kBAAkB,EAAE,CAAC;MACrBz7wB,IAAI,EAAEmmB,gDAAKA;IADU,CAAD,CAlEyF;IAoE7Gu1vB,SAAS,EAAE,CAAC;MACZ17wB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CApEkG;IAsE7G85vB,SAAS,EAAE,CAAC;MACZjgxB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,EAEZ;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,2BAAD;IAFP,CAFY,CAtEkG;IA2E7GwvwB,QAAQ,EAAE,CAAC;MACXnywB,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,EAEX;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,0BAAD;IAFP,CAFW,CA3EmG;IAgF7Gs8uB,MAAM,EAAE,CAAC;MACTj/uB,IAAI,EAAEmmB,gDAAKA;IADF,CAAD,EAET;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,0BAAD;IAFP,CAFS,CAhFqG;IAqF7Gg5wB,UAAU,EAAE,CAAC;MACb37wB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,EAEb;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,4BAAD;IAFP,CAFa,CArFiG;IA0F7Gi5wB,SAAS,EAAE,CAAC;MACZ57wB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,EAEZ;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,2BAAD;IAFP,CAFY,CA1FkG;IA+F7Gm7c,MAAM,EAAE,CAAC;MACT99c,IAAI,EAAEmmB,gDAAKA;IADF,CAAD,EAET;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,wBAAD;IAFP,CAFS,CA/FqG;IAoG7GytD,KAAK,EAAE,CAAC;MACRpwD,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CApGsG;IAsG7G0hkB,WAAW,EAAE,CAAC;MACd7nlB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAtGgG;IAwG7G82vB,gBAAgB,EAAE,CAAC;MACnBj9wB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAxG2F;IA0G7G01vB,SAAS,EAAE,CAAC;MACZ77wB,IAAI,EAAEqmB,iDADM;MAEZ1jB,IAAI,EAAE,CAAC,MAAD;IAFM,CAAD,CA1GkG;IA6G7G0lN,UAAU,EAAE,CAAC;MACbroN,IAAI,EAAEqmB,iDADO;MAEb1jB,IAAI,EAAE,CAAC,OAAD;IAFO,CAAD,CA7GiG;IAgH7Gg8lB,WAAW,EAAE,CAAC;MACd3+lB,IAAI,EAAEqmB,iDADQ;MAEd1jB,IAAI,EAAE,CAAC,QAAD;IAFQ,CAAD,CAhHgG;IAmH7Gm5wB,SAAS,EAAE,CAAC;MACZ97wB,IAAI,EAAEqmB,iDADM;MAEZ1jB,IAAI,EAAE,CAAC,MAAD;IAFM,CAAD,CAnHkG;IAsH7Go5wB,UAAU,EAAE,CAAC;MACb/7wB,IAAI,EAAEqmB,iDADO;MAEb1jB,IAAI,EAAE,CAAC,OAAD;IAFO,CAAD,CAtHiG;IAyH7Gq5wB,WAAW,EAAE,CAAC;MACdh8wB,IAAI,EAAEqmB,iDADQ;MAEd1jB,IAAI,EAAE,CAAC,QAAD;IAFQ,CAAD,CAzHgG;IA4H7Gs5wB,UAAU,EAAE,CAAC;MACbj8wB,IAAI,EAAEqmB,iDADO;MAEb1jB,IAAI,EAAE,CAAC,OAAD;IAFO,CAAD,CA5HiG;IA+H7Gu5wB,QAAQ,EAAE,CAAC;MACXl8wB,IAAI,EAAEqmB,iDADK;MAEX1jB,IAAI,EAAE,CAAC,KAAD;IAFK,CAAD,CA/HmG;IAkI7Gw5wB,WAAW,EAAE,CAAC;MACdn8wB,IAAI,EAAEqmB,iDADQ;MAEd1jB,IAAI,EAAE,CAAC,QAAD;IAFQ,CAAD,CAlIgG;IAqI7GqQ,MAAM,EAAE,CAAC;MACThT,IAAI,EAAEqmB,iDADG;MAET1jB,IAAI,EAAE,CAAC,QAAD;IAFG,CAAD,CArIqG;IAwI7G+zwB,WAAW,EAAE,CAAC;MACd12wB,IAAI,EAAEqmB,iDADQ;MAEd1jB,IAAI,EAAE,CAAC,aAAD;IAFQ,CAAD,CAxIgG;IA2I7G6+wB,cAAc,EAAE,CAAC;MACjBxhxB,IAAI,EAAEqrpB,uDADW;MAEjB1opB,IAAI,EAAE,CAAC6twB,yBAAD,EAA4B;QAAE75vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA5B;IAFW,CAAD,CA3I6F;IA8I7Gk9K,gBAAgB,EAAE,CAAC;MACnBzhxB,IAAI,EAAEqrpB,uDADa;MAEnB1opB,IAAI,EAAE,CAAC8twB,2BAAD,EAA8B;QAAE95vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA9B;IAFa,CAAD,CA9I2F;IAiJ7Gm9K,aAAa,EAAE,CAAC;MAChB1hxB,IAAI,EAAEqrpB,uDADU;MAEhB1opB,IAAI,EAAE,CAAC+twB,wBAAD,EAA2B;QAAE/5vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA3B;IAFU,CAAD,CAjJ8F;IAoJ7Go9K,kBAAkB,EAAE,CAAC;MACrB3hxB,IAAI,EAAEqrpB,uDADe;MAErB1opB,IAAI,EAAE,CAACguwB,6BAAD,EAAgC;QAAEh6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAAhC;IAFe,CAAD,CApJyF;IAuJ7Gm1K,cAAc,EAAE,CAAC;MACjB15wB,IAAI,EAAEqrpB,uDADW;MAEjB1opB,IAAI,EAAE,CAACiuwB,yBAAD,EAA4B;QAAEj6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA5B;IAFW,CAAD,CAvJ6F;IA0J7Go1K,cAAc,EAAE,CAAC;MACjB35wB,IAAI,EAAEqrpB,uDADW;MAEjB1opB,IAAI,EAAE,CAACkuwB,yBAAD,EAA4B;QAAEl6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA5B;IAFW,CAAD,CA1J6F;IA6J7Gq9K,gBAAgB,EAAE,CAAC;MACnB5hxB,IAAI,EAAEqrpB,uDADa;MAEnB1opB,IAAI,EAAE,CAACmuwB,2BAAD,EAA8B;QAAEn6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAA9B;IAFa,CAAD,CA7J2F;IAgK7Gs9K,oBAAoB,EAAE,CAAC;MACvB7hxB,IAAI,EAAEqrpB,uDADiB;MAEvB1opB,IAAI,EAAE,CAACouwB,+BAAD,EAAkC;QAAEp6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAAlC;IAFiB,CAAD,CAhKuF;IAmK7Gu9K,mBAAmB,EAAE,CAAC;MACtB9hxB,IAAI,EAAEqrpB,uDADgB;MAEtB1opB,IAAI,EAAE,CAACquwB,8BAAD,EAAiC;QAAEr6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAAjC;IAFgB,CAAD,CAnKwF;IAsK7Gw9K,WAAW,EAAE,CAAC;MACd/hxB,IAAI,EAAEqrpB,uDADQ;MAEd1opB,IAAI,EAAE,CAACsuwB,sBAAD,EAAyB;QAAEt6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAAzB;IAFQ,CAAD,CAtKgG;IAyK7Gy9K,sBAAsB,EAAE,CAAC;MACzBhixB,IAAI,EAAEqrpB,uDADmB;MAEzB1opB,IAAI,EAAE,CAACuuwB,iCAAD,EAAoC;QAAEv6vB,IAAI,EAAE4tlB,sDAAWA;MAAnB,CAApC;IAFmB,CAAD,CAzKqF;IA4K7Gg5K,aAAa,EAAE,CAAC;MAChBv9wB,IAAI,EAAEsrmB,oDADU;MAEhB3omB,IAAI,EAAE,CAACyomB,yDAAU,CAAC,MAAMkrK,wBAAP,CAAX;IAFU,CAAD,CA5K8F;IA+K7GgJ,WAAW,EAAE,CAAC;MACdt/wB,IAAI,EAAEsrmB,oDADQ;MAEd3omB,IAAI,EAAE,CAAC,aAAD,EAAgB;QAAEwwmB,MAAM,EAAE;MAAV,CAAhB;IAFQ,CAAD,CA/KgG;IAkL7GstK,SAAS,EAAE,CAAC;MACZzgxB,IAAI,EAAEkmB,0DADM;MAEZvjB,IAAI,EAAE,CAACi3wB,iBAAD,EAAoB;QAAEnuV,WAAW,EAAE;MAAf,CAApB;IAFM,CAAD,CAlLkG;IAqL7G2wV,eAAe,EAAE,CAAC;MAClBp8wB,IAAI,EAAE49sB,sDADY;MAElBj7sB,IAAI,EAAE,CAAC,iBAAD;IAFY,CAAD,CArL4F;IAwL7GqhH,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAE49sB,sDADK;MAEXj7sB,IAAI,EAAE,CAAC,0BAAD;IAFK,CAAD,CAxLmG;IA2L7Gw6wB,QAAQ,EAAE,CAAC;MACXn9wB,IAAI,EAAE49sB,sDADK;MAEXj7sB,IAAI,EAAE,CAAC,0BAAD;IAFK,CAAD,CA3LmG;IA8L7Gy6wB,MAAM,EAAE,CAAC;MACTp9wB,IAAI,EAAE49sB,sDADG;MAETj7sB,IAAI,EAAE,CAAC,wBAAD;IAFG,CAAD,CA9LqG;IAiM7GqmI,aAAa,EAAE,CAAC;MAChBhpI,IAAI,EAAE89sB,uDADU;MAEhBn7sB,IAAI,EAAE,CAAC,SAAD,EAAY,CAAC,QAAD,CAAZ;IAFU,CAAD;EAjM8F,CAhB7H;AAAA;;AAsNA,SAASs/wB,4BAAT,GAAwC;EACpC,OAAO,IAAIC,qBAAJ,EAAP;AACH;;AACD,MAAMA,qBAAN,CAA4B;EACxBzlxB,WAAW,GAAG;IACV,KAAKyrlB,SAAL,GAAiB,EAAjB;EACH;;EACQ,IAALprlB,KAAK,GAAG;IACR,OAAO,KAAKorlB,SAAZ;EACH;;EACDl3hB,MAAM,CAACvrC,IAAD,EAAO0svB,QAAP,EAAiBgQ,YAAjB,EAA+B;IACjC18vB,IAAI,CAAC4nG,QAAL,GAAgB,IAAhB;;IACA,IAAI,CAAC5nG,IAAI,CAACgD,QAAN,IAAmB,CAAC0pvB,QAAD,IAAagQ,YAApC,EAAmD;MAC/C,KAAKj6L,SAAL,CAAenllB,IAAf,CAAoB0iB,IAApB;IACH;;IACD,IAAI0svB,QAAJ,EAAc;MACV,IAAI1svB,IAAI,CAAC3f,MAAT,EAAiB;QACb,MAAMs8wB,aAAa,GAAG38vB,IAAI,CAAC3f,MAAL,CAAY2iB,QAAZ,CAAqBpqB,MAA3C;QACA,MAAMm3O,aAAa,GAAG/vN,IAAI,CAAC3f,MAAL,CAAY2iB,QAAZ,CAAqBpsB,MAArB,CAA4B2T,CAAC,IAAIA,CAAC,CAACq9G,QAAnC,EAA6ChvH,MAAnE;QACAonB,IAAI,CAAC3f,MAAL,CAAYunH,QAAZ,GAAuB+0pB,aAAa,KAAK5siB,aAAzC;MACH,CAJD,MAKK,IAAI/vN,IAAI,CAACgD,QAAT,EAAmB;QACpB,KAAK45vB,yBAAL,CAA+B58vB,IAAI,CAACgD,QAApC,EAA8C,IAA9C;;QACA,KAAK65vB,eAAL,CAAqB78vB,IAArB;;QACA,IAAI08vB,YAAY,IAAI,KAAKI,eAAL,CAAqB98vB,IAArB,CAApB,EAAgD;UAC5C,KAAKyikB,SAAL,GAAiB,CAAC,GAAG,KAAKA,SAAL,CAAe7rlB,MAAf,CAAsB2T,CAAC,IAAIA,CAAC,CAAClK,MAAF,KAAa2f,IAAxC,CAAJ,EAAmDA,IAAnD,CAAjB;QACH,CAFD,MAGK;UACD,KAAKyikB,SAAL,GAAiB,CAAC,GAAG,KAAKA,SAAT,EAAoB,GAAGzikB,IAAI,CAACgD,QAAL,CAAcpsB,MAAd,CAAqB2T,CAAC,IAAI,CAACA,CAAC,CAACg0G,QAA7B,CAAvB,CAAjB;QACH;MACJ;IACJ;EACJ;;EACD+upB,QAAQ,CAACttvB,IAAD,EAAO0svB,QAAP,EAAiB;IACrB,KAAKjqL,SAAL,GAAiB,KAAKA,SAAL,CAAe7rlB,MAAf,CAAsB2T,CAAC,IAAIA,CAAC,KAAKyV,IAAjC,CAAjB;IACAA,IAAI,CAAC4nG,QAAL,GAAgB,KAAhB;;IACA,IAAI8kpB,QAAJ,EAAc;MACV,IAAI1svB,IAAI,CAAC3f,MAAL,IAAe2f,IAAI,CAAC3f,MAAL,CAAYunH,QAA/B,EAAyC;QACrC,MAAM5kG,QAAQ,GAAGhD,IAAI,CAAC3f,MAAL,CAAY2iB,QAA7B;;QACA,KAAK68hB,aAAL,CAAmB7/hB,IAAI,CAAC3f,MAAxB;;QACA,KAAKw8wB,eAAL,CAAqB78vB,IAAI,CAAC3f,MAA1B;;QACA,KAAKoilB,SAAL,CAAenllB,IAAf,CAAoB,GAAG0lB,QAAQ,CAACpsB,MAAT,CAAgB2T,CAAC,IAAIA,CAAC,KAAKyV,IAAN,IAAc,CAACzV,CAAC,CAACg0G,QAAtC,CAAvB;;QACAv+F,IAAI,CAAC3f,MAAL,CAAYunH,QAAZ,GAAuB,KAAvB;MACH,CAND,MAOK,IAAI5nG,IAAI,CAACgD,QAAT,EAAmB;QACpB,KAAK45vB,yBAAL,CAA+B58vB,IAAI,CAACgD,QAApC,EAA8C,KAA9C;;QACA,KAAK65vB,eAAL,CAAqB78vB,IAArB;MACH;IACJ;EACJ;;EACDjnB,KAAK,CAAC80wB,YAAD,EAAe;IAChB,KAAKprL,SAAL,GAAiBorL,YAAY,GAAG,KAAKprL,SAAL,CAAe7rlB,MAAf,CAAsB2T,CAAC,IAAIA,CAAC,CAACg0G,QAA7B,CAAH,GAA4C,EAAzE;EACH;;EACDq+pB,yBAAyB,CAAC55vB,QAAD,EAAW4kG,QAAX,EAAqB;IAC1C,KAAK,MAAM3+G,KAAX,IAAoB+Z,QAApB,EAA8B;MAC1B,IAAI/Z,KAAK,CAACs1G,QAAV,EAAoB;QAChB;MACH;;MACDt1G,KAAK,CAAC2+G,QAAN,GAAiBA,QAAjB;IACH;EACJ;;EACDi1pB,eAAe,CAACx8wB,MAAD,EAAS;IACpB,KAAKoilB,SAAL,GAAiB,CACb,GAAG,KAAKA,SAAL,CAAe7rlB,MAAf,CAAsB2T,CAAC,IAAIA,CAAC,CAAClK,MAAF,KAAaA,MAAxC,CADU,EAEb,GAAGA,MAAM,CAAC2iB,QAAP,CAAgBpsB,MAAhB,CAAuB2T,CAAC,IAAIA,CAAC,CAAClK,MAAF,KAAaA,MAAb,IAAuBkK,CAAC,CAACg0G,QAAzB,IAAqCh0G,CAAC,CAACq9G,QAAnE,CAFU,CAAjB;EAIH;;EACDi4b,aAAa,CAACx/iB,MAAD,EAAS;IAClB,KAAKoilB,SAAL,GAAiB,KAAKA,SAAL,CAAe7rlB,MAAf,CAAsB2T,CAAC,IAAIA,CAAC,KAAKlK,MAAjC,CAAjB;EACH;;EACDy8wB,eAAe,CAAC98vB,IAAD,EAAO;IAClB,OAAOA,IAAI,CAACgD,QAAL,CAAcrK,KAAd,CAAoBpO,CAAC,IAAI,CAACA,CAAC,CAACg0G,QAAH,IAAeh0G,CAAC,CAACq9G,QAA1C,CAAP;EACH;;AArEuB;;AAwE5B,MAAMm1pB,cAAN,CAAqB;;AAErBA,cAAc,CAACljxB,IAAf;EAAA,iBAA4GkjxB,cAA5G;AAAA;;AACAA,cAAc,CAACp6wB,IAAf,kBA54FwG4d,8DA44FxG;EAAA,MAA6Gw8vB;AAA7G;AA2BAA,cAAc,CAACl6wB,IAAf,kBAv6FwG0d,8DAu6FxG;EAAA,WAAwI,CAChI;IAAE/d,OAAO,EAAE0ywB,uBAAX;IAAoCpkJ,QAAQ,EAAE0rJ;EAA9C,CADgI,CAAxI;EAAA,UAEiB1uJ,yDAFjB;AAAA;;AAGA;EAAA,mDA16FwGvtmB,+DA06FxG,CAA4Fw8vB,cAA5F,EAAwH,CAAC;IAC7GxixB,IAAI,EAAEhE,mDADuG;IAE7G2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CACV4puB,wBADU,EAEVsD,iBAFU,EAGVgB,iBAHU,EAIVnK,2BAJU,EAKVD,yBALU,EAMVE,wBANU,EAOVC,6BAPU,EAQVC,yBARU,EASVC,yBATU,EAUVC,2BAVU,EAWVC,+BAXU,EAYVC,8BAZU,EAaVC,sBAbU,EAcVC,iCAdU,EAeVZ,oBAfU,CADf;MAkBCvmwB,OAAO,EAAE,CACLwpnB,yDADK,CAlBV;MAqBC5mlB,OAAO,EAAE,CACLiuuB,iBADK,EAELhB,iBAFK,EAGLnJ,2BAHK,EAILD,yBAJK,EAKLE,wBALK,EAMLC,6BANK,EAOLC,yBAPK,EAQLC,yBARK,EASLC,2BATK,EAULC,+BAVK,EAWLC,8BAXK,EAYLC,sBAZK,EAaLC,iCAbK,CArBV;MAoCClpwB,SAAS,EAAE,CACP;QAAEC,OAAO,EAAE0ywB,uBAAX;QAAoCpkJ,QAAQ,EAAE0rJ;MAA9C,CADO;IApCZ,CAAD;EAFuG,CAAD,CAAxH;AAAA;AA4CA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1gGA;AACA;AACA;AACA;AACA;AAEA,MAAMQ,kBAAkB,GAAG,IAAI/+L,yDAAJ,CAAmB,oBAAnB,CAA3B;AACA,MAAMg/L,kBAAkB,GAAG,IAAIh/L,yDAAJ,CAAmB,oBAAnB,CAA3B;AACA,MAAMi/L,eAAe,GAAG,IAAIj/L,yDAAJ,CAAmB,qBAAnB,CAAxB;AACA,MAAMk/L,kBAAkB,GAAG,IAAIl/L,yDAAJ,CAAmB,oBAAnB,CAA3B;AACA,MAAMm/L,qBAAqB,GAAG,IAAIn/L,yDAAJ,CAAmB,uBAAnB,CAA9B;;AAEA,SAASo/L,UAAT,CAAoBC,UAApB,EAAgCC,QAAhC,EAA0CC,SAA1C,EAAqD75wB,GAArD,EAA0DisgB,KAA1D,EAAiE;EAC7D7tgB,MAAM,CAAC07wB,kBAAP,GAA4B,MAAM;IAC9BF,QAAQ,CAACG,UAAD,CAAR;EACH,CAFD;;EAGA,MAAMjrb,MAAM,GAAGhxV,QAAQ,CAACqqD,aAAT,CAAuB,QAAvB,CAAf;EACA2mS,MAAM,CAACzyO,SAAP,GAAmB,EAAnB;EACA,MAAM29pB,OAAO,GAAGh6wB,GAAG,IAAI,yCAAvB;EACA8uV,MAAM,CAACxsS,GAAP,GAAc,GAAE03tB,OAAQ,WAAUL,UAAW,6BAA4BE,SAAU,EAAnF;;EACA,IAAI5tQ,KAAJ,EAAW;IACPn9K,MAAM,CAACm9K,KAAP,GAAeA,KAAf;EACH;;EACDn9K,MAAM,CAACp8S,KAAP,GAAe,IAAf;EACAo8S,MAAM,CAACmvN,KAAP,GAAe,IAAf;EACAngjB,QAAQ,CAAC4ha,IAAT,CAAc1+V,WAAd,CAA0B8tR,MAA1B;AACH;;AACD,MAAM0oS,MAAM,GAAG;EAAEkiJ;AAAF,CAAf;;AAEA,MAAMO,sBAAN,CAA6B;EACzB5mxB,WAAW,EACX;EACAyE,UAFW,EAECijlB,QAFD,EAEWi/L,OAFX,EAEoB/tQ,KAFpB,EAE2BiuQ,SAF3B,EAEsC;IAC7C,KAAKpixB,UAAL,GAAkBA,UAAlB;IACA,KAAKijlB,QAAL,GAAgBA,QAAhB;IACA,KAAKi/L,OAAL,GAAeA,OAAf;IACA,KAAK/tQ,KAAL,GAAaA,KAAb;IACA,KAAKiuQ,SAAL,GAAiBA,SAAjB;IACA,KAAKlyvB,IAAL;IACA,KAAKm5D,KAAL,GAAao7gB,kEAAiB,CAAC,KAAKzkmB,UAAN,CAAjB,GAAqCmixB,sBAAsB,CAAC94rB,KAAvB,CAA6Bm5d,YAA7B,EAArC,GAAmFmG,wCAAE,EAAlG;EACH;EACD;;;EACAz4hB,IAAI,GAAG;IACH,IAAIiyvB,sBAAsB,CAAC94rB,KAA3B,EAAkC;MAC9B;IACH;;IACD,IAAIo7gB,kEAAiB,CAAC,KAAKzkmB,UAAN,CAArB,EAAwC;MACpC,MAAM2riB,OAAO,GAAG,IAAIyT,iDAAJ,CAAoB,IAApB,CAAhB;MACA+iO,sBAAsB,CAAC94rB,KAAvB,GAA+Bsid,OAA/B;MACA,MAAM02O,SAAS,GAAG,KAAKp/L,QAAL,GAAgB,SAAS,KAAKA,QAA9B,GAAyC,EAA3D;MACA,MAAM4+L,UAAU,GAAG,KAAKO,SAAL,IAAkB,UAArC;MACA1iJ,MAAM,CAACkiJ,UAAP,CAAkBC,UAAlB,EAA+BI,UAAD,IAAgBt2O,OAAO,CAACh+hB,IAAR,CAAas0wB,UAAb,CAA9C,EAAwEI,SAAxE,EAAmF,KAAKH,OAAxF,EAAiG,KAAK/tQ,KAAtG;IACH;EACJ;;AAxBwB;AA0B7B;AACA;AACA;AACA;;;AACAguQ,sBAAsB,CAAC94rB,KAAvB,GAA+B,IAA/B;;AACA84rB,sBAAsB,CAAC/jxB,IAAvB;EAAA,iBAAmH+jxB,sBAAnH,EAAyGr9vB,sDAAzG,CAA2JjqB,sDAA3J,GAAyGiqB,sDAAzG,CAAmLy8vB,kBAAnL,MAAyGz8vB,sDAAzG,CAAkO08vB,kBAAlO,MAAyG18vB,sDAAzG,CAAiR28vB,eAAjR,MAAyG38vB,sDAAzG,CAA6T68vB,qBAA7T;AAAA;;AACAQ,sBAAsB,CAAC5jxB,KAAvB,kBADyGumB,gEACzG;EAAA,OAAuHq9vB,sBAAvH;EAAA,SAAuHA,sBAAvH;AAAA;;AACA;EAAA,mDAFyGr9vB,+DAEzG,CAA2Fq9vB,sBAA3F,EAA+H,CAAC;IACpHrjxB,IAAI,EAAEtE,qDAAUA;EADoG,CAAD,CAA/H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEsE,IAAI,EAAE1B,MAAR;MAAgB+G,UAAU,EAAE,CAAC;QAC3DrF,IAAI,EAAElE,iDADqD;QAE3D6G,IAAI,EAAE,CAAC5G,sDAAD;MAFqD,CAAD;IAA5B,CAAD,EAG3B;MAAEiE,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC8/wB,kBAAD;MAFP,CAFkC;IAA/B,CAH2B,EAQ3B;MAAEzixB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC+/wB,kBAAD;MAFP,CAFkC;IAA/B,CAR2B,EAa3B;MAAE1ixB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACggxB,eAAD;MAFP,CAFkC;IAA/B,CAb2B,EAkB3B;MAAE3ixB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACkgxB,qBAAD;MAFP,CAFkC;IAA/B,CAlB2B,CAAP;EAuBlB,CAzBxB;AAAA;;AA2BA,IAAInye,MAAM,GAAG,CAAb;;AACA,MAAM8ye,kBAAN,CAAyB;EACrB/mxB,WAAW,CAACmmmB,UAAD,EAAag+B,MAAb,EAAqB5/nB,IAArB,EAA2BkvS,QAA3B,EAAqC;IAC5C,KAAK0yT,UAAL,GAAkBA,UAAlB;IACA,KAAKg+B,MAAL,GAAcA,MAAd;IACA,KAAK5/nB,IAAL,GAAYA,IAAZ;IACA,KAAKnE,EAAL,GAAW,eAAc6zS,MAAM,EAAG,EAAlC;IACA,KAAK+ye,SAAL,GAAiB,SAAjB;IACA,KAAKrwN,QAAL,GAAgB,IAAIz3jB,uDAAJ,EAAhB,CAN4C,CAO5C;IACA;;IACA,KAAK8N,KAAL,GAAa,IAAI9N,uDAAJ,EAAb;;IACA,IAAIu0S,QAAJ,EAAc;MACV,KAAKwze,OAAL,GAAexze,QAAQ,CAACwze,OAAxB;MACA,KAAK7+rB,KAAL,GAAaqrN,QAAQ,CAACrrN,KAAtB;MACA,KAAK7kF,IAAL,GAAYkwS,QAAQ,CAAClwS,IAArB;MACA,KAAKs8C,IAAL,GAAY4zP,QAAQ,CAAC5zP,IAArB;MACA,KAAKqnuB,KAAL,GAAazze,QAAQ,CAACyze,KAAtB;IACH;EACJ;;EACD/4uB,eAAe,GAAG;IACd,KAAK81gB,YAAL,GAAoB,KAAKkgF,MAAL,CAAYr2iB,KAAZ,CAAkB9sF,SAAlB,CAA6B0lxB,UAAD,IAAgB;MAC5D,IAAIA,UAAU,IAAI,IAAd,IAAsBA,UAAU,CAAC1na,MAAX,YAA6BjtF,QAAvD,EAAiE;QAC7D,KAAK20f,UAAL,GAAkBA,UAAlB;QACA,KAAKS,eAAL;MACH;IACJ,CALmB,CAApB;EAMH;;EACDz+wB,WAAW,GAAG;IACV;IACA;IACA,KAAK0+wB,eAAL;;IACA,IAAI,KAAKnjO,YAAT,EAAuB;MACnB,KAAKA,YAAL,CAAkB7ijB,WAAlB;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACI+4S,OAAO,GAAG;IACN,IAAI,KAAKt6P,IAAL,KAAc,WAAlB,EAA+B;MAC3B;IACH;;IACD,IAAI,KAAK0ga,MAAL,IAAe,IAAnB,EAAyB;MACrB,KAAKmmU,UAAL,CAAgBvse,OAAhB,CAAwB,KAAKomK,MAA7B;IACH,CAFD,MAGK;MACD;MACA,KAAK8mU,gBAAL,GAAwB,IAAxB;IACH;EACJ;;EACDv2wB,KAAK,GAAG;IACJ,IAAI,KAAKyvc,MAAL,IAAe,IAAnB,EAAyB;MACrB,IAAI,KAAKmmU,UAAL,CAAgBY,WAAhB,CAA4B,KAAK/mU,MAAjC,CAAJ,EAA8C;QAC1C;QACA;QACA;QACA,KAAKo2G,QAAL,CAAc9ujB,IAAd,CAAmB,IAAnB;MACH;;MACD,KAAKu/wB,eAAL;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC4B,IAApBG,oBAAoB,GAAG;IACvB,OAAO,KAAKhnU,MAAL,IAAe,IAAf,GAAsB,KAAKmmU,UAAL,CAAgBY,WAAhB,CAA4B,KAAK/mU,MAAjC,CAAtB,GAAiE,IAAxE;EACH;EACD;;;EACAinU,OAAO,GAAG;IACN,KAAK7wN,QAAL,CAAc9ujB,IAAd,CAAmB,IAAnB;EACH;EACD;;;EACAiujB,OAAO,CAAC5vjB,IAAD,EAAO;IACV,KAAK8G,KAAL,CAAWnF,IAAX,CAAgB3B,IAAhB;EACH;EACD;;;EACAuhxB,uBAAuB,CAAC16wB,QAAD,EAAW;IAC9B,KAAK4pjB,QAAL,CAAc9ujB,IAAd,CAAmBkF,QAAnB;EACH;EACD;;;EACAq6wB,eAAe,GAAG;IACd,IAAI,KAAK7mU,MAAL,IAAe,IAAnB,EAAyB;MACrB,KAAKh8c,IAAL,CAAUgD,iBAAV,CAA4B,MAAM,KAAKm/wB,UAAL,CAAgB51wB,KAAhB,CAAsB,KAAKyvc,MAA3B,CAAlC;IACH;EACJ;EACD;;;EACA4mU,eAAe,GAAG;IACd;IACA,MAAMO,aAAa,GAAG;MAClBR,KAAK,EAAE,KAAKA,KADM;MAElB1xvB,QAAQ,EAAGzoB,QAAD,IAAc;QACpB,KAAKxI,IAAL,CAAU2C,GAAV,CAAc,MAAM,KAAKugxB,uBAAL,CAA6B16wB,QAA7B,CAApB;MACH,CAJiB;MAKlB,oBAAoB,MAAM;QACtB,KAAKxI,IAAL,CAAU2C,GAAV,CAAc,MAAM,KAAKsgxB,OAAL,EAApB;MACH,CAPiB;MAQlBG,OAAO,EAAE,KAAKV,OARI;MASlBpnuB,IAAI,EAAE,KAAKA,IATO;MAUlB+nuB,QAAQ,EAAE,KAAK1rvB,QAVG;MAWlBksD,KAAK,EAAE,KAAKA,KAXM;MAYlB7kF,IAAI,EAAE,KAAKA;IAZO,CAAtB;;IAcA,IAAI,KAAKyjxB,SAAL,KAAmB,SAAvB,EAAkC;MAC9BU,aAAa,CAAC,gBAAD,CAAb,GAAkC,CAAC,GAAGxhxB,IAAJ,KAAa;QAC3C,KAAK3B,IAAL,CAAU2C,GAAV,CAAc,MAAM,KAAK4ujB,OAAL,CAAa5vjB,IAAb,CAApB;MACH,CAFD;IAGH;;IACD,KAAKq6c,MAAL,GAAc,KAAKmmU,UAAL,CAAgB1na,MAAhB,CAAuB,KAAKmnP,UAAL,CAAgBnwkB,aAAvC,EAAsD0xvB,aAAtD,CAAd;;IACA,IAAI,KAAKL,gBAAL,KAA0B,IAA9B,EAAoC;MAChC,KAAKA,gBAAL,GAAwB,KAAxB;MACA,KAAKlte,OAAL;IACH;EACJ;;AAtHoB;;AAwHzB4se,kBAAkB,CAAClkxB,IAAnB;EAAA,iBAA+GkkxB,kBAA/G,EAtJyGx9vB,+DAsJzG,CAAmJA,qDAAnJ,GAtJyGA,+DAsJzG,CAA6Kq9vB,sBAA7K,GAtJyGr9vB,+DAsJzG,CAAgNA,iDAAhN,GAtJyGA,+DAsJzG,CAAsO48vB,kBAAtO;AAAA;;AACAY,kBAAkB,CAACn8vB,IAAnB,kBAvJyGrB,+DAuJzG;EAAA,MAAmGw9vB,kBAAnG;EAAA;EAAA;EAAA;IAAA;MAvJyGx9vB,yDAuJzG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAxJyGA,+DAwJzG,CAA2Fw9vB,kBAA3F,EAA2H,CAAC;IAChHxjxB,IAAI,EAAEimB,oDAD0G;IAEhHtjB,IAAI,EAAE,CAAC;MACCmilB,QAAQ,EAAE,WADX;MAECx9jB,QAAQ,EAAE,YAFX;MAGCC,QAAQ,EAAG;IAHZ,CAAD;EAF0G,CAAD,CAA3H,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEvnB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,EAA0B;MAAEpsC,IAAI,EAAEqjxB;IAAR,CAA1B,EAA4D;MAAErjxB,IAAI,EAAEgmB,iDAASpqB;IAAjB,CAA5D,EAAiF;MAAEoE,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9IrF,IAAI,EAAEnE,mDAAQA;MADgI,CAAD,EAE9I;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACigxB,kBAAD;MAFP,CAF8I;IAA/B,CAAjF,CAAP;EAKlB,CAZxB,EAY0C;IAAE/lxB,EAAE,EAAE,CAAC;MACjCmD,IAAI,EAAEmmB,gDAAKA;IADsB,CAAD,EAEjC;MACCnmB,IAAI,EAAE49sB,sDADP;MAECj7sB,IAAI,EAAE,CAAC,SAAD;IAFP,CAFiC,CAAN;IAK1B+gxB,OAAO,EAAE,CAAC;MACV1jxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CALiB;IAO1B0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAPmB;IAS1BnmB,IAAI,EAAE,CAAC;MACPA,IAAI,EAAEmmB,gDAAKA;IADJ,CAAD,CAToB;IAW1Bm2B,IAAI,EAAE,CAAC;MACPt8C,IAAI,EAAEmmB,gDAAKA;IADJ,CAAD,CAXoB;IAa1BwS,QAAQ,EAAE,CAAC;MACX34B,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAbgB;IAe1Bw9vB,KAAK,EAAE,CAAC;MACR3jxB,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAfmB;IAiB1Bs9vB,SAAS,EAAE,CAAC;MACZzjxB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAjBe;IAmB1BitiB,QAAQ,EAAE,CAAC;MACXpzjB,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAnBgB;IAqB1B5c,KAAK,EAAE,CAAC;MACRzJ,IAAI,EAAEqmB,iDAAMA;IADJ,CAAD;EArBmB,CAZ1C;AAAA;;AAqCA,MAAMi+vB,qBAAN,CAA4B;;AAE5BA,qBAAqB,CAAChlxB,IAAtB;EAAA,iBAAkHglxB,qBAAlH;AAAA;;AACAA,qBAAqB,CAACl8wB,IAAtB,kBAhMyG4d,8DAgMzG;EAAA,MAAmHs+vB;AAAnH;AACAA,qBAAqB,CAACh8wB,IAAtB,kBAjMyG0d,8DAiMzG;;AACA;EAAA,mDAlMyGA,+DAkMzG,CAA2Fs+vB,qBAA3F,EAA8H,CAAC;IACnHtkxB,IAAI,EAAEhE,mDAD6G;IAEnH2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CAAC82uB,kBAAD,CADf;MAEC72uB,OAAO,EAAE,CAAC62uB,kBAAD;IAFV,CAAD;EAF6G,CAAD,CAA9H;AAAA;;AAQA,MAAMe,eAAN,CAAsB;;AAEtBA,eAAe,CAACjlxB,IAAhB;EAAA,iBAA4GilxB,eAA5G;AAAA;;AACAA,eAAe,CAACn8wB,IAAhB,kBA7MyG4d,8DA6MzG;EAAA,MAA6Gu+vB;AAA7G;AACAA,eAAe,CAACj8wB,IAAhB,kBA9MyG0d,8DA8MzG;EAAA,WAAyI,CAACq9vB,sBAAD,CAAzI;EAAA,UAA6KiB,qBAA7K;AAAA;;AACA;EAAA,mDA/MyGt+vB,+DA+MzG,CAA2Fu+vB,eAA3F,EAAwH,CAAC;IAC7GvkxB,IAAI,EAAEhE,mDADuG;IAE7G2G,IAAI,EAAE,CAAC;MACCgqC,OAAO,EAAE,CAAC62uB,kBAAD,CADV;MAECz5wB,OAAO,EAAE,CAACu6wB,qBAAD,CAFV;MAGCt8wB,SAAS,EAAE,CAACq7wB,sBAAD;IAHZ,CAAD;EAFuG,CAAD,CAAxH;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmB,kBAAN,CAAyB;EACrB/nxB,WAAW,CAACuE,IAAD,EAAO0ixB,OAAP,EACX;EACAxixB,UAFW,EAECkixB,OAFD,EAEU/tQ,KAFV,EAEiB8uE,QAFjB,EAE2B;IAClC;IACA,KAAKsgM,cAAL,GAAuBtB,UAAD,IAAgB;MAClC,KAAKA,UAAL,GAAkBA,UAAlB;;MACA,IAAI,KAAKuB,aAAL,IAAsB,KAAKA,aAAL,CAAmBrmxB,MAAnB,GAA4B,CAAtD,EAAyD;QACrD,KAAKqmxB,aAAL,CAAmBl3wB,OAAnB,CAA2B,CAAC,CAACsiB,MAAD,EAAS+8gB,OAAT,CAAD,KAAuB,KAAK83O,wBAAL,CAA8B70vB,MAA9B,EAAsC+8gB,OAAtC,CAAlD;QACA,KAAK63O,aAAL,GAAqB7lxB,SAArB;MACH;IACJ,CAND;;IAOA,KAAKmC,IAAL,GAAYA,IAAZ;IACA,KAAK+5jB,SAAL,GAAiB4qC,kEAAiB,CAACzkmB,UAAD,CAAlC;IACA,KAAKwixB,OAAL,GAAeA,OAAf;IACA,KAAKruQ,KAAL,GAAaA,KAAb;IACA,KAAK8uE,QAAL,GAAgBA,QAAhB;IACA,KAAKi/L,OAAL,GAAeA,OAAf;IACA,KAAKhyvB,IAAL;EACH;;EACY,IAATwzvB,SAAS,GAAG;IACZ,IAAI,CAAC,KAAKC,gBAAV,EAA4B;MACxB,KAAKA,gBAAL,GAAwB,IAAIxkO,yCAAJ,EAAxB;MACA,KAAKykO,mBAAL,GAA2B,KAAKD,gBAAL,CAAsBnhO,YAAtB,EAA3B;IACH;;IACD,OAAO,KAAKohO,mBAAZ;EACH;;EACiB,IAAdC,cAAc,GAAG;IACjB,IAAI,CAAC,KAAKC,qBAAV,EAAiC;MAC7B,KAAKA,qBAAL,GAA6B,IAAI3kO,yCAAJ,EAA7B;MACA,KAAK4kO,wBAAL,GAAgC,KAAKD,qBAAL,CAA2BthO,YAA3B,EAAhC;IACH;;IACD,OAAO,KAAKuhO,wBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIrue,OAAO,CAAC9mR,MAAD,EAAS;IACZ,MAAM+8gB,OAAO,GAAG,IAAIwT,yCAAJ,EAAhB;;IACA,IAAI,KAAK0a,SAAT,EAAoB;MAChB,IAAI,CAAC,KAAKooN,UAAV,EAAsB;QAClB,IAAI,CAAC,KAAKuB,aAAV,EAAyB;UACrB,KAAKA,aAAL,GAAqB,EAArB;QACH;;QACD,KAAKA,aAAL,CAAmB3hxB,IAAnB,CAAwB,CAAC+sB,MAAD,EAAS+8gB,OAAT,CAAxB;MACH,CALD,MAMK;QACD,KAAK83O,wBAAL,CAA8B70vB,MAA9B,EAAsC+8gB,OAAtC;MACH;IACJ;;IACD,OAAOA,OAAO,CAAC6W,YAAR,EAAP;EACH;EACD;;;EACAihO,wBAAwB,CAAC70vB,MAAD,EAAS+8gB,OAAT,EAAkB;IACtC;IACA,MAAM4d,OAAO,GAAIhhjB,KAAD,IAAW;MACvB,KAAKzI,IAAL,CAAU2C,GAAV,CAAc,MAAM;QAChBkpiB,OAAO,CAACpjiB,KAAR,CAAcA,KAAd;;QACA,IAAI,KAAKu7wB,qBAAT,EAAgC;UAC5B;UACA;UACA,KAAKA,qBAAL,CAA2Bn2wB,IAA3B,CAAgC;YAAEihB,MAAF;YAAUrmB;UAAV,CAAhC;QACH;MACJ,CAPD;IAQH,CATD;;IAUA,KAAKzI,IAAL,CAAUgD,iBAAV,CAA4B,MAAM;MAC9B,IAAI;QACA,KAAKm/wB,UAAL,CAAgBvse,OAAhB,CAAwB,KAAK8se,OAA7B,EAAsC;UAAE5zvB;QAAF,CAAtC,EAAkD7hB,IAAlD,CAAwDtO,KAAD,IAAW;UAC9D,KAAKqB,IAAL,CAAU2C,GAAV,CAAc,MAAM;YAChBkpiB,OAAO,CAACh+hB,IAAR,CAAalP,KAAb;YACAktiB,OAAO,CAAC+U,QAAR;;YACA,IAAI,KAAKijO,gBAAT,EAA2B;cACvB,KAAKA,gBAAL,CAAsBh2wB,IAAtB,CAA2B;gBAAEihB,MAAF;gBAAUnwB;cAAV,CAA3B;YACH;UACJ,CAND;QAOH,CARD,EAQG8qjB,OARH;MASH,CAVD,CAWA,OAAOl8gB,CAAP,EAAU;QACNk8gB,OAAO,CAACl8gB,CAAD,CAAP;MACH;IACJ,CAfD;EAgBH;EACD;;;EACAnd,IAAI,GAAG;IACH,IAAI,KAAK2piB,SAAT,EAAoB;MAChB,IAAI,gBAAgBvzjB,MAApB,EAA4B;QACxB,KAAK27wB,UAAL,GAAkBA,UAAlB;MACH,CAFD,MAGK;QACD,MAAMI,SAAS,GAAG,KAAKp/L,QAAL,GAAgB,SAAS,KAAKA,QAA9B,GAAyC,EAA3D;QACAy8C,MAAM,CAACkiJ,UAAP,CAAkB,KAAKY,OAAvB,EAAgC,KAAKe,cAArC,EAAqDlB,SAArD,EAAgE,KAAKH,OAArE,EAA8E,KAAK/tQ,KAAnF;MACH;IACJ;EACJ;;AArGoB;;AAuGzBmvQ,kBAAkB,CAACllxB,IAAnB;EAAA,iBAA+GklxB,kBAA/G,EArUyGx+vB,sDAqUzG,CAAmJA,iDAAnJ,GArUyGA,sDAqUzG,CAAyK68vB,qBAAzK,GArUyG78vB,sDAqUzG,CAA2MjqB,sDAA3M,GArUyGiqB,sDAqUzG,CAAmO08vB,kBAAnO,MArUyG18vB,sDAqUzG,CAAkR28vB,eAAlR,MArUyG38vB,sDAqUzG,CAA8Ty8vB,kBAA9T;AAAA;;AACA+B,kBAAkB,CAAC/kxB,KAAnB,kBAtUyGumB,gEAsUzG;EAAA,OAAmHw+vB,kBAAnH;EAAA,SAAmHA,kBAAnH;AAAA;;AACA;EAAA,mDAvUyGx+vB,+DAuUzG,CAA2Fw+vB,kBAA3F,EAA2H,CAAC;IAChHxkxB,IAAI,EAAEtE,qDAAUA;EADgG,CAAD,CAA3H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEsE,IAAI,EAAEgmB,iDAASpqB;IAAjB,CAAD,EAAsB;MAAEoE,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QACnFrF,IAAI,EAAElE,iDAD6E;QAEnF6G,IAAI,EAAE,CAACkgxB,qBAAD;MAF6E,CAAD;IAA/B,CAAtB,EAG3B;MAAE7ixB,IAAI,EAAE1B,MAAR;MAAgB+G,UAAU,EAAE,CAAC;QAC/BrF,IAAI,EAAElE,iDADyB;QAE/B6G,IAAI,EAAE,CAAC5G,sDAAD;MAFyB,CAAD;IAA5B,CAH2B,EAM3B;MAAEiE,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC+/wB,kBAAD;MAFP,CAFkC;IAA/B,CAN2B,EAW3B;MAAE1ixB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAACggxB,eAAD;MAFP,CAFkC;IAA/B,CAX2B,EAgB3B;MAAE3ixB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAClCrF,IAAI,EAAEnE,mDAAQA;MADoB,CAAD,EAElC;QACCmE,IAAI,EAAElE,iDADP;QAEC6G,IAAI,EAAE,CAAC8/wB,kBAAD;MAFP,CAFkC;IAA/B,CAhB2B,CAAP;EAqBlB,CAvBxB;AAAA;;AAyBA,MAAMyC,iBAAN,CAAwB;;AAExBA,iBAAiB,CAAC5lxB,IAAlB;EAAA,iBAA8G4lxB,iBAA9G;AAAA;;AACAA,iBAAiB,CAAC98wB,IAAlB,kBAnWyG4d,8DAmWzG;EAAA,MAA+Gk/vB;AAA/G;AACAA,iBAAiB,CAAC58wB,IAAlB,kBApWyG0d,8DAoWzG;EAAA,WAA6I,CAACw+vB,kBAAD;AAA7I;;AACA;EAAA,mDArWyGx+vB,+DAqWzG,CAA2Fk/vB,iBAA3F,EAA0H,CAAC;IAC/GllxB,IAAI,EAAEhE,mDADyG;IAE/G2G,IAAI,EAAE,CAAC;MACCqF,SAAS,EAAE,CAACw8wB,kBAAD;IADZ,CAAD;EAFyG,CAAD,CAA1H;AAAA;;AAOA,MAAMW,+BAAN,CAAsC;EAClC1oxB,WAAW,CAACuS,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKo2wB,uBAAL,GAA+B,KAA/B;EACH;;EACD9pD,UAAU,CAACx+tB,KAAD,EAAQ;IACd,IAAI,CAACA,KAAL,EAAY;MACR,KAAKkS,IAAL,CAAUzB,KAAV;IACH,CAFD,MAGK;MACD;MACA;MACA;MACA;MACA;MACA,IAAI,KAAKyB,IAAL,CAAUg1wB,oBAAV,KAAmClnxB,KAAnC,IAA4Cg6b,OAAO,CAAC,KAAK9nb,IAAL,CAAUg1wB,oBAAX,CAAP,KAA4C,KAA5F,EAAmG;QAC/F,KAAKoB,uBAAL,GAA+B,IAA/B;MACH;IACJ;EACJ;;EACDpqD,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAK0pQ,QAAL,GAAgB1pQ,EAAhB;;IACA,IAAI,KAAK0nxB,uBAAT,EAAkC;MAC9B,KAAKA,uBAAL,GAA+B,KAA/B;MACA,KAAKh+gB,QAAL,CAAc,IAAd;IACH;EACJ;;EACD2zd,iBAAiB,CAACr9tB,EAAD,EAAK;IAClB,KAAKo9tB,SAAL,GAAiBp9tB,EAAjB;EACH;;EACD2nxB,SAAS,CAACl6C,MAAD,EAAS;IACd,IAAI,KAAK/je,QAAT,EAAmB;MACf,KAAKA,QAAL,CAAc+je,MAAd;IACH;;IACD,IAAI,KAAKrQ,SAAT,EAAoB;MAChB,KAAKA,SAAL;IACH;EACJ;;AArCiC;;AAuCtCqqD,+BAA+B,CAAC7lxB,IAAhC;EAAA,iBAA4H6lxB,+BAA5H,EAnZyGn/vB,+DAmZzG,CAA6Kw9vB,kBAA7K;AAAA;;AACA2B,+BAA+B,CAACtgM,IAAhC,kBApZyG7+jB,+DAoZzG;EAAA,MAAgHm/vB,+BAAhH;EAAA;EAAA;IAAA;MApZyGn/vB,wDAoZzG;QAAA,OAAgH,qBAAhH;MAAA;IAAA;EAAA;EAAA,WApZyGA,gEAoZzG,CAA2S,CACnS;IACIqrJ,KAAK,EAAE,IADX;IAEIppK,OAAO,EAAEkztB,6DAFb;IAGIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM+5K,+BAAP;EAH3B,CADmS,CAA3S;AAAA;;AAOA;EAAA,mDA3ZyGn/vB,+DA2ZzG,CAA2Fm/vB,+BAA3F,EAAwI,CAAC;IAC7HnlxB,IAAI,EAAE4jlB,oDADuH;IAE7HjhlB,IAAI,EAAE,CAAC;MACCqF,SAAS,EAAE,CACP;QACIqpK,KAAK,EAAE,IADX;QAEIppK,OAAO,EAAEkztB,6DAFb;QAGIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM+5K,+BAAP;MAH3B,CADO,CADZ;MAQC79vB,QAAQ,EAAE;IARX,CAAD;EAFuH,CAAD,CAAxI,EAY4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEwjxB;IAAR,CAAD,CAAP;EAAwC,CAZlF,EAYoG;IAAE6B,SAAS,EAAE,CAAC;MAClGrlxB,IAAI,EAAE89sB,uDAD4F;MAElGn7sB,IAAI,EAAE,CAAC,UAAD,EAAa,CAAC,QAAD,CAAb;IAF4F,CAAD;EAAb,CAZpG;AAAA;;AAiBA,MAAM2ixB,oBAAN,CAA2B;;AAE3BA,oBAAoB,CAAChmxB,IAArB;EAAA,iBAAiHgmxB,oBAAjH;AAAA;;AACAA,oBAAoB,CAACl9wB,IAArB,kBA/ayG4d,8DA+azG;EAAA,MAAkHs/vB;AAAlH;AACAA,oBAAoB,CAACh9wB,IAArB,kBAhbyG0d,8DAgbzG;EAAA,UAAkJqttB,uDAAlJ,EAA+JixC,qBAA/J;AAAA;;AACA;EAAA,mDAjbyGt+vB,+DAibzG,CAA2Fs/vB,oBAA3F,EAA6H,CAAC;IAClHtlxB,IAAI,EAAEhE,mDAD4G;IAElH2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CAACy4uB,+BAAD,CADf;MAECx4uB,OAAO,EAAE,CAACw4uB,+BAAD,CAFV;MAGCp7wB,OAAO,EAAE,CAACspuB,uDAAD,EAAcixC,qBAAd;IAHV,CAAD;EAF4G,CAAD,CAA7H;AAAA;AASA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACxfA;AACA;AACA;AACA;;;;IAqBuHt+vB;IAAAA,4DA4Dsb;IA5DtbA,oDA4D+f;IA5D/fA,0DA4DwgB;;;;mBA5DxgBA;IAAAA,yDA4Dod;IA5DpdA,uDA4D+f;IA5D/fA,+DA4D+f;;;;;;IA5D/fA,qEA4DsR;IA5DtRA,4DA4DyU;IA5DzUA,4DA4DyU;IA5DzUA,wDA4Dsb;IA5DtbA,uDA4DshB;IA5DthBA,0DA4D+jB;IA5D/jBA,mEA4DukB;;;;mBA5DvkBA;IAAAA,uDA4D8U;IA5D9UA,yDA4D8U;IA5D9UA,uDA4D8b;IA5D9bA,wDA4D8b;IA5D9bA,uDA4D2hB;IA5D3hBA,yDA4D2hB;;;;;;IA5D3hBA;IAAAA,4DA4D6yB;IA5D7yBA,oDA4Ds3B;IA5Dt3BA,0DA4D+3B;;;;mBA5D/3BA;IAAAA,yDA4D20B;IA5D30BA,uDA4Ds3B;IA5Dt3BA,+DA4Ds3B;;;;;;IA5Dt3BA,qEA4D0lB;IA5D1lBA,4DA4D4oB;IA5D5oBA,4DA4D4oB;IA5D5oBA,wDA4D6yB;IA5D7yBA,uDA4D64B;IA5D74BA,0DA4Ds7B;IA5Dt7BA,mEA4D87B;;;;mBA5D97BA;IAAAA,uDA4D6wB;IA5D7wBA,wDA4D6wB;IA5D7wBA,yDA4DipB;IA5DjpBA,uDA4DqzB;IA5DrzBA,wDA4DqzB;IA5DrzBA,uDA4Dk5B;IA5Dl5BA,yDA4Dk5B;;;;;;IA5Dl5BA;IAAAA,4DA4D8sC;IA5D9sCA,oDA4DuxC;IA5DvxCA,0DA4DgyC;;;;mBA5DhyCA;IAAAA,yDA4D4uC;IA5D5uCA,uDA4DuxC;IA5DvxCA,+DA4DuxC;;;;;;IA5DvxCA,qEA4Di9B;IA5Dj9BA,4DA4DmgC;IA5DngCA,4DA4DmgC;IA5DngCA,wDA4D8sC;IA5D9sCA,uDA4D8yC;IA5D9yCA,0DA4Du1C;IA5Dv1CA,mEA4D+1C;;;;mBA5D/1CA;IAAAA,uDA4DwgC;IA5DxgCA,yDA4DwgC;IA5DxgCA,uDA4DstC;IA5DttCA,wDA4DstC;IA5DttCA,uDA4DmzC;IA5DnzCA,yDA4DmzC;;;;;;IA5DnzCA;IAAAA,4DA4DkqD;IA5DlqDA,oDA4D2uD;IA5D3uDA,0DA4DovD;;;;mBA5DpvDA;IAAAA,yDA4DgsD;IA5DhsDA,uDA4D2uD;IA5D3uDA,+DA4D2uD;;;;;;IA5D3uDA,qEA4Dk3C;IA5Dl3CA,4DA4Dm6C;IA5Dn6CA,4DA4Dm6C;IA5Dn6CA,wDA4DkqD;IA5DlqDA,uDA4DkwD;IA5DlwDA,0DA4D2yD;IA5D3yDA,mEA4DmzD;;;;mBA5DnzDA;IAAAA,uDA4DkoD;IA5DloDA,wDA4DkoD;IA5DloDA,yDA4Dw6C;IA5Dx6CA,uDA4D0qD;IA5D1qDA,wDA4D0qD;IA5D1qDA,uDA4DuwD;IA5DvwDA,yDA4DuwD;;;;AA/E93D,MAAMu/vB,gBAAN,CAAuB;AAGvB;AACA;AACA;;;AACA,MAAMC,iBAAN,CAAwB;EACpB/oxB,WAAW,CAACswI,MAAD,EAAS;IAChB,IAAIA,MAAJ,EAAY;MACR,KAAK04oB,OAAL,CAAa14oB,MAAM,CAAC16E,IAApB;IACH;EACJ;;EACDoztB,OAAO,CAACpztB,IAAD,EAAO;IACV,KAAKqztB,UAAL,GAAkBrztB,IAAlB;EACH;;EACDsztB,OAAO,GAAG;IACN,OAAO,KAAKD,UAAZ;EACH;;AAXmB;AAaxB;;;AAAmBF,iBAAiB,CAAClmxB,IAAlB;EAAA,iBAA8GkmxB,iBAA9G,EAAoGx/vB,sDAApG,CAAiJu/vB,gBAAjJ;AAAA;AACnB;;;AAAmBC,iBAAiB,CAAC/lxB,KAAlB,kBADoGumB,gEACpG;EAAA,OAAkHw/vB,iBAAlH;EAAA,SAAkHA,iBAAlH;EAAA,YAAiJ;AAAjJ;;AACnB;EAAA,mDAFuHx/vB,+DAEvH,CAA2Fw/vB,iBAA3F,EAA0H,CAAC;IAC/GxlxB,IAAI,EAAEtE,qDADyG;IAE/GiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEulxB,gBAAR;MAA0BlgxB,UAAU,EAAE,CAAC;QACrErF,IAAI,EAAEnE,mDAAQA;MADuD,CAAD;IAAtC,CAAD,CAAP;EAElB,CAPxB;AAAA;AASA;AACA;AACA;;;AACA,MAAM+pxB,mBAAN,CAA0B;EACtBnpxB,WAAW,CAAC47P,QAAD,EAAW/mM,EAAX,EAAe;IACtB,KAAK+mM,QAAL,GAAgBA,QAAhB;IACA,KAAK/mM,EAAL,GAAUA,EAAV;EACH;;EACDu5iB,QAAQ,GAAG;IACP,IAAItpmB,KAAK,CAACikB,OAAN,CAAc,KAAKzN,SAAL,CAAe,CAAf,CAAd,CAAJ,EAAsC;MAClC,MAAM8twB,YAAY,GAAG,KAAK9twB,SAA1B;MACA8twB,YAAY,CAACr4wB,OAAb,CAAsBoiC,GAAD,IAAS;QAC1B,KAAKyoN,QAAL,CAAc9gP,YAAd,CAA2B,KAAK+5C,EAAL,CAAQ7+B,aAAnC,EAAkDmd,GAAG,CAAC,CAAD,CAArD,EAA0DA,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAZ,GAAkB,EAA5E;MACH,CAFD;IAGH,CALD,MAMK;MACD,MAAM73B,SAAS,GAAG,KAAKA,SAAvB;;MACA,IAAIA,SAAS,CAAC,CAAD,CAAb,EAAkB;QACd,KAAKsgP,QAAL,CAAc9gP,YAAd,CAA2B,KAAK+5C,EAAL,CAAQ7+B,aAAnC,EAAkD1a,SAAS,CAAC,CAAD,CAA3D,EAAgEA,SAAS,CAAC,CAAD,CAAT,GAAeA,SAAS,CAAC,CAAD,CAAxB,GAA8B,EAA9F;MACH;IACJ;EACJ;;AAlBqB;AAoB1B;;;AAAmB6twB,mBAAmB,CAACtmxB,IAApB;EAAA,iBAAgHsmxB,mBAAhH,EAlCoG5/vB,+DAkCpG,CAAqJA,oDAArJ,GAlCoGA,+DAkCpG,CAA8KA,qDAA9K;AAAA;AACnB;;;AAAmB4/vB,mBAAmB,CAAC/gM,IAApB,kBAnCoG7+jB,+DAmCpG;EAAA,MAAoG4/vB,mBAApG;EAAA;EAAA;IAAA;EAAA;AAAA;;AACnB;EAAA,mDApCuH5/vB,+DAoCvH,CAA2F4/vB,mBAA3F,EAA4H,CAAC;IACjH5lxB,IAAI,EAAE4jlB,oDAD2G;IAEjHjhlB,IAAI,EAAE,CAAC;MACC2kB,QAAQ,EAAE;IADX,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAAD,EAAyB;MAAE12mB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAzB,CAAP;EAA2D,CALrG,EAKuH;IAAEr0B,SAAS,EAAE,CAAC;MACrH/X,IAAI,EAAEmmB,gDAAKA;IAD0G,CAAD;EAAb,CALvH;AAAA;;AASA,MAAM2/vB,mBAAN,CAA0B;EACtBrpxB,WAAW,CAACspxB,iBAAD,EAAoB;IAC3B,KAAKA,iBAAL,GAAyBA,iBAAzB;IACA,KAAKluiB,OAAL,GAAe,MAAf;IACA,KAAKloO,KAAL,GAAa,MAAb;IACA,KAAKq2wB,mBAAL,GAA2B,eAA3B;EACH;;EACDv6uB,WAAW,CAACC,OAAD,EAAU;IACjB;IACA,IAAI,KAAKggB,GAAL,IAAY,CAAC,KAAKA,GAAL,CAASI,QAAT,CAAkB,GAAlB,CAAb,IAAuC,KAAKi6tB,iBAAL,CAAuBL,UAAlE,EAA8E;MAC1E,KAAKh6tB,GAAL,GAAY,GAAE,KAAKq6tB,iBAAL,CAAuBJ,OAAvB,EAAiC,IAAG,KAAKj6tB,GAAI,EAA3D;IACH;EACJ;;AAZqB;AAc1B;;;AAAmBo6tB,mBAAmB,CAACxmxB,IAApB;EAAA,iBAAgHwmxB,mBAAhH,EA3DoG9/vB,+DA2DpG,CAAqJw/vB,iBAArJ;AAAA;AACnB;;;AAAmBM,mBAAmB,CAACz+vB,IAApB,kBA5DoGrB,+DA4DpG;EAAA,MAAoG8/vB,mBAApG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WA5DoG9/vB,kEA4DpG;EAAA;EAAA;EAAA;EAAA;IAAA;MA5DoGA,wDA4DsR,yEAA1X;MA5DoGA,wDA4D0lB,yEAA9rB;MA5DoGA,wDA4Di9B,yEAArjC;MA5DoGA,wDA4Dk3C,yEAAt9C;IAAA;;IAAA;MA5DoGA,wDA4DqS,wCAAzY;MA5DoGA,uDA4DymB,GAA7sB;MA5DoGA,wDA4DymB,uCAA7sB;MA5DoGA,uDA4Dg+B,GAApkC;MA5DoGA,wDA4Dg+B,uCAApkC;MA5DoGA,uDA4Di4C,GAAr+C;MA5DoGA,wDA4Di4C,sCAAr+C;IAAA;EAAA;EAAA,eAA2gEwllB,iDAA3gE,EAA+mEo6K,mBAA/mE;EAAA;AAAA;;AACnB;EAAA,mDA7DuH5/vB,+DA6DvH,CAA2F8/vB,mBAA3F,EAA4H,CAAC;IACjH9lxB,IAAI,EAAEimB,oDAD2G;IAEjHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,iBAAZ;MAA+BC,QAAQ,EAAE,gjDAAzC;MAA2lDjb,MAAM,EAAE,CAAC,0CAAD;IAAnmD,CAAD;EAF2G,CAAD,CAA5H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEwlxB;IAAR,CAAD,CAAP;EAAuC,CAHjF,EAGmG;IAAE95tB,GAAG,EAAE,CAAC;MAC3F1rD,IAAI,EAAEmmB,gDAAKA;IADgF,CAAD,CAAP;IAEnF0xN,OAAO,EAAE,CAAC;MACV73O,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAF0E;IAInFxW,KAAK,EAAE,CAAC;MACR3P,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAJ4E;IAMnFtW,MAAM,EAAE,CAAC;MACT7P,IAAI,EAAEmmB,gDAAKA;IADF,CAAD,CAN2E;IAQnF8/vB,OAAO,EAAE,CAAC;MACVjmxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAR0E;IAUnF6/vB,mBAAmB,EAAE,CAAC;MACtBhmxB,IAAI,EAAEmmB,gDAAKA;IADW,CAAD,CAV8D;IAYnFpO,SAAS,EAAE,CAAC;MACZ/X,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAZwE;IAcnFijM,KAAK,EAAE,CAAC;MACRppN,IAAI,EAAEmmB,gDAAKA;IADH,CAAD;EAd4E,CAHnG;AAAA;AAqBA;AACA;AACA;AACA;;;AACA,MAAM+/vB,gBAAN,CAAuB;EACL,OAAPp+wB,OAAO,CAACilI,MAAD,EAAS;IACnB,OAAO;MACHhlI,QAAQ,EAAEm+wB,gBADP;MAEHl+wB,SAAS,EAAE,CACP;QAAEC,OAAO,EAAEs9wB,gBAAX;QAA6BhvJ,QAAQ,EAAExpf;MAAvC,CADO;IAFR,CAAP;EAMH;;AARkB;AAUvB;;;AAAmBm5oB,gBAAgB,CAAC5mxB,IAAjB;EAAA,iBAA6G4mxB,gBAA7G;AAAA;AACnB;;;AAAmBA,gBAAgB,CAAC99wB,IAAjB,kBAjGoG4d,8DAiGpG;EAAA,MAA8GkgwB;AAA9G;AAEnB;;AAAmBA,gBAAgB,CAAC59wB,IAAjB,kBAnGoG0d,8DAmGpG;EAAA,UAA0IutmB,yDAA1I;AAAA;;AACnB;EAAA,mDApGuHvtmB,+DAoGvH,CAA2FkgwB,gBAA3F,EAAyH,CAAC;IAC9GlmxB,IAAI,EAAEhE,mDADwG;IAE9G2G,IAAI,EAAE,CAAC;MACCoH,OAAO,EAAE,CAACwpnB,yDAAD,CADV;MAEC7mlB,YAAY,EAAE,CACVo5uB,mBADU,EAEVF,mBAFU,CAFf;MAMCj5uB,OAAO,EAAE,CAACm5uB,mBAAD;IANV,CAAD;EAFwG,CAAD,CAAzH;AAAA;AAYA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gBAsV+F9/vB;;IAAAA,4DA6kBi3C;IA7kBj3CA,wDA6kBy3C;MA7kBz3CA,2DA6kBy3C;MAAA,eA7kBz3CA,2DA6kBy3C;MAAA,OA7kBz3CA,yDA6kBm4C,kCAAV;IAAA;IA7kBz3CA,0DA6kBmmD;;;;mBA7kBnmDA;IAAAA,wDA6kB49C;;;;;;gBA7kB59CA;;IAAAA,4DA6kBm5D;IA7kBn5DA,wDA6kB25D;MA7kB35DA,2DA6kB25D;MAAA,eA7kB35DA,2DA6kB25D;MAAA,OA7kB35DA,yDA6kBq6D,6BAAV;IAAA;IA7kB35DA,0DA6kBqjE;;;;;;gBA7kBrjEA;;IAAAA,4DA6kBq5E;IA7kBr5EA,wDA6kB65E;MA7kB75EA,2DA6kB65E;MAAA,eA7kB75EA,2DA6kB65E;MAAA,OA7kB75EA,yDA6kBu6E,mCAAV;IAAA;IA7kB75EA,0DA6kB2oF;;;;mBA7kB3oFA;IAAAA,wDA6kBkgF;;;;;;gBA7kBlgFA;;IAAAA,4DAg0B0zB;IAh0B1zBA,wDAg0Bk0B;MAAA,oBAh0Bl0BA,2DAg0Bk0B;MAAA;MAAA,eAh0Bl0BA,2DAg0Bk0B;MAAA,OAh0Bl0BA,yDAg0B40B,+BAAV;IAAA;IAh0Bl0BA,0DAg0BisC;;;;;mBAh0BjsCA;IAAAA,wDAg0B++B;IAh0B/+BA,yDAg0Bi6B;;;;;;IAh0Bj6BA,4DAg0B+uB;IAh0B/uBA,wDAg0B0zB;IAh0B1zBA,0DAg0BgtC;;;;;IAh0BhtCA,uDAg0Bo4B;IAh0Bp4BA,wDAg0Bo4B;;;;;;IAh0Bp4BA,uDAmkC4rB;;;;;mBAnkC5rBA;IAAAA,wDAmkCkvB;;;;;;IAnkClvBA,uDAmkC26B;;;;oBAnkC36BA;IAAAA,wDAmkCw+B;;;;;;iBAnkCx+BA;;IAAAA,4DAmkC4kC;IAnkC5kCA,wDAmkColC;MAAA,oBAnkCplCA,2DAmkColC;MAAA;MAAA,gBAnkCplCA,2DAmkColC;MAAA,OAnkCplCA,yDAmkC8lC,4BAAV;IAAA;IAnkCplCA,0DAmkCu8C;;;;;mBAnkCv8CA;IAAAA,wDAmkCqvC;IAnkCrvCA,yDAmkCyqC;;;;;;IAnkCzqCA,4DAmkCs2B;IAnkCt2BA,wDAmkC26B;IAnkC36BA,wDAmkC4kC;IAnkC5kCA,0DAmkCs9C;;;;;mBAnkCt9CA;IAAAA,uDAmkCk7B;IAnkCl7BA,wDAmkCk7B;IAnkCl7BA,uDAmkCgpC;IAnkChpCA,wDAmkCgpC;;;;;;;;;;;;iBAnkChpCA;;IAAAA,4DAmkC1C;IAnkC0CA,wDAmkC2F;MAnkC3FA,2DAmkC2F;MAAA,gBAnkC3FA,2DAmkC2F;MAAA,OAnkC3FA,yDAmkC6G,uBAAlB;IAAA;MAnkC3FA,2DAmkC2F;MAAA,gBAnkC3FA,2DAmkC2F;MAAA,OAnkC3FA,yDAmkCqJ,wDAA1D;IAAA;MAnkC3FA,2DAmkC2F;MAAA,gBAnkC3FA,2DAmkC2F;MAAA,OAnkC3FA,yDAmkCmN,0BAAxH;IAAA;MAnkC3FA,2DAmkC2F;MAAA,gBAnkC3FA,2DAmkC2F;MAAA,OAnkC3FA,yDAmkC4P,2BAAjK;IAAA;IAnkC3FA,0DAmkCugB;IAnkCvgBA,4DAmkC+hB;IAnkC/hBA,wDAmkC4rB;IAnkC5rBA,0DAmkC01B;IAnkC11BA,wDAmkCs2B;IAnkCt2BA,0DAmkCg+C;;;;mBAnkCh+CA;IAAAA,uDAmkCuR;IAnkCvRA,wDAmkCuR;IAnkCvRA,uDAmkCoiB;IAnkCpiBA,wDAmkCoiB,YAnkCpiBA,6DAmkCoiB;IAnkCpiBA,uDAmkCutB;IAnkCvtBA,wDAmkCutB;IAnkCvtBA,uDAmkC63B;IAnkC73BA,wDAmkC63B;;;;;;iBAnkC73BA;;IAAAA,4DAmkCk/C;IAnkCl/CA,wDAmkC0gD;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkCwhD,0CAAd;IAAA;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkCulD,mDAA7E;IAAA;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkCgqD,sDAAtJ;IAAA;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkC2tD,2CAAjN;IAAA;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkC4xD,oDAAlR;IAAA;MAnkC1gDA,2DAmkC0gD;MAAA,gBAnkC1gDA,2DAmkC0gD;MAAA,OAnkC1gDA,yDAmkC21D,+BAAjV;IAAA;IAnkC1gDA,0DAmkCkjE;;;;mBAnkCljEA;IAAAA,wDAmkCm7D;;;;;;gBAnkCn7DA;;IAAAA,qEAgvC+qC;IAhvC/qCA,uDAgvCyuC;IAhvCzuCA,4DAgvC+2C;IAhvC/2CA,wDAgvCm8C;MAhvCn8CA,2DAgvCm8C;MAAA,eAhvCn8CA,2DAgvCm8C;MAAA,OAhvCn8CA,yDAgvC68C,iBAAS,QAAT,EAAV;IAAA;IAhvCn8CA,0DAgvCimD;IAhvCjmDA,uDAgvCknD;IAhvClnDA,4DAgvC6tD;IAhvC7tDA,wDAgvCquD;MAhvCruDA,2DAgvCquD;MAAA,eAhvCruDA,2DAgvCquD;MAAA,OAhvCruDA,yDAgvC+uD,iBAAS,QAAT,EAAV;IAAA;IAhvCruDA,0DAgvC64D;IAhvC74DA,mEAgvCq6D;;;;mBAhvCr6DA;IAAAA,uDAgvC6uC;IAhvC7uCA,wDAgvC6uC;IAhvC7uCA,uDAgvCi/C;IAhvCj/CA,wDAgvCi/C;IAhvCj/CA,uDAgvCwnD;IAhvCxnDA,wDAgvCwnD;IAhvCxnDA,uDAgvCmxD;IAhvCnxDA,wDAgvCmxD;;;;;;gBAhvCnxDA;;IAAAA,4DAgvCw7D;IAhvCx7DA,wDAgvC0jE;MAhvC1jEA,2DAgvC0jE;MAAA,eAhvC1jEA,2DAgvC0jE;MAAA,OAhvC1jEA,yDAgvCokE,yBAAV;IAAA;IAhvC1jEA,0DAgvC2tE;IAhvC3tEA,uDAgvC0uE;IAhvC1uEA,4DAgvCi1E;IAhvCj1EA,wDAgvCy1E;MAhvCz1EA,2DAgvCy1E;MAAA,eAhvCz1EA,2DAgvCy1E;MAAA,OAhvCz1EA,yDAgvCm2E,yBAAV;IAAA;IAhvCz1EA,0DAgvC4/E;;;;mBAhvC5/EA;IAAAA,uDAgvComE;IAhvCpmEA,wDAgvComE;IAhvCpmEA,uDAgvCgvE;IAhvChvEA,wDAgvCgvE;IAhvChvEA,uDAgvCm4E;IAhvCn4EA,wDAgvCm4E;;;;;;;;;;;;;iBAhvCn4EA;;IAAAA,4DA8sDywD;IA9sDzwDA,wDA8sDi0D;MA9sDj0DA,2DA8sDi0D;MAAA,eA9sDj0DA,2DA8sDi0D;MAAA,OA9sDj0DA,yDA8sDm1D,sBAAlB;IAAA;MA9sDj0DA,2DA8sDi0D;MAAA,gBA9sDj0DA,2DA8sDi0D;MAAA,OA9sDj0DA,yDA8sD24D,gCAA1E;IAAA;MA9sDj0DA,2DA8sDi0D;MAAA,gBA9sDj0DA,2DA8sDi0D;MAAA,OA9sDj0DA,yDA8sD68D,iCAA5I;IAAA;MA9sDj0DA,2DA8sDi0D;MAAA,gBA9sDj0DA,2DA8sDi0D;MAAA,OA9sDj0DA,yDA8sD8gE,8BAAqB,KAArB,iCAAmD,KAAnD,EAA7M;IAAA;IA9sDj0DA,0DA8sDq1E;;;;mBA9sDr1EA;IAAAA,wDA8sDspE;;;;;;iBA9sDtpEA;;IAAAA,4DA8sDm3E;IA9sDn3EA,wDA8sDi7E;MA9sDj7EA,2DA8sDi7E;MAAA,gBA9sDj7EA,2DA8sDi7E;MAAA,OA9sDj7EA,yDA8sDm8E,uBAAlB;IAAA;MA9sDj7EA,2DA8sDi7E;MAAA,gBA9sDj7EA,2DA8sDi7E;MAAA,OA9sDj7EA,yDA8sD6/E,gCAA5E;IAAA;MA9sDj7EA,2DA8sDi7E;MAAA,gBA9sDj7EA,2DA8sDi7E;MAAA,OA9sDj7EA,yDA8sDikF,iCAAhJ;IAAA;MA9sDj7EA,2DA8sDi7E;MAAA,gBA9sDj7EA,2DA8sDi7E;MAAA,OA9sDj7EA,yDA8sDooF,8BAAqB,OAArB,iCAAqD,KAArD,EAAnN;IAAA;IA9sDj7EA,0DA8sDy9F;;;;mBA9sDz9FA;IAAAA,wDA8sDoxF;;;;;;iBA9sDpxFA;;IAAAA,4DA8sDy/F;IA9sDz/FA,wDA8sD8iG;MA9sD9iGA,2DA8sD8iG;MAAA,gBA9sD9iGA,2DA8sD8iG;MAAA,OA9sD9iGA,yDA8sD2jG,8BAAqB,QAArB,iCAAsD,IAAtD,EAAb;IAAA;IA9sD9iGA,0DA8sDw1G;;;;mBA9sDx1GA;IAAAA,wDA8sDosG;;;;;;iBA9sDpsGA;;IAAAA,4DA8sDq3G;IA9sDr3GA,wDA8sD27G;MA9sD37GA,2DA8sD27G;MAAA,gBA9sD37GA,2DA8sD27G;MAAA,OA9sD37GA,yDA8sDw8G,8BAAqB,QAArB,iCAAsD,IAAtD,EAAb;IAAA;MA9sD37GA,2DA8sD27G;MAAA,gBA9sD37GA,2DA8sD27G;MAAA,OA9sD37GA,yDA8sDujH,uBAA5H;IAAA;MA9sD37GA,2DA8sD27G;MAAA,gBA9sD37GA,2DA8sD27G;MAAA,OA9sD37GA,yDA8sDonH,gCAAzL;IAAA;MA9sD37GA,2DA8sD27G;MAAA,gBA9sD37GA,2DA8sD27G;MAAA,OA9sD37GA,yDA8sD2rH,iCAAhQ;IAAA;IA9sD37GA,0DA8sDihI;;;;mBA9sDjhIA;IAAAA,wDA8sD+yH;;;;;;IA9sD/yHA,4DA8sD+mD;IA9sD/mDA,wDA8sDywD;IA9sDzwDA,wDA8sDm3E;IA9sDn3EA,wDA8sDy/F;IA9sDz/FA,wDA8sDq3G;IA9sDr3GA,0DA8sDgjI;;;;mBA9sDhjIA;IAAAA,uDA8sDkuD;IA9sDluDA,oEA8sDkuD;IA9sDluDA,wDA8sDksD;IA9sDlsDA,yDA8sD4oD;IA9sD5oDA,uDA8sDqmE;IA9sDrmEA,wDA8sDqmE;IA9sDrmEA,uDA8sD+tF;IA9sD/tFA,wDA8sD+tF;IA9sD/tFA,uDA8sDmpG;IA9sDnpGA,wDA8sDmpG;IA9sDnpGA,uDA8sDqvH;IA9sDrvHA,wDA8sDqvH;;;;;;;;;;AAliEp1H,IAAIogwB,aAAJ;;AACA,CAAC,UAAUA,aAAV,EAAyB;EACtBA,aAAa,CAACA,aAAa,CAAC,KAAD,CAAb,GAAuB,CAAxB,CAAb,GAA0C,KAA1C;EACAA,aAAa,CAACA,aAAa,CAAC,SAAD,CAAb,GAA2B,CAA5B,CAAb,GAA8C,SAA9C;EACAA,aAAa,CAACA,aAAa,CAAC,OAAD,CAAb,GAAyB,CAA1B,CAAb,GAA4C,OAA5C;EACAA,aAAa,CAACA,aAAa,CAAC,MAAD,CAAb,GAAwB,CAAzB,CAAb,GAA2C,MAA3C;AACH,CALD,EAKGA,aAAa,KAAKA,aAAa,GAAG,EAArB,CALhB;;AAOA,IAAIC,cAAJ;;AACA,CAAC,UAAUA,cAAV,EAA0B;EACvBA,cAAc,CAACA,cAAc,CAAC,OAAD,CAAd,GAA0B,CAA3B,CAAd,GAA8C,OAA9C;EACAA,cAAc,CAACA,cAAc,CAAC,UAAD,CAAd,GAA6B,CAA9B,CAAd,GAAiD,UAAjD;EACAA,cAAc,CAACA,cAAc,CAAC,QAAD,CAAd,GAA2B,CAA5B,CAAd,GAA+C,QAA/C;EACAA,cAAc,CAACA,cAAc,CAAC,WAAD,CAAd,GAA8B,CAA/B,CAAd,GAAkD,WAAlD;AACH,CALD,EAKGA,cAAc,KAAKA,cAAc,GAAG,EAAtB,CALjB;;AAOA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,OAAD,CAAX,GAAuB,OAAvB;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,WAA3B;AACH,CAHD,EAGGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAHd;;AAKAt+Q,yCAAA,CAAa+D,uDAAb;AACA/D,yCAAA,CAAaiE,wDAAb;AACAjE,yCAAA,CAAa6D,mDAAb;AACA7D,yCAAA,CAAaqE,iDAAb;AACArE,yCAAA,CAAa0D,2DAAb;AACA,MAAM66Q,QAAQ,GAAGv+Q,kCAAjB;;AAEA,MAAMw+Q,YAAN,CAAmB;EACA,OAARj8wB,QAAQ,CAAC6nC,IAAD,EAAOwB,IAAP,EAAa;IACxB,IAAItwC,OAAJ;IACA,OAAO,YAAY;MACf,MAAMm1B,OAAO,GAAG,IAAhB;MAAA,MAAsB91B,IAAI,GAAGsI,SAA7B;MACA3H,OAAO,GAAGywC,YAAY,CAACzwC,OAAD,CAAtB;MACArB,UAAU,CAAC,MAAM;QACbmwC,IAAI,CAACrgB,KAAL,CAAW0G,OAAX,EAAoB91B,IAApB;MACH,CAFS,EAEPixC,IAFO,CAAV;IAGH,CAND;EAOH;;EAED6yuB,WAAW,CAACnquB,IAAD,EAAO;IACd,OAAO,IAAI/6C,KAAJ,CAAU+6C,IAAV,EAAgBi4S,IAAhB,CAAqB,CAArB,CAAP;EACH;;EACDmyb,cAAc,CAACh5pB,IAAD,EAAOa,MAAP,EAAe;IACzB,IAAI,CAACb,IAAL,EAAW;MACP,OAAO,IAAP;IACH,CAFD,MAGK,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC/B,OAAO64pB,QAAQ,CAAC74pB,IAAD,EAAOa,MAAP,CAAf;IACH,CAFI,MAGA;MACD,OAAOg4pB,QAAQ,CAAC74pB,IAAI,CAACi8Y,MAAL,EAAD,CAAf;IACH;EACJ;;EACDg9Q,WAAW,CAACj5pB,IAAD,EAAOa,MAAP,EAAe;IACtB,IAAIb,IAAI,KAAK,EAAb,EAAiB;MACb,OAAO,IAAP;IACH;;IACD,OAAO64pB,QAAQ,CAAC74pB,IAAD,EAAOa,MAAP,EAAe,IAAf,CAAR,CAA6Bke,OAA7B,EAAP;EACH,CA/Bc,CAgCf;;;EACAm6oB,qBAAqB,CAAChhxB,OAAD,EAAUynH,QAAV,EAAoB6oC,gBAApB,EAAsC2wnB,OAAtC,EAA+C;IAChE,IAAIjhxB,OAAJ,EAAa;MACT,OAAO2gxB,QAAQ,CAAC3gxB,OAAO,CAAC+jgB,MAAR,EAAD,CAAf;IACH,CAFD,MAGK,IAAIk9Q,OAAO,IAAIA,OAAO,CAACr9Q,OAAR,CAAgB+8Q,QAAQ,EAAxB,CAAf,EAA4C;MAC7C,OAAOA,QAAQ,CAACM,OAAO,CAACl9Q,MAAR,EAAD,CAAf;IACH,CAFI,MAGA,IAAIzzW,gBAAJ,EAAsB;MACvB,IAAI7oC,QAAQ,IAAIA,QAAQ,CAACA,QAAQ,CAAChvH,MAAV,CAAxB,EAA2C;QACvC,OAAOkoxB,QAAQ,CAACl5pB,QAAQ,CAACA,QAAQ,CAAChvH,MAAV,CAAR,CAA0BsrgB,MAA1B,EAAD,CAAf;MACH;IACJ,CAJI,MAKA,IAAIt8Y,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAAxB,EAA6B;MAC9B,OAAOk5pB,QAAQ,CAACl5pB,QAAQ,CAAC,CAAD,CAAR,CAAYs8Y,MAAZ,EAAD,CAAf;IACH;;IACD,OAAO48Q,QAAQ,EAAf;EACH,CAjDc,CAkDf;;;EACAO,YAAY,CAAChqxB,KAAD,EAAQo5J,gBAAR,EAA0B;IAClC,IAAI30J,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,CAAJ,EAA0B;MACtB,IAAI,CAACA,KAAK,CAACuB,MAAX,EAAmB;QACf,OAAOgoxB,cAAc,CAACU,QAAtB;MACH,CAFD,MAGK,IAAI,OAAOjqxB,KAAK,CAAC,CAAD,CAAZ,KAAoB,QAAxB,EAAkC;QACnC,OAAOupxB,cAAc,CAACW,SAAtB;MACH,CAFI,MAGA,IAAIT,QAAQ,CAAC77Q,OAAT,CAAiB5tgB,KAAK,CAAC,CAAD,CAAtB,CAAJ,EAAgC;QACjC,OAAOupxB,cAAc,CAACU,QAAtB;MACH;IACJ,CAVD,MAWK;MACD,IAAI,OAAOjqxB,KAAP,KAAiB,QAArB,EAA+B;QAC3B,OAAOupxB,cAAc,CAACrmtB,MAAtB;MACH,CAFD,MAGK,IAAIumtB,QAAQ,CAAC77Q,OAAT,CAAiB5tgB,KAAjB,CAAJ,EAA6B;QAC9B,OAAOupxB,cAAc,CAACY,KAAtB;MACH;IACJ;;IACD,OAAO/wnB,gBAAgB,GAAGmwnB,cAAc,CAACU,QAAlB,GAA6BV,cAAc,CAACY,KAAnE;EACH,CAxEc,CAyEf;;;EACAC,mBAAmB,CAACpqxB,KAAD,EAAQiwI,MAAR,EAAgB;IAC/B,IAAIo6oB,MAAJ;;IACA,QAAQ,KAAKL,YAAL,CAAkBhqxB,KAAlB,EAAyBiwI,MAAM,CAACmpB,gBAAhC,CAAR;MACI,KAAMmwnB,cAAc,CAACrmtB,MAArB;QACImntB,MAAM,GAAGrqxB,KAAK,GAAG,CAACypxB,QAAQ,CAACzpxB,KAAD,EAAQiwI,MAAM,CAACxe,MAAf,EAAuB,IAAvB,CAAT,CAAH,GAA4C,EAA1D;QACA;;MACJ,KAAM83pB,cAAc,CAACW,SAArB;QACIG,MAAM,GAAGrqxB,KAAK,CAAC4J,GAAN,CAAUof,CAAC,IAAIA,CAAC,GAAGygwB,QAAQ,CAACzgwB,CAAD,EAAIinH,MAAM,CAACxe,MAAX,EAAmB,IAAnB,CAAX,GAAsC,IAAtD,EAA4DlyH,MAA5D,CAAmEy6b,OAAnE,CAAT;QACA;;MACJ,KAAMuvV,cAAc,CAACY,KAArB;QACIE,MAAM,GAAGrqxB,KAAK,GAAG,CAACypxB,QAAQ,CAACzpxB,KAAK,CAAC6sgB,MAAN,EAAD,CAAT,CAAH,GAAgC,EAA9C;QACA;;MACJ,KAAM08Q,cAAc,CAACU,QAArB;QACII,MAAM,GAAG,CAACrqxB,KAAK,IAAI,EAAV,EAAc4J,GAAd,CAAkBof,CAAC,IAAIygwB,QAAQ,CAACzgwB,CAAC,CAAC6jf,MAAF,EAAD,CAA/B,CAAT;QACA;;MACJ;QACIw9Q,MAAM,GAAG,EAAT;IAdR;;IAgBA,OAAOA,MAAP;EACH,CA7Fc,CA8Ff;;;EACAC,qBAAqB,CAAC74pB,MAAD,EAASzxH,KAAT,EAAgBuqxB,SAAhB,EAA2B;IAC5C,QAAQA,SAAR;MACI,KAAMhB,cAAc,CAACrmtB,MAArB;QACI,OAAOljE,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD,CAAL,CAASyxH,MAAT,CAAgBA,MAAhB,CAAnB;;MACJ,KAAM83pB,cAAc,CAACW,SAArB;QACI,OAAOlqxB,KAAK,CAACT,MAAN,CAAay6b,OAAb,EAAsBpwb,GAAtB,CAA0Bof,CAAC,IAAIA,CAAC,CAACyoG,MAAF,CAASA,MAAT,CAA/B,CAAP;;MACJ,KAAM83pB,cAAc,CAACY,KAArB;QACI,OAAOnqxB,KAAK,CAAC,CAAD,CAAL,GAAWypxB,QAAQ,CAACzpxB,KAAK,CAAC,CAAD,CAAL,CAAS6sgB,MAAT,EAAD,CAAnB,GAAyC7sgB,KAAK,CAAC,CAAD,CAArD;;MACJ,KAAMupxB,cAAc,CAACU,QAArB;QACI,OAAOjqxB,KAAK,GAAGA,KAAK,CAAC4J,GAAN,CAAUof,CAAC,IAAIygwB,QAAQ,CAACzgwB,CAAC,CAAC6jf,MAAF,EAAD,CAAvB,CAAH,GAA0C7sgB,KAAtD;;MACJ;QACI,OAAOA,KAAP;IAVR;EAYH;;EACDwqxB,eAAe,CAACxqxB,KAAD,EAAQyxH,MAAR,EAAgB;IAC3B,IAAIg5pB,MAAJ;;IACA,IAAI,OAAOzqxB,KAAP,KAAiB,QAArB,EAA+B;MAC3ByqxB,MAAM,GAAG,CAACzqxB,KAAD,CAAT;IACH,CAFD,MAGK,IAAIyE,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,CAAJ,EAA0B;MAC3B,IAAIA,KAAK,CAACuB,MAAV,EAAkB;QACdkpxB,MAAM,GAAGzqxB,KAAK,CAAC4J,GAAN,CAAWof,CAAD,IAAO;UACtB,OAAO,KAAK4gwB,cAAL,CAAoB5gwB,CAApB,EAAuByoG,MAAvB,EAA+BA,MAA/B,CAAsCA,MAAtC,CAAP;QACH,CAFQ,CAAT;MAGH,CAJD,MAKK;QACDg5pB,MAAM,GAAGzqxB,KAAT;MACH;IACJ,CATI,MAUA,IAAIypxB,QAAQ,CAAC77Q,OAAT,CAAiB5tgB,KAAjB,CAAJ,EAA6B;MAC9ByqxB,MAAM,GAAG,CAACzqxB,KAAK,CAACyxH,MAAN,CAAaA,MAAb,CAAD,CAAT;IACH,CAFI,MAGA;MACD,OAAO,EAAP;IACH;;IACD,OAAOg5pB,MAAM,CAAClrxB,MAAP,CAAcy6b,OAAd,EAAuBlxa,IAAvB,CAA4B,KAA5B,CAAP;EACH,CAnIc,CAoIf;;;EACA4hwB,cAAc,CAAC53uB,GAAD,EAAM;IAChB,IAAI,CAACA,GAAL,EAAU;MACN,OAAOA,GAAP;IACH;;IACDtxC,MAAM,CAACC,IAAP,CAAYqxC,GAAZ,EAAiBpiC,OAAjB,CAA0B9O,GAAD,IAAUkxC,GAAG,CAAClxC,GAAD,CAAH,KAAaG,SAAd,IAA4B,OAAO+wC,GAAG,CAAClxC,GAAD,CAAxE;IACA,OAAOkxC,GAAP;EACH;;EACDgic,cAAc,CAAC61S,UAAD,EAAaC,iBAAb,EAAgCh6pB,IAAhC,EAAsCi6pB,WAAW,GAAG,KAApD,EAA2D;IACrE,IAAIF,UAAJ,EAAgB;MACZ,OAAO,CAAC/5pB,IAAI,CAACL,QAAN,GACDq6pB,iBAAiB,CAAC36wB,MAAlB,CAAyB,CAAC2gH,IAAI,CAACA,IAAN,CAAzB,CADC,GAEDg6pB,iBAAiB,CAACrrxB,MAAlB,CAAyBu+C,CAAC,IAAI,CAACA,CAAC,CAACyud,MAAF,CAAS37Y,IAAI,CAACA,IAAd,EAAoBi6pB,WAApB,CAA/B,CAFN;IAGH,CAJD,MAKK;MACD,OAAO,CAACj6pB,IAAI,CAACL,QAAN,GAAiB,CAACK,IAAI,CAACA,IAAN,CAAjB,GAA+B,EAAtC;IACH;EACJ;;EACDk6pB,aAAa,CAACx8wB,OAAD,EAAUkc,QAAV,EAAoB;IAC7B,IAAI,CAAClc,OAAL,EAAc;MACV,OAAOvM,SAAP;IACH;;IACD,MAAM0pE,KAAK,GAAGn9D,OAAO,CAAC0O,aAAR,CAAsBwN,QAAtB,CAAd;IACA,OAAOihD,KAAK,IAAI,KAAKq/sB,aAAL,CAAmBx8wB,OAAO,CAACwmD,aAA3B,EAA0CtqC,QAA1C,CAAhB;EACH;;EACDugwB,QAAQ,CAAC76wB,CAAD,EAAI;IACR,OAAOA,CAAC,IAAIu5wB,QAAQ,CAAC77Q,OAAT,CAAiB19f,CAAjB,CAAL,IAA4Bu5wB,QAAQ,CAACv5wB,CAAC,CAACuhH,MAAF,CAAS,UAAT,CAAD,EAAuB,UAAvB,CAA3C;EACH;;EACDu5pB,mBAAmB,CAACC,YAAD,EAAe;IAC9B,QAAQA,YAAR;MACI,KAAK,MAAL;QACI,OAAO,QAAP;;MACJ,KAAK,SAAL;QACI,OAAO,QAAP;;MACJ;QACI,OAAOA,YAAP;IANR;EAQH;;EACDj2C,eAAe,CAAC;IAAE+0C,OAAF;IAAWmB,OAAX;IAAoBC,OAApB;IAA6Bp8M;EAA7B,CAAD,EAAyCt9c,MAAzC,EAAiDw5pB,YAAjD,EAA+D;IAC1E,IAAIt7oB,OAAJ;IACA,IAAI3vI,KAAJ;IACA,MAAMiqgB,UAAU,GAAG,EAAnB;IACA,MAAM4gR,WAAW,GAAG,KAAKG,mBAAL,CAAyBC,YAAzB,CAApB;;IACA,IAAIlB,OAAJ,EAAa;MACT,MAAMzpP,EAAE,GAAG,KAAKspP,cAAL,CAAoBG,OAApB,EAA6Bt4pB,MAA7B,CAAX;MACAw4Y,UAAU,CAAChkgB,IAAX,CAAgB;QACZrE,GAAG,EAAE,SADO;QAEZ+tI,OAAO,EAAE,MAAM;UACX,MAAMy7oB,QAAQ,GAAGprxB,KAAK,CAACshB,KAAN,CAAY80B,GAAG,IAAIA,GAAG,CAAC64d,aAAJ,CAAkBqxB,EAAlB,EAAsBuqP,WAAtB,CAAnB,CAAjB;;UACAl7oB,OAAO,GAAGA,OAAO,GAAGy7oB,QAAH,GAAc,KAA/B;UACA,OAAOA,QAAP;QACH;MANW,CAAhB;IAQH;;IACD,IAAIF,OAAJ,EAAa;MACT,MAAM5qP,EAAE,GAAG,KAAKspP,cAAL,CAAoBsB,OAApB,EAA6Bz5pB,MAA7B,CAAX;MACAw4Y,UAAU,CAAChkgB,IAAX,CAAgB;QACZrE,GAAG,EAAE,SADO;QAEZ+tI,OAAO,EAAE,MAAM;UACX,MAAMy7oB,QAAQ,GAAGprxB,KAAK,CAACshB,KAAN,CAAY80B,GAAG,IAAIA,GAAG,CAAC+4d,cAAJ,CAAmBmxB,EAAnB,EAAuBuqP,WAAvB,CAAnB,CAAjB;;UACAl7oB,OAAO,GAAGA,OAAO,GAAGy7oB,QAAH,GAAc,KAA/B;UACA,OAAOA,QAAP;QACH;MANW,CAAhB;IAQH;;IACD,IAAID,OAAJ,EAAa;MACT,MAAM7qP,EAAE,GAAG,KAAKyqP,QAAL,CAAc,KAAKnB,cAAL,CAAoBuB,OAApB,EAA6B15pB,MAA7B,CAAd,CAAX;MACAw4Y,UAAU,CAAChkgB,IAAX,CAAgB;QACZrE,GAAG,EAAE,SADO;QAEZ+tI,OAAO,EAAE,MAAM;UACX,MAAMy7oB,QAAQ,GAAGprxB,KAAK,CAACshB,KAAN,CAAY80B,GAAG,IAAI,KAAK20uB,QAAL,CAAc30uB,GAAd,EAAmB64d,aAAnB,CAAiCqxB,EAAjC,CAAnB,CAAjB;;UACA3wZ,OAAO,GAAGA,OAAO,GAAGy7oB,QAAH,GAAc,KAA/B;UACA,OAAOA,QAAP;QACH;MANW,CAAhB;IAQH;;IACD,IAAIr8M,OAAJ,EAAa;MACT,MAAMzuC,EAAE,GAAG,KAAKyqP,QAAL,CAAc,KAAKnB,cAAL,CAAoB76M,OAApB,EAA6Bt9c,MAA7B,CAAd,CAAX;MACAw4Y,UAAU,CAAChkgB,IAAX,CAAgB;QACZrE,GAAG,EAAE,SADO;QAEZ+tI,OAAO,EAAE,MAAM;UACX,MAAMy7oB,QAAQ,GAAGprxB,KAAK,CAACshB,KAAN,CAAY80B,GAAG,IAAI,KAAK20uB,QAAL,CAAc30uB,GAAd,EAAmB+4d,cAAnB,CAAkCmxB,EAAlC,CAAnB,CAAjB;;UACA3wZ,OAAO,GAAGA,OAAO,GAAGy7oB,QAAH,GAAc,KAA/B;UACA,OAAOA,QAAP;QACH;MANW,CAAhB;IAQH;;IACD,OAAQC,QAAD,IAAc;MACjB17oB,OAAO,GAAG,IAAV;MACA3vI,KAAK,GAAG,KAAKoqxB,mBAAL,CAAyBiB,QAAzB,EAAmC;QACvC55pB,MADuC;QAEvC2nC,gBAAgB,EAAE;MAFqB,CAAnC,EAGL75J,MAHK,CAGEy6b,OAHF,CAAR;;MAIA,IAAI,CAACh6b,KAAK,CAACshB,KAAN,CAAY80B,GAAG,IAAIA,GAAG,CAACu5F,OAAJ,EAAnB,CAAL,EAAwC;QACpC,OAAO;UACHle,MAAM,EAAE;YACJ65pB,KAAK,EAAED;UADH;QADL,CAAP;MAKH;;MACD,MAAMpjO,MAAM,GAAGh+C,UAAU,CAAC10f,MAAX,CAAkB,CAAC3L,GAAD,EAAMvH,GAAN,KAAc;QAC3C,IAAI,CAACA,GAAG,CAACstI,OAAJ,EAAL,EAAoB;UAChB/lI,GAAG,CAACvH,GAAG,CAACT,GAAL,CAAH,GAAe;YACX0pxB,KAAK,EAAEtrxB;UADI,CAAf;QAGH;;QACD,OAAO4J,GAAP;MACH,CAPc,EAOZ,EAPY,CAAf;MAQA,OAAO,CAAC+lI,OAAD,GAAWs4a,MAAX,GAAoB,IAA3B;IACH,CAtBD;EAuBH;;EACDsjO,wBAAwB,CAACvrxB,KAAD,EAAQ;IAC5B,OAAO,CAACA,KAAK,IAAI,EAAV,EAAc2J,KAAd,CAAoB,GAApB,EAAyBC,GAAzB,CAA6BsG,CAAC,IAAIA,CAAC,CAACgmC,IAAF,EAAlC,EAA4C32C,MAA5C,CAAmDy6b,OAAnD,CAAP;EACH;;EACDwxV,kBAAkB,CAACxrxB,KAAD,EAAQyxH,MAAR,EAAgB;IAC9B,OAAO,KAAK85pB,wBAAL,CAA8BvrxB,KAA9B,EACFT,MADE,CACKu+C,CAAC,IAAI,KAAK+ruB,WAAL,CAAiB/ruB,CAAjB,EAAoB2zE,MAApB,CADV,EAEF7nH,GAFE,CAEEk0C,CAAC,IAAI2ruB,QAAQ,CAAC3ruB,CAAD,EAAI2zE,MAAJ,CAFf,CAAP;EAGH;;EACDg6pB,iBAAiB,CAACC,eAAD,EAAkBp6X,IAAlB,EAAwBn9Y,GAAxB,EAA6BD,GAA7B,EAAkC;IAC/C,OAAOw3wB,eAAe,IAClBp6X,IAAI,KAAK,MADN,IAEH,KAAKq6X,aAAL,CAAmBlC,QAAQ,EAA3B,EAA+Bt1wB,GAA/B,EAAoCD,GAApC,CAFJ;EAGH;;EACDy3wB,aAAa,CAAC/6pB,IAAD,EAAOtmG,IAAP,EAAa4vU,EAAb,EAAiB;IAC1B,IAAI,CAACtpO,IAAL,EAAW;MACP,OAAO,KAAP;IACH;;IACD,IAAI,CAACtmG,IAAD,IAAS,CAAC4vU,EAAd,EAAkB;MACd,OAAO,IAAP;IACH;;IACD,IAAI,CAAC5vU,IAAD,IAAS4vU,EAAb,EAAiB;MACb,OAAOtpO,IAAI,CAACu+Y,cAAL,CAAoBj1K,EAApB,CAAP;IACH;;IACD,IAAI5vU,IAAI,IAAI,CAAC4vU,EAAb,EAAiB;MACb,OAAOtpO,IAAI,CAACq+Y,aAAL,CAAmB3kf,IAAnB,CAAP;IACH;;IACD,OAAOsmG,IAAI,CAACm+Y,SAAL,CAAezkf,IAAf,EAAqB4vU,EAArB,EAAyB,KAAzB,EAAgC,IAAhC,CAAP;EACH;;EACD0xb,mBAAmB,CAAC94uB,GAAD,EAAM2+E,MAAN,EAAcp1E,KAAd,EAAqB;IACpCA,KAAK,CAAC3rC,OAAN,CAAewjE,IAAD,IAAU;MACpB,IAAIphC,GAAG,CAAC/3B,cAAJ,CAAmBm5D,IAAnB,CAAJ,EAA8B;QAC1BphC,GAAG,CAACohC,IAAD,CAAH,GAAY,KAAK01sB,cAAL,CAAoB92uB,GAAG,CAACohC,IAAD,CAAvB,EAA+Bu9C,MAA/B,CAAZ;MACH;IACJ,CAJD;EAKH;;EACDo6pB,sBAAsB,CAACC,QAAD,EAAWC,WAAX,EAAwB;IAC1C,IAAID,QAAQ,IAAIC,WAAhB,EAA6B;MACzB,IAAI,CAACD,QAAQ,CAAC33wB,GAAV,IAAiB43wB,WAAW,CAAC53wB,GAAjC,EAAsC;QAClC,OAAO,IAAP;MACH,CAFD,MAGK,IAAI23wB,QAAQ,CAAC33wB,GAAT,IAAgB43wB,WAAW,CAAC53wB,GAA5B,IAAmC,CAAC23wB,QAAQ,CAAC33wB,GAAT,CAAao4f,MAAb,CAAoBw/Q,WAAW,CAAC53wB,GAAhC,EAAqC,GAArC,CAAxC,EAAmF;QACpF,OAAO,IAAP;MACH,CAFI,MAGA,IAAI,CAAC23wB,QAAQ,CAAC53wB,GAAV,IAAiB63wB,WAAW,CAAC73wB,GAAjC,EAAsC;QACvC,OAAO,IAAP;MACH,CAFI,MAGA,IAAI43wB,QAAQ,CAAC53wB,GAAT,IAAgB63wB,WAAW,CAAC73wB,GAA5B,IAAmC,CAAC43wB,QAAQ,CAAC53wB,GAAT,CAAaq4f,MAAb,CAAoBw/Q,WAAW,CAAC73wB,GAAhC,EAAqC,GAArC,CAAxC,EAAmF;QACpF,OAAO,IAAP;MACH;;MACD,OAAO,KAAP;IACH;;IACD,OAAO,KAAP;EACH;;EACD83wB,gBAAgB,CAAC/rN,IAAD,EAAO;IACnB,IAAI,CAACA,IAAL,EAAW;MACP,OAAO,IAAP;IACH,CAFD,MAGK,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC/B,OAAO71jB,QAAQ,CAAC4S,aAAT,CAAuBijjB,IAAvB,CAAP;IACH,CAFI,MAGA,IAAIA,IAAI,YAAY3whB,qDAApB,EAAgC;MACjC,OAAO2whB,IAAI,CAACtqiB,aAAZ;IACH,CAFI,MAGA;MACD,OAAOsqiB,IAAP;IACH;EACJ;;AArTc;;AAuTnBypN,YAAY,CAAClnxB,IAAb;EAAA,iBAAyGknxB,YAAzG;AAAA;;AACAA,YAAY,CAAC/mxB,KAAb,kBAD+FumB,gEAC/F;EAAA,OAA6GwgwB,YAA7G;EAAA,SAA6GA,YAA7G;EAAA,YAAuI;AAAvI;;AACA;EAAA,mDAF+FxgwB,+DAE/F,CAA2FwgwB,YAA3F,EAAqH,CAAC;IAC1GxmxB,IAAI,EAAEtE,qDADoG;IAE1GiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAFoG,CAAD,CAArH;AAAA;;AAOA,MAAMglM,kBAAN,CAAyB;EACrBtsxB,WAAW,CAACusxB,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKC,cAAL,GAAsB;MAClBC,iBAAiB,EAAE,IADD;MAElBC,eAAe,EAAE,KAFC;MAGlBC,cAAc,EAAE,IAHE;MAIlBC,aAAa,EAAE,KAJG;MAKlB96pB,MAAM,EAAE,YALU;MAMlB2nC,gBAAgB,EAAE,KANA;MAOlBoznB,WAAW,EAAE,WAPK;MAQlBC,mBAAmB,EAAE,IARH;MASlBC,YAAY,EAAE,IATI;MAUlBC,eAAe,EAAE;IAVC,CAAtB;IAYA,KAAKC,IAAL,GAAY,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,CAAZ;EACH;;EACD1uV,SAAS,CAACjuT,MAAD,EAAS;IACd,MAAMsjd,OAAO,GAAG,EACZ,GAAG,KAAK44L,cADI;MAEZ,GAAG,KAAKD,YAAL,CAAkBxB,cAAlB,CAAiCz6oB,MAAjC;IAFS,CAAhB;IAIA,KAAKi8oB,YAAL,CAAkBN,mBAAlB,CAAsCr4L,OAAtC,EAA+CA,OAAO,CAAC9he,MAAvD,EAA+D,CAAC,KAAD,EAAQ,KAAR,CAA/D;IACA,OAAO8he,OAAP;EACH;;EACDs5L,eAAe,CAACP,cAAD,EAAiB;IAC5B,MAAMQ,aAAa,GAAG,KAAKF,IAAL,CAAUhixB,OAAV,CAAkB0hxB,cAAlB,CAAtB;IACA,MAAMS,OAAO,GAAG,KAAKH,IAAL,CAAU9qwB,KAAV,CAAgBgrwB,aAAhB,EAA+B,CAA/B,EAAkC78wB,MAAlC,CAAyC,KAAK28wB,IAAL,CAAU9qwB,KAAV,CAAgB,CAAhB,EAAmBgrwB,aAAnB,CAAzC,CAAhB;IACA,OAAOC,OAAO,CAACx3wB,MAAR,CAAe,CAAC3L,GAAD,EAAMwpH,GAAN,EAAWvxH,KAAX,KAAqB;MACvC+H,GAAG,CAACwpH,GAAD,CAAH,GAAWvxH,KAAX;MACA,OAAO+H,GAAP;IACH,CAHM,EAGJ,EAHI,CAAP;EAIH;;EACDojxB,kBAAkB,CAAC/8oB,MAAD,EAAS9c,KAAT,EAAgB5C,QAAhB,EAA0B;IACxC,MAAM08pB,WAAW,GAAG95pB,KAAK,CAACwc,OAAN,KAAkB85oB,QAAQ,CAACt2pB,KAAK,CAAC05Y,MAAN,EAAD,CAA1B,GAA6C48Q,QAAQ,EAAzE;IACA,IAAIyD,UAAU,GAAG,EAAjB;IACA,MAAMC,mBAAmB,GAAG,KAAKP,IAAL,CAAUhixB,OAAV,CAAkBqlI,MAAM,CAACq8oB,cAAzB,CAA5B;IACA,IAAIc,eAAe,GAAGH,WAAW,CAACzgR,OAAZ,CAAoB,OAApB,CAAtB;;IACA,OAAO4gR,eAAe,CAACh6pB,GAAhB,OAA0B+5pB,mBAAjC,EAAsD;MAClDC,eAAe,GAAGA,eAAe,CAAClgR,QAAhB,CAAyB,CAAzB,EAA4B,KAA5B,CAAlB;IACH;;IACD,IAAIpkgB,OAAO,GAAG2gxB,QAAQ,CAAC2D,eAAe,CAACvgR,MAAhB,EAAD,CAAtB;IACA,MAAMwgR,SAAS,GAAGJ,WAAW,CAAC//Q,QAAZ,CAAqB,CAArB,EAAwB,OAAxB,CAAlB;IACA,MAAMogR,SAAS,GAAGL,WAAW,CAAC/kwB,GAAZ,CAAgB,CAAhB,EAAmB,OAAnB,CAAlB;IACA,MAAMo+lB,KAAK,GAAGmjK,QAAQ,EAAtB;IACA,MAAM8D,cAAc,GAAG,KAAKrB,YAAL,CAAkBvC,WAAlB,CAA8B,EAA9B,EAClBp0wB,MADkB,CACV04C,KAAD,IAAW;MACnBA,KAAK,CAAChoD,IAAN,CAAW;QACP2qH,IAAI,EAAE64pB,QAAQ,CAAC3gxB,OAAO,CAAC+jgB,MAAR,EAAD,CADP;QAEPt8Y,QAAQ,EAAE,CAAC,CAACA,QAAQ,CAAC1uG,IAAT,CAAc2rwB,WAAW,IAAI1kxB,OAAO,CAACyjgB,MAAR,CAAeihR,WAAf,EAA4B,KAA5B,CAA7B,CAFL;QAGPC,YAAY,EAAE3kxB,OAAO,CAACyjgB,MAAR,CAAe0gR,WAAf,EAA4B,OAA5B,CAHP;QAIPI,SAAS,EAAEvkxB,OAAO,CAACyjgB,MAAR,CAAe8gR,SAAf,EAA0B,OAA1B,CAJJ;QAKPC,SAAS,EAAExkxB,OAAO,CAACyjgB,MAAR,CAAe+gR,SAAf,EAA0B,OAA1B,CALJ;QAMPI,UAAU,EAAE5kxB,OAAO,CAACyjgB,MAAR,CAAe+5G,KAAf,EAAsB,KAAtB,CANL;QAOPp/f,QAAQ,EAAE,KAAKymqB,cAAL,CAAoB7kxB,OAApB,EAA6BmnI,MAA7B;MAPH,CAAX;MASAnnI,OAAO,GAAGA,OAAO,CAACof,GAAR,CAAY,CAAZ,EAAe,KAAf,CAAV;MACA,OAAO+lC,KAAP;IACH,CAbsB,EAapB,EAboB,CAAvB;IAcAs/tB,cAAc,CAAC78wB,OAAf,CAAuB,CAAC0iH,GAAD,EAAMvxH,KAAN,KAAgB;MACnC,MAAM+rxB,SAAS,GAAG52wB,IAAI,CAACs6D,KAAL,CAAWzvE,KAAK,GAAG,CAAnB,CAAlB;;MACA,IAAI,CAACqrxB,UAAU,CAACU,SAAD,CAAf,EAA4B;QACxBV,UAAU,CAACjnxB,IAAX,CAAgB,EAAhB;MACH;;MACDinxB,UAAU,CAACU,SAAD,CAAV,CAAsB3nxB,IAAtB,CAA2BmtH,GAA3B;IACH,CAND;;IAOA,IAAI,CAAC6c,MAAM,CAACm8oB,iBAAZ,EAA+B;MAC3Bc,UAAU,GAAG,KAAKW,oBAAL,CAA0BZ,WAA1B,EAAuCC,UAAvC,CAAb;IACH;;IACD,OAAOA,UAAP;EACH;;EACDY,gBAAgB,CAACxB,cAAD,EAAiB;IAC7B,MAAMyB,YAAY,GAAG;MACjBC,EAAE,EAAEvE,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CADa;MAEjB66pB,EAAE,EAAExE,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CAFa;MAGjB86pB,EAAE,EAAEzE,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CAHa;MAIjBu6Z,EAAE,EAAE87P,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CAJa;MAKjB+6pB,EAAE,EAAE1E,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CALa;MAMjB2+Z,EAAE,EAAE03P,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf,CANa;MAOjBg7pB,EAAE,EAAE3E,QAAQ,GAAGr2pB,GAAX,CAAe,CAAf;IAPa,CAArB;IASA,MAAMg4Y,QAAQ,GAAG,EAAjB;IACA,MAAMijR,OAAO,GAAG,KAAKxB,eAAL,CAAqBP,cAArB,CAAhB;;IACA,KAAK,MAAMgC,MAAX,IAAqBD,OAArB,EAA8B;MAC1B,IAAIA,OAAO,CAACtzwB,cAAR,CAAuBuzwB,MAAvB,CAAJ,EAAoC;QAChCljR,QAAQ,CAACijR,OAAO,CAACC,MAAD,CAAR,CAAR,GAA4BP,YAAY,CAACO,MAAD,CAAxC;MACH;IACJ;;IACD,OAAOljR,QAAP;EACH;;EACDuiR,cAAc,CAAC/8pB,IAAD,EAAOqf,MAAP,EAAe;IACzB,IAAIA,MAAM,CAACs+oB,qBAAX,EAAkC;MAC9B,OAAOt+oB,MAAM,CAACs+oB,qBAAP,CAA6B39pB,IAA7B,CAAP;IACH;;IACD,IAAIqf,MAAM,CAAC97H,GAAP,IAAcy8G,IAAI,CAACk0M,QAAL,CAAc70L,MAAM,CAAC97H,GAArB,EAA0B,KAA1B,CAAlB,EAAoD;MAChD,OAAO,IAAP;IACH;;IACD,OAAO,CAAC,EAAE87H,MAAM,CAAC/7H,GAAP,IAAc08G,IAAI,CAAC87Y,OAAL,CAAaz8X,MAAM,CAAC/7H,GAApB,EAAyB,KAAzB,CAAhB,CAAR;EACH,CAlGoB,CAmGrB;;;EACAs6wB,cAAc,CAACv+oB,MAAD,EAAS9c,KAAT,EAAgB;IAC1B,IAAI8c,MAAM,CAACw+oB,cAAX,EAA2B;MACvB,OAAOx+oB,MAAM,CAACw+oB,cAAP,CAAsBt7pB,KAAtB,CAAP;IACH;;IACD,OAAOA,KAAK,CAAC1B,MAAN,CAAawe,MAAM,CAACu8oB,WAApB,CAAP;EACH,CAzGoB,CA0GrB;;;EACAkC,cAAc,CAACv6wB,GAAD,EAAMw6wB,gBAAN,EAAwB;IAClC,OAAOx6wB,GAAG,GAAGA,GAAG,CAAC2wT,QAAJ,CAAa6pd,gBAAb,EAA+B,OAA/B,CAAH,GAA6C,IAAvD;EACH,CA7GoB,CA8GrB;;;EACAC,eAAe,CAAC16wB,GAAD,EAAMy6wB,gBAAN,EAAwB;IACnC,OAAOz6wB,GAAG,GAAGA,GAAG,CAACw4f,OAAJ,CAAYiiR,gBAAZ,EAA8B,OAA9B,CAAH,GAA4C,IAAtD;EACH;;EACDE,oBAAoB,CAACvC,cAAD,EAAiB;IACjC,MAAMQ,aAAa,GAAG,KAAKF,IAAL,CAAUhixB,OAAV,CAAkB0hxB,cAAlB,CAAtB;IACA,MAAMS,OAAO,GAAG,KAAKH,IAAL,CAAU9qwB,KAAV,CAAgBgrwB,aAAhB,EAA+B,CAA/B,EAAkC78wB,MAAlC,CAAyC,KAAK28wB,IAAL,CAAU9qwB,KAAV,CAAgB,CAAhB,EAAmBgrwB,aAAnB,CAAzC,CAAhB;IACA,OAAOC,OAAO,CAACx3wB,MAAR,CAAe,CAAC3L,GAAD,EAAMwpH,GAAN,EAAWvxH,KAAX,KAAqB;MACvC+H,GAAG,CAAC/H,KAAD,CAAH,GAAauxH,GAAb;MACA,OAAOxpH,GAAP;IACH,CAHM,EAGJ,EAHI,CAAP;EAIH;;EACDklxB,sBAAsB,CAACl9R,eAAD,EAAkB;IACpC,OAAO,KAAKs6R,YAAL,CAAkBxB,cAAlB,CAAiC;MACpCv2wB,GAAG,EAAEy9e,eAAe,CAACz9e,GADe;MAEpCD,GAAG,EAAE09e,eAAe,CAAC19e,GAFe;MAGpCu9G,MAAM,EAAEmgY,eAAe,CAACngY,MAHY;MAIpCs9pB,uBAAuB,EAAE,IAJW;MAKpC31nB,gBAAgB,EAAE,KALkB;MAMpC41nB,UAAU,EAAEp9R,eAAe,CAACo9R,UANQ;MAOpCC,aAAa,EAAEr9R,eAAe,CAACq9R,aAPK;MAQpCC,cAAc,EAAEt9R,eAAe,CAACs9R,cARI;MASpCC,iBAAiB,EAAEv9R,eAAe,CAACu9R,iBATC;MAUpCC,wBAAwB,EAAEx9R,eAAe,CAACw9R,wBAVN;MAWpCC,uBAAuB,EAAEz9R,eAAe,CAACy9R,uBAXL;MAYpCC,uBAAuB,EAAE19R,eAAe,CAAC09R,uBAZL;MAapCC,2BAA2B,EAAE39R,eAAe,CAAC29R,2BAbT;MAcpC7D,eAAe,EAAE95R,eAAe,CAAC85R,eAdG;MAepC8D,cAAc,EAAE59R,eAAe,CAAC49R;IAfI,CAAjC,CAAP;EAiBH;;EACDC,aAAa,CAACx/oB,MAAD,EAAS7c,GAAT,EAAc;IACvB,IAAI6c,MAAM,CAACy/oB,eAAX,EAA4B;MACxB,OAAOz/oB,MAAM,CAACy/oB,eAAP,CAAuBt8pB,GAAvB,CAAP;IACH;;IACD,OAAOA,GAAG,CAAC3B,MAAJ,CAAWwe,MAAM,CAACy8oB,YAAlB,CAAP;EACH;;EACDiD,iBAAiB,CAAC1/oB,MAAD,EAAS7c,GAAT,EAAc;IAC3B,IAAI6c,MAAM,CAAC2/oB,sBAAX,EAAmC;MAC/B,OAAO3/oB,MAAM,CAAC2/oB,sBAAP,CAA8Bx8pB,GAA9B,CAAP;IACH;;IACD,OAAO,EAAP;EACH;;EACDy6pB,oBAAoB,CAACJ,YAAD,EAAeP,UAAf,EAA2B;IAC3C,IAAIA,UAAU,CAACA,UAAU,CAAC3rxB,MAAX,GAAoB,CAArB,CAAV,CAAkCsgB,IAAlC,CAAwCuxG,GAAD,IAASA,GAAG,CAACxC,IAAJ,CAAS27Y,MAAT,CAAgBkhR,YAAhB,EAA8B,OAA9B,CAAhD,CAAJ,EAA6F;MACzF,OAAOP,UAAP;IACH,CAFD,MAGK;MACD,OAAOA,UAAU,CAACprwB,KAAX,CAAiB,CAAjB,EAAoB,CAAC,CAArB,CAAP;IACH;EACJ;;AAhKoB;;AAkKzBmqwB,kBAAkB,CAACzpxB,IAAnB;EAAA,iBAA+GypxB,kBAA/G,EA3K+F/iwB,sDA2K/F,CAAmJwgwB,YAAnJ;AAAA;;AACAuC,kBAAkB,CAACtpxB,KAAnB,kBA5K+FumB,gEA4K/F;EAAA,OAAmH+iwB,kBAAnH;EAAA,SAAmHA,kBAAnH;EAAA,YAAmJ;AAAnJ;;AACA;EAAA,mDA7K+F/iwB,+DA6K/F,CAA2F+iwB,kBAA3F,EAA2H,CAAC;IAChH/oxB,IAAI,EAAEtE,qDAD0G;IAEhHiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAF0G,CAAD,CAA3H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEwmxB;IAAR,CAAD,CAAP;EAAkC,CAL5E;AAAA;;AAOA,MAAMmG,aAAa,GAAG,EAAtB;;AACA,MAAMC,iBAAN,CAAwB;EACpBnwxB,WAAW,CAACusxB,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKC,cAAL,GAAsB;MAClB4D,aAAa,EAAE,IADG;MAElBC,aAAa,EAAE,IAFG;MAGlBC,cAAc,EAAE,GAHE;MAIlBC,aAAa,EAAE,IAJG;MAKlBC,eAAe,EAAE,CALC;MAMlBC,aAAa,EAAE,IANG;MAOlBC,eAAe,EAAE,CAPC;MAQlBC,WAAW,EAAE,KARK;MASlBC,mBAAmB,EAAE,KATH;MAUlBC,aAAa,EAAE;IAVG,CAAtB;EAYH;;EACDtyV,SAAS,CAACjuT,MAAD,EAAS;IACd,MAAMwgpB,WAAW,GAAG;MAChB1hN,OAAO,EAAE,KAAKm9M,YAAL,CAAkBnB,QAAlB,CAA2B96oB,MAAM,IAAIA,MAAM,CAAC8+b,OAA5C,CADO;MAEhBo8M,OAAO,EAAE,KAAKe,YAAL,CAAkBnB,QAAlB,CAA2B96oB,MAAM,IAAIA,MAAM,CAACk7oB,OAA5C;IAFO,CAApB;IAIA,OAAO,EACH,GAAG,KAAKgB,cADL;MAEH,GAAG,KAAKD,YAAL,CAAkBxB,cAAlB,CAAiCz6oB,MAAjC,CAFA;MAGH,GAAGwgpB;IAHA,CAAP;EAKH;;EACDC,aAAa,CAACzgpB,MAAD,EAAS;IAClB,OAAO,CAACA,MAAM,CAACsgpB,mBAAP,GAA6BtgpB,MAAM,CAAC+/oB,aAApC,GAAoD//oB,MAAM,CAAC8/oB,aAA5D,IACD9/oB,MAAM,CAACugpB,aADN,GACsBvgpB,MAAM,CAACigpB,aAD7B,IAEAjgpB,MAAM,CAACqgpB,WAAP,GAAsBrgpB,MAAM,CAACugpB,aAAP,GAAuBvgpB,MAAM,CAACmgpB,aAApD,GAAqE,EAFrE,KAGAngpB,MAAM,CAACsgpB,mBAAP,GAA6B,EAA7B,GAAkC,MAAMtgpB,MAAM,CAACggpB,cAH/C,CAAP;EAIH;;EACD9+pB,QAAQ,CAAC8e,MAAD,EAASvtI,CAAT,EAAY;IAChB,MAAMgvT,IAAI,GAAGhvT,CAAC,IAAI+mxB,QAAQ,EAA1B;IACA,OAAO/3d,IAAI,IAAIA,IAAI,CAACjgM,MAAL,CAAYwe,MAAM,CAACsgpB,mBAAP,GAA6BtgpB,MAAM,CAAC+/oB,aAApC,GAAoD//oB,MAAM,CAAC8/oB,aAAvE,CAAf;EACH;;EACD3+pB,UAAU,CAAC6e,MAAD,EAASvtI,CAAT,EAAY;IAClB,MAAMgvT,IAAI,GAAGhvT,CAAC,IAAI+mxB,QAAQ,EAA1B;IACA,OAAO/3d,IAAI,IAAIA,IAAI,CAACjgM,MAAL,CAAYwe,MAAM,CAACigpB,aAAnB,CAAf;EACH;;EACD7+pB,UAAU,CAAC4e,MAAD,EAASvtI,CAAT,EAAY;IAClB,MAAMgvT,IAAI,GAAGhvT,CAAC,IAAI+mxB,QAAQ,EAA1B;IACA,OAAO/3d,IAAI,IAAIA,IAAI,CAACjgM,MAAL,CAAYwe,MAAM,CAACmgpB,aAAnB,CAAf;EACH;;EACDO,WAAW,CAAC1gpB,MAAD,EAASyhL,IAAT,EAAe;IACtB,OAAOA,IAAI,IAAIA,IAAI,CAACjgM,MAAL,CAAYwe,MAAM,CAACggpB,cAAnB,CAAf;EACH;;EACDW,QAAQ,CAAC3gpB,MAAD,EAASyhL,IAAT,EAAeywQ,IAAf,EAAqB;IACzB,IAAI9+W,MAAM,GAAG,CAAb;;IACA,QAAQ8+W,IAAR;MACI,KAAK,QAAL;QACI9+W,MAAM,GAAGpzE,MAAM,CAACkgpB,eAAhB;QACA;;MACJ,KAAK,QAAL;QACI9skB,MAAM,GAAGpzE,MAAM,CAACogpB,eAAhB;QACA;IANR;;IAQA,OAAO3+d,IAAI,CAACw7M,QAAL,CAAc7pT,MAAd,EAAsB8+W,IAAtB,CAAP;EACH;;EACD0uN,QAAQ,CAAC5gpB,MAAD,EAASyhL,IAAT,EAAeywQ,IAAf,EAAqB;IACzB,IAAI9+W,MAAM,GAAG,CAAb;;IACA,QAAQ8+W,IAAR;MACI,KAAK,QAAL;QACI9+W,MAAM,GAAGpzE,MAAM,CAACkgpB,eAAhB;QACA;;MACJ,KAAK,QAAL;QACI9skB,MAAM,GAAGpzE,MAAM,CAACogpB,eAAhB;QACA;IANR;;IAQA,OAAO3+d,IAAI,CAACxpS,GAAL,CAASm7L,MAAT,EAAiB8+W,IAAjB,CAAP;EACH;;EACD2uN,cAAc,CAACp/d,IAAD,EAAO;IACjB,IAAIA,IAAI,CAAC08F,IAAL,KAAcyhY,aAAlB,EAAiC;MAC7B,OAAOn+d,IAAI,CAACxpS,GAAL,CAAS,EAAT,EAAa,MAAb,CAAP;IACH,CAFD,MAGK;MACD,OAAOwpS,IAAI,CAACw7M,QAAL,CAAc,EAAd,EAAkB,MAAlB,CAAP;IACH;EACJ;;EACD6jR,kBAAkB,CAAC9gpB,MAAD,EAASyhL,IAAT,EAAeywQ,IAAf,EAAqB;IACnC,IAAI,CAAClyb,MAAM,CAAC97H,GAAR,IAAe,CAAC87H,MAAM,CAACk7oB,OAA3B,EAAoC;MAChC,OAAO,IAAP;IACH;;IACD,MAAMt7M,OAAO,GAAG,KAAK+gN,QAAL,CAAc3gpB,MAAd,EAAsByhL,IAAtB,EAA4BywQ,IAA5B,CAAhB;IACA,OAAO,CAAC,CAAClyb,MAAM,CAAC97H,GAAR,IAAe87H,MAAM,CAAC97H,GAAP,CAAWg7f,cAAX,CAA0B0gE,OAA1B,CAAhB,MACC,CAAC5/b,MAAM,CAACk7oB,OAAR,IAAmBl7oB,MAAM,CAACk7oB,OAAP,CAAeh8Q,cAAf,CAA8B,KAAK+8Q,YAAL,CAAkBnB,QAAlB,CAA2Bl7M,OAA3B,CAA9B,CADpB,CAAP;EAEH;;EACDmhN,kBAAkB,CAAC/gpB,MAAD,EAASyhL,IAAT,EAAeywQ,IAAf,EAAqB;IACnC,IAAI,CAAClyb,MAAM,CAAC/7H,GAAR,IAAe,CAAC+7H,MAAM,CAAC8+b,OAA3B,EAAoC;MAChC,OAAO,IAAP;IACH;;IACD,MAAMc,OAAO,GAAG,KAAKghN,QAAL,CAAc5gpB,MAAd,EAAsByhL,IAAtB,EAA4BywQ,IAA5B,CAAhB;IACA,OAAO,CAAC,CAAClyb,MAAM,CAAC/7H,GAAR,IAAe+7H,MAAM,CAAC/7H,GAAP,CAAW+6f,aAAX,CAAyB4gE,OAAzB,CAAhB,MACC,CAAC5/b,MAAM,CAAC8+b,OAAR,IAAmB9+b,MAAM,CAAC8+b,OAAP,CAAe9/D,aAAf,CAA6B,KAAKi9Q,YAAL,CAAkBnB,QAAlB,CAA2Bl7M,OAA3B,CAA7B,CADpB,CAAP;EAEH;;EACDohN,wBAAwB,CAAChhpB,MAAD,EAASyhL,IAAT,EAAe;IACnC,IAAI,CAACzhL,MAAM,CAAC97H,GAAR,IAAe,CAAC87H,MAAM,CAAC/7H,GAAvB,IAA8B,CAAC+7H,MAAM,CAACk7oB,OAAtC,IAAiD,CAACl7oB,MAAM,CAAC8+b,OAA7D,EAAsE;MAClE,OAAO,IAAP;IACH;;IACD,MAAMc,OAAO,GAAG,KAAKihN,cAAL,CAAoBp/d,IAApB,CAAhB;IACA,OAAO,CAAC,CAACzhL,MAAM,CAAC/7H,GAAR,IAAe+7H,MAAM,CAAC/7H,GAAP,CAAW+6f,aAAX,CAAyB4gE,OAAzB,CAAhB,MACC,CAAC5/b,MAAM,CAAC97H,GAAR,IAAe87H,MAAM,CAAC97H,GAAP,CAAWg7f,cAAX,CAA0B0gE,OAA1B,CADhB,MAEC,CAAC5/b,MAAM,CAAC8+b,OAAR,IAAmB9+b,MAAM,CAAC8+b,OAAP,CAAe9/D,aAAf,CAA6B,KAAKi9Q,YAAL,CAAkBnB,QAAlB,CAA2Bl7M,OAA3B,CAA7B,CAFpB,MAGC,CAAC5/b,MAAM,CAACk7oB,OAAR,IAAmBl7oB,MAAM,CAACk7oB,OAAP,CAAeh8Q,cAAf,CAA8B,KAAK+8Q,YAAL,CAAkBnB,QAAlB,CAA2Bl7M,OAA3B,CAA9B,CAHpB,CAAP;EAIH;;AAzGmB;;AA2GxBigN,iBAAiB,CAACttxB,IAAlB;EAAA,iBAA8GstxB,iBAA9G,EAhS+F5mwB,sDAgS/F,CAAiJwgwB,YAAjJ;AAAA;;AACAoG,iBAAiB,CAACntxB,KAAlB,kBAjS+FumB,gEAiS/F;EAAA,OAAkH4mwB,iBAAlH;EAAA,SAAkHA,iBAAlH;EAAA,YAAiJ;AAAjJ;;AACA;EAAA,mDAlS+F5mwB,+DAkS/F,CAA2F4mwB,iBAA3F,EAA0H,CAAC;IAC/G5sxB,IAAI,EAAEtE,qDADyG;IAE/GiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEwmxB;IAAR,CAAD,CAAP;EAAkC,CAL5E;AAAA;;AAOA,MAAMwH,UAAU,GAAG,UAAnB;AACA,MAAMC,WAAW,GAAG,UAApB;AACA,MAAMC,eAAe,GAAGF,UAAU,GAAGC,WAArC;;AACA,MAAME,sBAAN,CAA6B;EACzB1xxB,WAAW,CAACusxB,YAAD,EAAeoF,kBAAf,EAAmCC,iBAAnC,EAAsD;IAC7D,KAAKrF,YAAL,GAAoBA,YAApB;IACA,KAAKoF,kBAAL,GAA0BA,kBAA1B;IACA,KAAKC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKpF,cAAL,GAAsB,EAAtB;EACH;;EACDjuV,SAAS,CAACjuT,MAAD,EAAS;IACd,MAAMsjd,OAAO,GAAG,EACZ,GAAG,KAAK44L,cADI;MAEZ,GAAG,KAAKoF,iBAAL,CAAuBrzV,SAAvB,CAAiCjuT,MAAjC,CAFS;MAGZ,GAAG,KAAKqhpB,kBAAL,CAAwBpzV,SAAxB,CAAkCjuT,MAAlC;IAHS,CAAhB;IAKA,KAAKi8oB,YAAL,CAAkBN,mBAAlB,CAAsCr4L,OAAtC,EAA+CA,OAAO,CAAC9he,MAAvD,EAA+D,CAAC,KAAD,EAAQ,KAAR,CAA/D;IACA,OAAO8he,OAAP;EACH;;EACDi+L,SAAS,CAAC1oxB,OAAD,EAAUsqH,GAAV,EAAe6c,MAAf,EAAuB;IAC5B,MAAMyhL,IAAI,GAAG5oT,OAAO,GAAGA,OAAH,GAAa2gxB,QAAQ,EAAzC;IACA,IAAIn/C,OAAO,GAAGm/C,QAAQ,CAACr2pB,GAAG,CAAC3B,MAAJ,CAAWy/pB,UAAX,IAAyBx/d,IAAI,CAACjgM,MAAL,CAAY0/pB,WAAZ,CAA1B,EAAoDC,eAApD,CAAtB;;IACA,IAAInhpB,MAAM,CAAC97H,GAAX,EAAgB;MACZ,MAAMA,GAAG,GAAG87H,MAAM,CAAC97H,GAAnB;MACAm2tB,OAAO,GAAGn2tB,GAAG,CAACu4f,OAAJ,CAAY49N,OAAZ,IAAuBn2tB,GAAvB,GAA6Bm2tB,OAAvC;IACH;;IACD,IAAIr6lB,MAAM,CAAC/7H,GAAX,EAAgB;MACZ,MAAMA,GAAG,GAAG+7H,MAAM,CAAC/7H,GAAnB;MACAo2tB,OAAO,GAAGp2tB,GAAG,CAAC4wT,QAAJ,CAAawla,OAAb,IAAwBp2tB,GAAxB,GAA8Bo2tB,OAAxC;IACH;;IACD,OAAOA,OAAP;EACH;;EACDmnD,UAAU,CAAC3oxB,OAAD,EAAU4oT,IAAV,EAAgB;IACtB,MAAMt+L,GAAG,GAAGtqH,OAAO,GAAGA,OAAH,GAAa2gxB,QAAQ,EAAxC;IACA,OAAOA,QAAQ,CAACr2pB,GAAG,CAAC3B,MAAJ,CAAWy/pB,UAAX,IAAyBx/d,IAAI,CAACjgM,MAAL,CAAY0/pB,WAAZ,CAA1B,EAAoDC,eAApD,CAAf;EACH;;AAhCwB;;AAkC7BC,sBAAsB,CAAC7uxB,IAAvB;EAAA,iBAAmH6uxB,sBAAnH,EA9U+FnowB,sDA8U/F,CAA2JwgwB,YAA3J,GA9U+FxgwB,sDA8U/F,CAAoL+iwB,kBAApL,GA9U+F/iwB,sDA8U/F,CAAmN4mwB,iBAAnN;AAAA;;AACAuB,sBAAsB,CAAC1uxB,KAAvB,kBA/U+FumB,gEA+U/F;EAAA,OAAuHmowB,sBAAvH;EAAA,SAAuHA,sBAAvH;EAAA,YAA2J;AAA3J;;AACA;EAAA,mDAhV+FnowB,+DAgV/F,CAA2FmowB,sBAA3F,EAA+H,CAAC;IACpHnuxB,IAAI,EAAEtE,qDAD8G;IAEpHiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAF8G,CAAD,CAA/H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEwmxB;IAAR,CAAD,EAAyB;MAAExmxB,IAAI,EAAE+oxB;IAAR,CAAzB,EAAuD;MAAE/oxB,IAAI,EAAE4sxB;IAAR,CAAvD,CAAP;EAA6F,CALvI;AAAA;;AAOA,MAAM4B,iBAAN,CAAwB;EACpB/xxB,WAAW,CAACusxB,YAAD,EAAeqF,iBAAf,EAAkCI,sBAAlC,EAA0D;IACjE,KAAKzF,YAAL,GAAoBA,YAApB;IACA,KAAKqF,iBAAL,GAAyBA,iBAAzB;IACA,KAAKI,sBAAL,GAA8BA,sBAA9B;IACA,KAAKC,cAAL,GAAsB,IAAI/yxB,uDAAJ,EAAtB;IACA,KAAKq/nB,aAAL,GAAqB;MACjBigJ,aAAa,EAAE,IADE;MAEjB0T,kBAAkB,EAAE,GAFH;MAGjBC,YAAY,EAAE,IAHG;MAIjBrgqB,MAAM,EAAE,YAJS;MAKjBsgqB,WAAW,EAAE,IALI;MAMjBC,WAAW,EAAE,IANI;MAOjBC,WAAW,EAAE,CAPI;MAQjBC,eAAe,EAAE,KARA;MASjB9F,iBAAiB,EAAE,IATF;MAUjBC,eAAe,EAAE,KAVA;MAWjBI,mBAAmB,EAAE,IAXJ;MAYjBf,eAAe,EAAE,IAZA;MAajByG,kBAAkB,EAAE;IAbH,CAArB;EAeH,CArBmB,CAsBpB;;;EACAj0V,SAAS,CAACjuT,MAAD,EAASqhR,IAAI,GAAG,SAAhB,EAA2B;IAChC,MAAMiiM,OAAO,GAAG,EACZ,GAAG,KAAK2qC,aADI;MAEZzsgB,MAAM,EAAEigqB,iBAAiB,CAACU,sBAAlB,CAAyC9gY,IAAzC,CAFI;MAGZ,GAAG,KAAK46X,YAAL,CAAkBxB,cAAlB,CAAiCz6oB,MAAjC;IAHS,CAAhB;IAKA,KAAKi8oB,YAAL,CAAkBN,mBAAlB,CAAsCr4L,OAAtC,EAA+CA,OAAO,CAAC9he,MAAvD,EAA+D,CAAC,KAAD,EAAQ,KAAR,CAA/D;;IACA,IAAIwe,MAAM,IAAIA,MAAM,CAACmpB,gBAAjB,IAAqCnpB,MAAM,CAACkuoB,aAAP,KAAyBp8wB,SAAlE,EAA6E;MACzEwxlB,OAAO,CAAC4qL,aAAR,GAAwB,KAAxB;IACH;;IACD,OAAO5qL,OAAP;EACH;;EACD8+L,mBAAmB,CAACC,YAAD,EAAe;IAC9B,OAAO;MACHn+wB,GAAG,EAAEm+wB,YAAY,CAACn+wB,GADf;MAEHD,GAAG,EAAEo+wB,YAAY,CAACp+wB,GAFf;MAGHq6wB,qBAAqB,EAAE+D,YAAY,CAAC/D,qBAHjC;MAIHhC,aAAa,EAAE+F,YAAY,CAAC/F,aAJzB;MAKHgG,gBAAgB,EAAED,YAAY,CAACC,gBAL5B;MAMHnG,iBAAiB,EAAEkG,YAAY,CAAClG,iBAN7B;MAOHC,eAAe,EAAEiG,YAAY,CAACjG,eAP3B;MAQHC,cAAc,EAAEgG,YAAY,CAAChG,cAR1B;MASH76pB,MAAM,EAAE6gqB,YAAY,CAAC7gqB,MATlB;MAUH2nC,gBAAgB,EAAEk5nB,YAAY,CAACl5nB,gBAV5B;MAWHoznB,WAAW,EAAE8F,YAAY,CAAC9F,WAXvB;MAYHiC,cAAc,EAAE6D,YAAY,CAAC7D,cAZ1B;MAaHhC,mBAAmB,EAAE6F,YAAY,CAAC7F,mBAb/B;MAcHuC,UAAU,EAAEsD,YAAY,CAACtD,UAdtB;MAeHC,aAAa,EAAEqD,YAAY,CAACrD,aAfzB;MAgBHvC,YAAY,EAAE4F,YAAY,CAAC5F,YAhBxB;MAiBHgD,eAAe,EAAE4C,YAAY,CAAC5C,eAjB3B;MAkBHE,sBAAsB,EAAE0C,YAAY,CAAC1C,sBAlBlC;MAmBHV,cAAc,EAAEoD,YAAY,CAACpD,cAnB1B;MAoBHC,iBAAiB,EAAEmD,YAAY,CAACnD,iBApB7B;MAqBHC,wBAAwB,EAAEkD,YAAY,CAAClD,wBArBpC;MAsBHC,uBAAuB,EAAEiD,YAAY,CAACjD,uBAtBnC;MAuBHC,uBAAuB,EAAEgD,YAAY,CAAChD,uBAvBnC;MAwBHC,2BAA2B,EAAE+C,YAAY,CAAC/C,2BAxBvC;MAyBHiD,iBAAiB,EAAEF,YAAY,CAACE,iBAzB7B;MA0BH9G,eAAe,EAAE4G,YAAY,CAAC5G,eA1B3B;MA2BHiB,eAAe,EAAE2F,YAAY,CAAC3F,eA3B3B;MA4BH6C,cAAc,EAAE8C,YAAY,CAAC9C;IA5B1B,CAAP;EA8BH;;EACDiD,gBAAgB,CAACH,YAAD,EAAe;IAC3B,OAAO,KAAKX,sBAAL,CAA4BzzV,SAA5B,CAAsCo0V,YAAtC,CAAP;EACH;;EACDI,aAAa,CAACJ,YAAD,EAAe;IACxB,OAAO,KAAKf,iBAAL,CAAuBrzV,SAAvB,CAAiCo0V,YAAjC,CAAP;EACH;;EACDK,YAAY,GAAG;IACX,KAAKf,cAAL,CAAoBpqxB,IAApB;EACH,CA3EmB,CA4EpB;;;EACAorxB,qBAAqB,CAAC5yxB,KAAD,EAAQiwI,MAAR,EAAgB;IACjCjwI,KAAK,GAAGA,KAAK,GAAGA,KAAH,GAAW,EAAxB;IACA,MAAM6yxB,WAAW,GAAG,KAAK3G,YAAL,CAAkBX,wBAAlB,CAA2CvrxB,KAA3C,CAApB;IACA,OAAO6yxB,WAAW,CAACvxwB,KAAZ,CAAkBsvG,IAAI,IAAI,KAAKs7pB,YAAL,CAAkBrC,WAAlB,CAA8Bj5pB,IAA9B,EAAoCqf,MAAM,CAACxe,MAA3C,CAA1B,CAAP;EACH,CAjFmB,CAkFpB;;;EACAqhqB,6BAA6B,CAAC9yxB,KAAD,EAAQiwI,MAAR,EAAgB;IACzCjwI,KAAK,GAAGA,KAAK,GAAGA,KAAH,GAAW,EAAxB;IACA,MAAM6yxB,WAAW,GAAG,KAAK3G,YAAL,CAAkBX,wBAAlB,CAA2CvrxB,KAA3C,CAApB;IACA,OAAO,KAAKksxB,YAAL,CAAkB9B,mBAAlB,CAAsCyI,WAAtC,EAAmD5ipB,MAAnD,CAAP;EACH;;EACD8ipB,kBAAkB,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,EAAmB;IACjC,IAAI,CAACD,KAAD,IAAU,CAACC,KAAf,EAAsB;MAClB,OAAOlxxB,SAAP;IACH;;IACD,OAAO,CAAC;MACAi0lB,OAAO,EAAEi9L,KAAK,GAAGA,KAAK,KAAK,MAAV,GAAmB,OAAnB,GAA6B,KAAhC,GAAwC,OADtD;MAEAh9L,OAAO,EAAE+8L,KAAK,GAAGA,KAAK,KAAK,IAAV,GAAiB,KAAjB,GAAyB,QAA5B,GAAuC,QAFrD;MAGA98L,QAAQ,EAAE+8L,KAAK,GAAGA,KAAK,KAAK,MAAV,GAAmB,OAAnB,GAA6B,KAAhC,GAAwC,OAHvD;MAIA98L,QAAQ,EAAE68L,KAAK,GAAGA,KAAK,KAAK,IAAV,GAAiB,QAAjB,GAA4B,KAA/B,GAAuC;IAJtD,CAAD,CAAP;EAMH;;EAC4B,OAAtBZ,sBAAsB,CAAC9gY,IAAD,EAAO;IAChC,QAAQA,IAAR;MACI,KAAK,KAAL;QACI,OAAO,YAAP;;MACJ,KAAK,SAAL;QACI,OAAO,qBAAP;;MACJ,KAAK,MAAL;QACI,OAAO,UAAP;;MACJ,KAAK,OAAL;QACI,OAAO,WAAP;IARR;EAUH;;AA9GmB;;AAgHxBogY,iBAAiB,CAAClvxB,IAAlB;EAAA,iBAA8GkvxB,iBAA9G,EAvc+FxowB,sDAuc/F,CAAiJwgwB,YAAjJ,GAvc+FxgwB,sDAuc/F,CAA0K4mwB,iBAA1K,GAvc+F5mwB,sDAuc/F,CAAwMmowB,sBAAxM;AAAA;;AACAK,iBAAiB,CAAC/uxB,KAAlB,kBAxc+FumB,gEAwc/F;EAAA,OAAkHwowB,iBAAlH;EAAA,SAAkHA,iBAAlH;EAAA,YAAiJ;AAAjJ;;AACA;EAAA,mDAzc+FxowB,+DAyc/F,CAA2FwowB,iBAA3F,EAA0H,CAAC;IAC/GxuxB,IAAI,EAAEtE,qDADyG;IAE/GiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEwmxB;IAAR,CAAD,EAAyB;MAAExmxB,IAAI,EAAE4sxB;IAAR,CAAzB,EAAsD;MAAE5sxB,IAAI,EAAEmuxB;IAAR,CAAtD,CAAP;EAAiG,CAL3I;AAAA;;AAOA,MAAM6B,oBAAN,CAA2B;EACvBvzxB,WAAW,CAACusxB,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKC,cAAL,GAAsB;MAClB/ynB,gBAAgB,EAAE,KADA;MAElB41nB,UAAU,EAAE,MAFM;MAGlBv9pB,MAAM,EAAE,SAHU;MAIlBs9pB,uBAAuB,EAAE,KAJP;MAKlBG,cAAc,EAAE,KALE;MAMlBI,uBAAuB,EAAE,EANP;MAOlBC,2BAA2B,EAAE,KAPX;MAQlB5C,eAAe,EAAE,IARC;MASlB6C,cAAc,EAAE;IATE,CAAtB;EAWH;;EACDtxV,SAAS,CAACjuT,MAAD,EAAS;IACd,MAAMsjd,OAAO,GAAG,EACZ,GAAG,KAAK44L,cADI;MAEZ,GAAG,KAAKD,YAAL,CAAkBxB,cAAlB,CAAiCz6oB,MAAjC;IAFS,CAAhB;IAIAijpB,oBAAoB,CAAC96B,cAArB,CAAoC7kK,OAApC;IACA,KAAK24L,YAAL,CAAkBN,mBAAlB,CAAsCr4L,OAAtC,EAA+CA,OAAO,CAAC9he,MAAvD,EAA+D,CAAC,KAAD,EAAQ,KAAR,CAA/D;IACA,OAAO8he,OAAP;EACH;;EACD4/L,YAAY,CAACljpB,MAAD,EAAS/c,IAAT,EAAe3C,QAAQ,GAAG,IAA1B,EAAgC;IACxC,IAAI1uH,KAAK,GAAGqxH,IAAI,CAACs5Y,OAAL,CAAa,MAAb,CAAZ;IACA,OAAO,KAAK0/Q,YAAL,CAAkBvC,WAAlB,CAA8B15oB,MAAM,CAACu/oB,cAArC,EAAqD5lxB,GAArD,CAAyD,MAAM;MAClE,OAAO,KAAKsixB,YAAL,CAAkBvC,WAAlB,CAA8B,KAAK15oB,MAAM,CAACu/oB,cAA1C,EAA0D5lxB,GAA1D,CAA8D,MAAM;QACvE,MAAMgnH,IAAI,GAAG64pB,QAAQ,CAAC5nxB,KAAD,CAArB;QACA,MAAMsxH,KAAK,GAAG;UACVvC,IADU;UAEVL,QAAQ,EAAE,CAAC,CAACA,QAAQ,CAAC1uG,IAAT,CAAcy7B,CAAC,IAAIz7C,KAAK,CAAC0qgB,MAAN,CAAajvd,CAAb,EAAgB,OAAhB,CAAnB,CAFF;UAGVmwuB,YAAY,EAAE5rxB,KAAK,CAAC0qgB,MAAN,CAAak9Q,QAAQ,EAArB,EAAyB,OAAzB,CAHJ;UAIVviqB,QAAQ,EAAE,KAAKksqB,eAAL,CAAqBxiqB,IAArB,EAA2Bqf,MAA3B,CAJA;UAKVngE,IAAI,EAAE,KAAKujtB,eAAL,CAAqBpjpB,MAArB,EAA6Brf,IAA7B;QALI,CAAd;QAOA/uH,KAAK,GAAGA,KAAK,CAACqmB,GAAN,CAAU,CAAV,EAAa,OAAb,CAAR;QACA,OAAOirG,KAAP;MACH,CAXM,CAAP;IAYH,CAbM,CAAP;EAcH;;EACDigqB,eAAe,CAACxiqB,IAAD,EAAOqf,MAAP,EAAe;IAC1B,IAAIA,MAAM,CAACo/oB,uBAAX,EAAoC;MAChC,OAAOp/oB,MAAM,CAACo/oB,uBAAP,CAA+Bz+pB,IAA/B,CAAP;IACH;;IACD,IAAIqf,MAAM,CAAC97H,GAAP,IAAcy8G,IAAI,CAACk0M,QAAL,CAAc70L,MAAM,CAAC97H,GAArB,EAA0B,OAA1B,CAAlB,EAAsD;MAClD,OAAO,IAAP;IACH;;IACD,OAAO,CAAC,EAAE87H,MAAM,CAAC/7H,GAAP,IAAc08G,IAAI,CAAC87Y,OAAL,CAAaz8X,MAAM,CAAC/7H,GAApB,EAAyB,OAAzB,CAAhB,CAAR;EACH;;EACDw6wB,cAAc,CAACv6wB,GAAD,EAAMw6wB,gBAAN,EAAwB;IAClC,OAAOx6wB,GAAG,GAAGA,GAAG,CAAC2wT,QAAJ,CAAa6pd,gBAAb,EAA+B,MAA/B,CAAH,GAA4C,IAAtD;EACH;;EACDC,eAAe,CAAC16wB,GAAD,EAAMy6wB,gBAAN,EAAwB;IACnC,OAAOz6wB,GAAG,GAAGA,GAAG,CAACw4f,OAAJ,CAAYiiR,gBAAZ,EAA8B,MAA9B,CAAH,GAA2C,IAArD;EACH;;EACDH,cAAc,CAACv+oB,MAAD,EAAS/c,IAAT,EAAe;IACzB,IAAI+c,MAAM,CAACg/oB,aAAX,EAA0B;MACtB,OAAOh/oB,MAAM,CAACg/oB,aAAP,CAAqB/7pB,IAArB,CAAP;IACH;;IACD,OAAOA,IAAI,CAACzB,MAAL,CAAYwe,MAAM,CAAC++oB,UAAnB,CAAP;EACH;;EACDqE,eAAe,CAACpjpB,MAAD,EAAS9c,KAAT,EAAgB;IAC3B,IAAI8c,MAAM,CAACk/oB,iBAAX,EAA8B;MAC1B,OAAOl/oB,MAAM,CAACk/oB,iBAAP,CAAyBh8pB,KAAzB,CAAP;IACH;;IACD,OAAOA,KAAK,CAAC1B,MAAN,CAAawe,MAAM,CAACi/oB,cAApB,CAAP;EACH;;EACDoE,mBAAmB,CAACrjpB,MAAD,EAAS9c,KAAT,EAAgB;IAC/B,IAAI8c,MAAM,CAACm/oB,wBAAX,EAAqC;MACjC,OAAOn/oB,MAAM,CAACm/oB,wBAAP,CAAgCj8pB,KAAhC,CAAP;IACH;;IACD,OAAO,EAAP;EACH;;EACoB,OAAdiloB,cAAc,CAACnonB,MAAD,EAAS;IAC1B,IAAIA,MAAM,CAACu/oB,cAAP,GAAwB,CAAxB,IAA6Bv/oB,MAAM,CAACu/oB,cAAP,GAAwB,EAArD,IAA2D,CAACp0uB,MAAM,CAAC6gf,SAAP,CAAiB,KAAKhsZ,MAAM,CAACu/oB,cAA7B,CAAhE,EAA8G;MAC1G,MAAM,IAAIvvxB,KAAJ,CAAU,kEAAV,CAAN;IACH;EACJ;;AA9EsB;;AAgF3BizxB,oBAAoB,CAAC1wxB,IAArB;EAAA,iBAAiH0wxB,oBAAjH,EAhiB+FhqwB,sDAgiB/F,CAAuJwgwB,YAAvJ;AAAA;;AACAwJ,oBAAoB,CAACvwxB,KAArB,kBAjiB+FumB,gEAiiB/F;EAAA,OAAqHgqwB,oBAArH;EAAA,SAAqHA,oBAArH;EAAA,YAAuJ;AAAvJ;;AACA;EAAA,mDAliB+FhqwB,+DAkiB/F,CAA2FgqwB,oBAA3F,EAA6H,CAAC;IAClHhwxB,IAAI,EAAEtE,qDAD4G;IAElHiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAF4G,CAAD,CAA7H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEwmxB;IAAR,CAAD,CAAP;EAAkC,CAL5E;AAAA;;AAOA,MAAM6J,oBAAN,CAA2B;EACvB5zxB,WAAW,GAAG;IACV,KAAK6zxB,gBAAL,GAAwB,KAAxB;IACA,KAAKC,WAAL,GAAmB,IAAnB;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,qBAAL,GAA6B,KAA7B;IACA,KAAKC,eAAL,GAAuB,KAAvB;IACA,KAAKC,wBAAL,GAAgC,KAAhC;IACA,KAAKC,gBAAL,GAAwB,KAAxB;IACA,KAAKC,yBAAL,GAAiC,KAAjC;IACA,KAAKtI,eAAL,GAAuB,IAAvB;IACA,KAAKuI,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKq1xB,kBAAL,GAA0B,IAAIr1xB,uDAAJ,EAA1B;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKu1xB,mBAAL,GAA2B,IAAIv1xB,uDAAJ,EAA3B;IACA,KAAKw1xB,YAAL,GAAoB,IAAIx1xB,uDAAJ,EAApB;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;EACH;;EACD01xB,cAAc,GAAG;IACb,KAAKN,SAAL,CAAezsxB,IAAf;EACH;;EACDgtxB,uBAAuB,GAAG;IACtB,KAAKN,kBAAL,CAAwB1sxB,IAAxB;EACH;;EACDitxB,eAAe,GAAG;IACd,KAAKN,UAAL,CAAgB3sxB,IAAhB;EACH;;EACDktxB,wBAAwB,GAAG;IACvB,KAAKN,mBAAL,CAAyB5sxB,IAAzB;EACH;;EACDmtxB,YAAY,GAAG;IACX,KAAKN,YAAL,CAAkB7sxB,IAAlB;EACH;;AAjCsB;;AAmC3B+rxB,oBAAoB,CAAC/wxB,IAArB;EAAA,iBAAiH+wxB,oBAAjH;AAAA;;AACAA,oBAAoB,CAAChpwB,IAArB,kBA7kB+FrB,+DA6kB/F;EAAA,MAAqGqqwB,oBAArG;EAAA;EAAA;EAAA;IAAA;MA7kB+FrqwB,wDA6kB/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MA7kB+FA,4DA6kB4xB,0BAA33B;MA7kB+FA,uDA6kBw3B,cAAv9B;MA7kB+FA,4DA6kBmgC,gBAAlmC;MA7kB+FA,wDA6kB2gC;QAAA,OAAU,kBAAV;MAAA,EAA1mC;MA7kB+FA,0DA6kBuvC,IAAt1C;MA7kB+FA,4DA6kBgxC,0BAA/2C;MA7kB+FA,wDA6kBi3C,8DAAh9C;MA7kB+FA,4DA6kBonD,gBAAntD;MA7kB+FA,wDA6kB4nD;QAAA,OAAU,oBAAV;MAAA,EAA3tD;MA7kB+FA,0DA6kBw3D,IAAv9D;MA7kB+FA,wDA6kBm5D,8DAAl/D;MA7kB+FA,4DA6kBokE,+BAAnqE;MA7kB+FA,wDA6kBmoE;QAAA,OAAU,qBAAV;MAAA,EAAluE;MA7kB+FA,0DA6kBo4E,EAAn+E;MA7kB+FA,wDA6kBq5E,iEAAp/E;MA7kB+FA,0DA6kB0pF,MAAzvF;IAAA;;IAAA;MA7kB+FA,uDA6kBi7B,GAAhhC;MA7kB+FA,wDA6kBi7B,wDAAhhC;MA7kB+FA,yDA6kB83B,qCAA79B;MA7kB+FA,uDA6kBymC,GAAxsC;MA7kB+FA,wDA6kBymC,yDAAxsC;MA7kB+FA,yDA6kBmjC,sCAAlpC;MA7kB+FA,uDA6kB+6C,GAA9gD;MA7kB+FA,wDA6kB+6C,kCAA9gD;MA7kB+FA,uDA6kB2tD,GAA1zD;MA7kB+FA,wDA6kB2tD,6DAA1zD;MA7kB+FA,yDA6kBwqD,iCAAvwD;MA7kB+FA,uDA6kB08D,GAAziE;MA7kB+FA,wDA6kB08D,6BAAziE;MA7kB+FA,uDA6kBouE,GAAn0E;MA7kB+FA,wDA6kBouE,+DAAn0E;MA7kB+FA,yDA6kBgrE,kCAA/wE;MA7kB+FA,uDA6kBo9E,GAAnjF;MA7kB+FA,wDA6kBo9E,mCAAnjF;IAAA;EAAA;EAAA,eAA60MwnqB,iDAA70M,EAAi7MG,kDAAj7M;EAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDA9kB+F3nqB,+DA8kB/F,CAA2FqqwB,oBAA3F,EAA6H,CAAC;IAClHrwxB,IAAI,EAAEimB,oDAD4G;IAElHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,iBAAZ;MAA+BilB,aAAa,EAAEnmB,iEAA9C;MAAsE6slB,eAAe,EAAE5H,yEAAvF;MAAuH9jlB,QAAQ,EAAE,05DAAjI;MAA6hEjb,MAAM,EAAE,CAAC,igHAAD;IAAriE,CAAD;EAF4G,CAAD,CAA7H,QAG4B;IAAEk/G,KAAK,EAAE,CAAC;MACtBxrH,IAAI,EAAEmmB,gDAAKA;IADW,CAAD,CAAT;IAEZmqwB,gBAAgB,EAAE,CAAC;MACnBtwxB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAFN;IAIZoqwB,WAAW,EAAE,CAAC;MACdvwxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAJD;IAMZqqwB,oBAAoB,EAAE,CAAC;MACvBxwxB,IAAI,EAAEmmB,gDAAKA;IADY,CAAD,CANV;IAQZsqwB,YAAY,EAAE,CAAC;MACfzwxB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CARF;IAUZuqwB,qBAAqB,EAAE,CAAC;MACxB1wxB,IAAI,EAAEmmB,gDAAKA;IADa,CAAD,CAVX;IAYZwqwB,eAAe,EAAE,CAAC;MAClB3wxB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CAZL;IAcZyqwB,wBAAwB,EAAE,CAAC;MAC3B5wxB,IAAI,EAAEmmB,gDAAKA;IADgB,CAAD,CAdd;IAgBZ0qwB,gBAAgB,EAAE,CAAC;MACnB7wxB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAhBN;IAkBZ2qwB,yBAAyB,EAAE,CAAC;MAC5B9wxB,IAAI,EAAEmmB,gDAAKA;IADiB,CAAD,CAlBf;IAoBZqiwB,eAAe,EAAE,CAAC;MAClBxoxB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CApBL;IAsBZ0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CAtBK;IA2BZ4qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CA3BC;IA6BZ2qwB,kBAAkB,EAAE,CAAC;MACrBhxxB,IAAI,EAAEqmB,iDAAMA;IADS,CAAD,CA7BR;IA+BZ4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD,CA/BA;IAiCZ6qwB,mBAAmB,EAAE,CAAC;MACtBlxxB,IAAI,EAAEqmB,iDAAMA;IADU,CAAD,CAjCT;IAmCZ8qwB,YAAY,EAAE,CAAC;MACfnxxB,IAAI,EAAEqmB,iDAAMA;IADG,CAAD,CAnCF;IAqCZ+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD;EArCH,CAH5B;AAAA;;AA4CA,MAAMqrwB,sBAAN,CAA6B;EACzBj1xB,WAAW,CAACk1xB,oBAAD,EAAuB3I,YAAvB,EAAqC3oD,EAArC,EAAyC;IAChD,KAAKsxD,oBAAL,GAA4BA,oBAA5B;IACA,KAAK3I,YAAL,GAAoBA,YAApB;IACA,KAAK3oD,EAAL,GAAUA,EAAV;IACA,KAAKuxD,QAAL,GAAgB,IAAIj2xB,uDAAJ,EAAhB;IACA,KAAKk2xB,mBAAL,GAA2B,IAAIl2xB,uDAAJ,EAA3B;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;IACA,KAAKo1xB,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKq1xB,kBAAL,GAA0B,IAAIr1xB,uDAAJ,EAA1B;IACA,KAAKu1xB,mBAAL,GAA2B,IAAIv1xB,uDAAJ,EAA3B;IACA,KAAKm2xB,QAAL,GAAgB,KAAhB;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKzmvB,GAAL,GAAW;MACP0mvB,cAAc,EAAE,KAAKC,kBAAL,CAAwBpnvB,IAAxB,CAA6B,IAA7B,CADT;MAEPqnvB,cAAc,EAAE,KAAKA,cAAL,CAAoBrnvB,IAApB,CAAyB,IAAzB;IAFT,CAAX;EAIH;;EACW,IAARwiF,QAAQ,GAAG;IACX,OAAO,KAAK66d,SAAZ;EACH;;EACW,IAAR76d,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK66d,SAAL,GAAiB76d,QAAjB;IACA,KAAK8kqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B/kqB,QAA7B,CAAtB;EACH;;EACkB,IAAfglqB,eAAe,GAAG;IAClB,OAAO,KAAKC,gBAAZ;EACH;;EACkB,IAAfD,eAAe,CAACzsxB,OAAD,EAAU;IACzB,KAAK0sxB,gBAAL,GAAwB/L,QAAQ,CAAC3gxB,OAAO,CAAC+jgB,MAAR,EAAD,CAAhC;IACA,KAAK4oR,UAAL,GAAkB,KAAKZ,oBAAL,CACb1B,YADa,CACA,KAAKvhS,eADL,EACsB,KAAK4jS,gBAD3B,EAC6C,KAAKjlqB,QADlD,CAAlB;IAEA,KAAKmlqB,QAAL,GAAgB,KAAKb,oBAAL,CAA0BrG,cAA1B,CAAyC,KAAK58R,eAA9C,EAA+D,KAAK2jS,eAApE,CAAhB;IACA,KAAK9B,WAAL,GAAmB,KAAKoB,oBAAL,CAA0BnG,cAA1B,CAAyC,KAAK98R,eAAL,CAAqBz9e,GAA9D,EAAmE,KAAKqhxB,gBAAxE,CAAnB;IACA,KAAK7B,YAAL,GAAoB,KAAKkB,oBAAL,CAA0BjG,eAA1B,CAA0C,KAAKh9R,eAAL,CAAqB19e,GAA/D,EAAoE,KAAKqhxB,eAAzE,CAApB;IACA,KAAKI,oBAAL,GAA4B,KAAK/jS,eAAL,CAAqB29R,2BAArB,IAAoD,KAAKkE,WAArF;IACA,KAAKmC,qBAAL,GAA6B,KAAKhkS,eAAL,CAAqB29R,2BAArB,IAAoD,KAAKoE,YAAtF;EACH;;EACD5lL,QAAQ,GAAG;IACP,KAAKinL,QAAL,GAAgB,IAAhB;IACA,KAAK1gwB,IAAL;IACA,KAAKuhwB,cAAL;EACH;;EACDlnvB,WAAW,CAACC,OAAD,EAAU;IACjB,IAAI,KAAKomvB,QAAT,EAAmB;MACf,MAAM;QAAEjL,OAAF;QAAWmB,OAAX;QAAoBj7oB;MAApB,IAA+BrhG,OAArC;MACA,KAAKknvB,kBAAL,CAAwB7lpB,MAAxB;MACA,KAAK37G,IAAL;;MACA,IAAIy1vB,OAAO,IAAImB,OAAf,EAAwB;QACpB,KAAK2K,cAAL;MACH;;MACD,KAAKtyD,EAAL,CAAQxtH,YAAR;IACH;EACJ;;EACDzhlB,IAAI,GAAG;IACH,KAAKs9d,eAAL,GAAuB,KAAKijS,oBAAL,CAA0B32V,SAA1B,CAAoC,KAAKjuT,MAAzC,CAAvB;IACA,KAAK1f,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;IACA,KAAKglqB,eAAL,GAAuB,KAAKQ,WAAL,IAAoB,KAAK7J,YAAL,CACtCpC,qBADsC,CAChB,KAAKyL,eADW,EACM,KAAKhlqB,QADX,EACqB,KAAKqhY,eAAL,CAAqBx4V,gBAD1C,EAC4D,KAAKw4V,eAAL,CAAqBz9e,GADjF,CAA3C;IAEA,KAAK6hxB,cAAL,GAAsB,KAAK9J,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAKwib,eAAL,CAAqBx4V,gBAArE,CAAtB;IACA,KAAK67nB,kBAAL,GAA0B,KAAKxJ,iBAAL,EAA1B;EACH;;EACDjtD,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKovE,UAAL,GAAkBpvE,KAAlB;;IACA,IAAIA,KAAJ,EAAW;MACP,KAAKuwH,QAAL,GAAgB,KAAK27pB,YAAL,CACX9B,mBADW,CACSpqxB,KADT,EACgB,KAAK4xf,eADrB,CAAhB;MAEA,KAAK6jS,UAAL,GAAkB,KAAKZ,oBAAL,CACb1B,YADa,CACA,KAAKvhS,eADL,EACsB,KAAK2jS,eAD3B,EAC4C,KAAKhlqB,QADjD,CAAlB;MAEA,KAAKylqB,cAAL,GAAsB,KAAK9J,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAKwib,eAAL,CAAqBx4V,gBAArE,CAAtB;IACH,CAND,MAOK;MACD,KAAK7oC,QAAL,GAAgB,EAAhB;MACA,KAAKklqB,UAAL,GAAkB,KAAKZ,oBAAL,CACb1B,YADa,CACA,KAAKvhS,eADL,EACsB,KAAK2jS,eAD3B,EAC4C,KAAKhlqB,QADjD,CAAlB;IAEH;;IACD,KAAKgzmB,EAAL,CAAQxtH,YAAR;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKy0xB,gBAAL,GAAwBz0xB,EAAxB;EACH;;EACDy0xB,gBAAgB,CAAC5vtB,CAAD,EAAI,CACnB;;EACDw4pB,iBAAiB,CAACr9tB,EAAD,EAAK,CACrB;;EACDmkD,QAAQ,CAACkxuB,WAAD,EAAc;IAClB,IAAI,KAAKlM,OAAL,IAAgB,KAAKmB,OAAzB,EAAkC;MAC9B,OAAO,KAAKz3Z,UAAL,CAAgBwia,WAAW,CAACj2xB,KAA5B,CAAP;IACH,CAFD,MAGK;MACD,OAAO,MAAM,IAAb;IACH;EACJ;;EACDs1xB,uBAAuB,CAACt1xB,KAAD,EAAQ;IAC3B,OAAO,KAAKksxB,YAAL,CAAkB5B,qBAAlB,CAAwC,KAAK14R,eAAL,CAAqBngY,MAA7D,EAAqEzxH,KAArE,EAA4E,KAAK4xf,eAAL,CAAqB4gS,iBAArB,IAA0C,KAAKwD,cAA3H,CAAP;EACH;;EACDH,cAAc,GAAG;IACb,KAAKpia,UAAL,GAAkB,KAAKA,UAAL,GAAkB,KAAKy4Z,YAAL,CAAkBl3C,eAAlB,CAAkC;MAAE+0C,OAAO,EAAE,KAAKA,OAAhB;MAAyBmB,OAAO,EAAE,KAAKA;IAAvC,CAAlC,EAAoF,KAAKt5R,eAAL,CAAqBngY,MAAzG,EAAiH,OAAjH,CAApC;IACA,KAAK4jqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B,KAAK/kqB,QAAlC,CAAtB;EACH;;EACD2lqB,YAAY,CAAC/iqB,KAAD,EAAQ;IAChB,IAAIA,KAAK,CAAC5C,QAAN,IAAkB,CAAC,KAAKqhY,eAAL,CAAqB+6R,eAA5C,EAA6D;MACzD;IACH;;IACD,KAAKp8pB,QAAL,GAAgB,KAAK27pB,YAAL,CACXp3S,cADW,CACI,KAAK8c,eAAL,CAAqBx4V,gBADzB,EAC2C,KAAK7oC,QADhD,EAC0D4C,KAD1D,EACiE,OADjE,CAAhB;IAEA,KAAKsiqB,UAAL,GAAkB,KAAKZ,oBAAL,CACb1B,YADa,CACA,KAAKvhS,eADL,EACsB,KAAK2jS,eAD3B,EAC4C,KAAKhlqB,QADjD,CAAlB;IAEA,KAAKukqB,QAAL,CAActtxB,IAAd,CAAmB2rH,KAAnB;EACH;;EACDgjqB,cAAc,GAAG;IACb,MAAM7rwB,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAK0oR,eAAL,GAAuB,KAAKA,eAAL,CAAqBroR,QAArB,CAA8B,CAA9B,EAAiC,MAAjC,CAAvB;IACA,MAAMhzK,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAK4oR,UAAL,GAAkB,KAAKZ,oBAAL,CAA0B1B,YAA1B,CAAuC,KAAKvhS,eAA5C,EAA6D,KAAK2jS,eAAlE,EAAmF,KAAKhlqB,QAAxF,CAAlB;IACA,KAAK0jqB,SAAL,CAAezsxB,IAAf,CAAoB;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAApB;EACH;;EACDk8b,uBAAuB,GAAG;IACtB,IAAIC,UAAU,GAAG,KAAKzkS,eAAL,CAAqB09R,uBAAtC;IACA,MAAMgH,cAAc,GAAG,KAAK1kS,eAAL,CAAqBz9e,GAArB,IACnB,KAAKohxB,eAAL,CAAqBriqB,IAArB,KAA8B,KAAK0+X,eAAL,CAAqBz9e,GAArB,CAAyB++G,IAAzB,EAA9B,GAAgEmjqB,UADpE;;IAEA,IAAIC,cAAJ,EAAoB;MAChBD,UAAU,GAAG,KAAKd,eAAL,CAAqBriqB,IAArB,KAA8B,KAAK0+X,eAAL,CAAqBz9e,GAArB,CAAyB++G,IAAzB,EAA3C;IACH;;IACD,MAAM5oG,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAK0oR,eAAL,GAAuB,KAAKA,eAAL,CAAqBroR,QAArB,CAA8BmpR,UAA9B,EAA0C,MAA1C,CAAvB;IACA,MAAMn8b,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAKqnR,kBAAL,CAAwB1sxB,IAAxB,CAA6B;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAA7B;EACH;;EACDq8b,eAAe,GAAG;IACd,MAAMjswB,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAK0oR,eAAL,GAAuB,KAAKA,eAAL,CAAqBrtwB,GAArB,CAAyB,CAAzB,EAA4B,MAA5B,CAAvB;IACA,MAAMgyU,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAKsnR,UAAL,CAAgB3sxB,IAAhB,CAAqB;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAArB;EACH;;EACDs8b,wBAAwB,GAAG;IACvB,IAAIH,UAAU,GAAG,KAAKzkS,eAAL,CAAqB09R,uBAAtC;IACA,MAAMgH,cAAc,GAAG,KAAK1kS,eAAL,CAAqB19e,GAArB,IACnB,KAAK09e,eAAL,CAAqB19e,GAArB,CAAyBg/G,IAAzB,KAAkC,KAAKqiqB,eAAL,CAAqBriqB,IAArB,EAAlC,GAAgEmjqB,UADpE;;IAEA,IAAIC,cAAJ,EAAoB;MAChBD,UAAU,GAAG,KAAKzkS,eAAL,CAAqB19e,GAArB,CAAyBg/G,IAAzB,KAAkC,KAAKqiqB,eAAL,CAAqBriqB,IAArB,EAA/C;IACH;;IACD,MAAM5oG,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAK0oR,eAAL,GAAuB,KAAKA,eAAL,CAAqBrtwB,GAArB,CAAyBmuwB,UAAzB,EAAqC,MAArC,CAAvB;IACA,MAAMn8b,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAKunR,mBAAL,CAAyB5sxB,IAAzB,CAA8B;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAA9B;EACH;;EACDi7b,kBAAkB,GAAG;IACjB,KAAKJ,mBAAL,CAAyBvtxB,IAAzB;EACH;;EACD8rxB,mBAAmB,CAACngqB,KAAD,EAAQ;IACvB,MAAMkE,QAAQ,GAAG;MACb,eAAelE,KAAK,CAAC5C,QADR;MAEb,oBAAoB4C,KAAK,CAACs6pB;IAFb,CAAjB;IAIA,MAAMgJ,cAAc,GAAG,KAAK5B,oBAAL,CAA0BvB,mBAA1B,CAA8C,KAAK1hS,eAAnD,EAAoEz+X,KAAK,CAACvC,IAA1E,CAAvB;;IACA,IAAI6lqB,cAAJ,EAAoB;MAChBp/pB,QAAQ,CAACo/pB,cAAD,CAAR,GAA2B,IAA3B;IACH;;IACD,OAAOp/pB,QAAP;EACH;;EACDo0pB,iBAAiB,GAAG;IAChB,OAAO,KAAKS,YAAL,CAAkBT,iBAAlB,CAAoC,KAAK75R,eAAL,CAAqB85R,eAAzD,EAA0E,OAA1E,EAAmF,KAAK95R,eAAL,CAAqBz9e,GAAxG,EAA6G,KAAKy9e,eAAL,CAAqB19e,GAAlI,CAAP;EACH;;EACDwixB,WAAW,GAAG;IACV,KAAKnB,eAAL,GAAuB9L,QAAQ,EAA/B;IACA,KAAK6K,aAAL,CAAmB9sxB,IAAnB;EACH;;EACD4txB,cAAc,CAACl7b,EAAD,EAAK;IACf,IAAIA,EAAJ,EAAQ;MACJ,KAAKq7b,eAAL,GAAuB,KAAKrJ,YAAL,CAAkBtC,cAAlB,CAAiC1vb,EAAjC,EAAqC,KAAK03J,eAAL,CAAqBngY,MAA1D,CAAvB;MACA,KAAK8xmB,EAAL,CAAQxtH,YAAR;IACH;EACJ;;EACD+/K,kBAAkB,CAAC7lpB,MAAD,EAAS;IACvB,IAAIA,MAAJ,EAAY;MACR,MAAM67oB,QAAQ,GAAG,KAAK+I,oBAAL,CAA0B32V,SAA1B,CAAoCjuT,MAAM,CAAC3rD,aAA3C,CAAjB;MACA,MAAMynsB,WAAW,GAAG,KAAK8I,oBAAL,CAA0B32V,SAA1B,CAAoCjuT,MAAM,CAACloE,YAA3C,CAApB;;MACA,IAAI,KAAKmktB,YAAL,CAAkBL,sBAAlB,CAAyCC,QAAzC,EAAmDC,WAAnD,CAAJ,EAAqE;QACjE,KAAKyJ,gBAAL,GAAwB,IAAxB;MACH;IACJ;EACJ;;AAvLwB;;AAyL7BZ,sBAAsB,CAACpyxB,IAAvB;EAAA,iBAAmHoyxB,sBAAnH,EAnzB+F1rwB,+DAmzB/F,CAA2JgqwB,oBAA3J,GAnzB+FhqwB,+DAmzB/F,CAA4LwgwB,YAA5L,GAnzB+FxgwB,+DAmzB/F,CAAqNA,4DAArN;AAAA;;AACA0rwB,sBAAsB,CAACrqwB,IAAvB,kBApzB+FrB,+DAozB/F;EAAA,MAAuG0rwB,sBAAvG;EAAA;EAAA;EAAA;IAAA;MApzB+F1rwB,wDAozB/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WApzB+FA,gEAozB/F,CAAmkB,CAC3jBgqwB,oBAD2jB,EAE3jB;IACI/nxB,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMsmL,sBAAP,CAF3B;IAGIrgnB,KAAK,EAAE;EAHX,CAF2jB,EAO3jB;IACIppK,OAAO,EAAEm0tB,yDADb;IAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMsmL,sBAAP,CAF3B;IAGIrgnB,KAAK,EAAE;EAHX,CAP2jB,CAAnkB,GApzB+FrrJ,kEAozB/F;EAAA;EAAA;EAAA;EAAA;IAAA;MApzB+FA,4DAg0B1C,sCAZrD;MApzB+FA,wDAg0ByC;QAAA,OAAkB,iBAAlB;MAAA;QAAA,OAA0D,wBAA1D;MAAA;QAAA,OAAsG,oBAAtG;MAAA;QAAA,OAAuJ,6BAAvJ;MAAA;QAAA,OAAyM,qBAAzM;MAAA;QAAA,OAA4P,8BAA5P;MAAA,EAZxI;MApzB+FA,0DAg0B8qB,EAZ7wB;MApzB+FA,4DAg0BssB,aAZryB;MApzB+FA,wDAg0B+uB,0DAZ90B;MApzB+FA,0DAg0B0tC,IAZzzC;IAAA;;IAAA;MApzB+FA,uDAg0ByU,GAZxa;MApzB+FA,wDAg0ByU,gUAZxa;MApzB+FA,uDAg0B0wB,GAZz2B;MApzB+FA,wDAg0B0wB,2BAZz2B;IAAA;EAAA;EAAA,eAY21EwnqB,oDAZ31E,EAYy7EA,oDAZz7E,EAYsjFG,kDAZtjF,EAY0qF0iG,oBAZ1qF;EAAA;EAAA;EAAA;AAAA;;AAaA;EAAA,mDAj0B+FrqwB,+DAi0B/F,CAA2F0rwB,sBAA3F,EAA+H,CAAC;IACpH1xxB,IAAI,EAAEimB,oDAD8G;IAEpHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,mBAAZ;MAAiCilB,aAAa,EAAEnmB,iEAAhD;MAAwE6slB,eAAe,EAAE5H,yEAAzF;MAAyHrjmB,SAAS,EAAE,CAC/HgoxB,oBAD+H,EAE/H;QACI/nxB,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMsmL,sBAAP,CAF3B;QAGIrgnB,KAAK,EAAE;MAHX,CAF+H,EAO/H;QACIppK,OAAO,EAAEm0tB,yDADb;QAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMsmL,sBAAP,CAF3B;QAGIrgnB,KAAK,EAAE;MAHX,CAP+H,CAApI;MAYI9pJ,QAAQ,EAAE,sxCAZd;MAYsyCjb,MAAM,EAAE,CAAC,y9BAAD;IAZ9yC,CAAD;EAF8G,CAAD,CAA/H,EAe4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEgwxB;IAAR,CAAD,EAAiC;MAAEhwxB,IAAI,EAAEwmxB;IAAR,CAAjC,EAAyD;MAAExmxB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAzD,CAAP;EAAkG,CAf5I,EAe8J;IAAEhme,MAAM,EAAE,CAAC;MACzJ/sI,IAAI,EAAEmmB,gDAAKA;IAD8I,CAAD,CAAV;IAE9I0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAFiI;IAI9I0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAJqI;IAM9I6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CANqI;IAQ9I0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CARuI;IAa9IyrwB,QAAQ,EAAE,CAAC;MACX5xxB,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAboI;IAe9IwrwB,mBAAmB,EAAE,CAAC;MACtB7xxB,IAAI,EAAEqmB,iDAAMA;IADU,CAAD,CAfyH;IAiB9I+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CAjB+H;IAmB9I0qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CAnBmI;IAqB9I4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD,CArBkI;IAuB9I2qwB,kBAAkB,EAAE,CAAC;MACrBhxxB,IAAI,EAAEqmB,iDAAMA;IADS,CAAD,CAvB0H;IAyB9I6qwB,mBAAmB,EAAE,CAAC;MACtBlxxB,IAAI,EAAEqmB,iDAAMA;IADU,CAAD;EAzByH,CAf9J;AAAA;;AA4CA,MAAMotwB,oBAAN,CAA2B;EACvBh3xB,WAAW,CAAC2xxB,kBAAD,EAAqBpF,YAArB,EAAmC3oD,EAAnC,EAAuC;IAC9C,KAAK+tD,kBAAL,GAA0BA,kBAA1B;IACA,KAAKpF,YAAL,GAAoBA,YAApB;IACA,KAAK3oD,EAAL,GAAUA,EAAV;IACA,KAAKuxD,QAAL,GAAgB,IAAIj2xB,uDAAJ,EAAhB;IACA,KAAK+3xB,aAAL,GAAqB,IAAI/3xB,uDAAJ,EAArB;IACA,KAAKk2xB,mBAAL,GAA2B,IAAIl2xB,uDAAJ,EAA3B;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;IACA,KAAKo1xB,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKg4xB,YAAL,GAAoBvN,aAApB;IACA,KAAK0L,QAAL,GAAgB,KAAhB;IACA,KAAK8B,mBAAL,GAA2BxN,aAAa,CAACzkK,GAAzC;IACA,KAAKowK,kBAAL,GAA0B,IAA1B;IACA,KAAKzmvB,GAAL,GAAW;MACPuovB,eAAe,EAAE,KAAKA,eAAL,CAAqBhpvB,IAArB,CAA0B,IAA1B,CADV;MAEPqnvB,cAAc,EAAE,KAAKA,cAAL,CAAoBrnvB,IAApB,CAAyB,IAAzB,CAFT;MAGPonvB,kBAAkB,EAAE,KAAKA,kBAAL,CAAwBpnvB,IAAxB,CAA6B,IAA7B;IAHb,CAAX;EAKH;;EACW,IAARwiF,QAAQ,GAAG;IACX,OAAO,KAAK66d,SAAZ;EACH;;EACW,IAAR76d,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK66d,SAAL,GAAiB76d,QAAjB;IACA,KAAK8kqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B/kqB,QAA7B,CAAtB;EACH;;EACkB,IAAfglqB,eAAe,GAAG;IAClB,OAAO,KAAKC,gBAAZ;EACH;;EACkB,IAAfD,eAAe,CAACzsxB,OAAD,EAAU;IACzB,KAAK0sxB,gBAAL,GAAwB/L,QAAQ,CAAC3gxB,OAAO,CAAC+jgB,MAAR,EAAD,CAAhC;IACA,KAAK1qH,KAAL,GAAa,KAAKmvY,kBAAL,CACRtE,kBADQ,CACW,KAAKp7R,eADhB,EACiC,KAAK4jS,gBADtC,EACwD,KAAKjlqB,QAD7D,CAAb;IAEA,KAAKmlqB,QAAL,GAAgB,KAAKpE,kBAAL,CAAwB9C,cAAxB,CAAuC,KAAK58R,eAA5C,EAA6D,KAAK4jS,gBAAlE,CAAhB;IACA,KAAK/B,WAAL,GAAmB,KAAKnC,kBAAL,CAAwB5C,cAAxB,CAAuC,KAAK98R,eAAL,CAAqBz9e,GAA5D,EAAiE,KAAKohxB,eAAtE,CAAnB;IACA,KAAK5B,YAAL,GAAoB,KAAKrC,kBAAL,CAAwB1C,eAAxB,CAAwC,KAAKh9R,eAAL,CAAqB19e,GAA7D,EAAkE,KAAKqhxB,eAAvE,CAApB;EACH;;EAEDxnL,QAAQ,GAAG;IACP,KAAKinL,QAAL,GAAgB,IAAhB;IACA,KAAK1gwB,IAAL;IACA,KAAKuhwB,cAAL;EACH;;EACDvhwB,IAAI,GAAG;IACH,KAAKs9d,eAAL,GAAuB,KAAK0/R,kBAAL,CAAwBpzV,SAAxB,CAAkC,KAAKjuT,MAAvC,CAAvB;IACA,KAAK1f,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;IACA,KAAKglqB,eAAL,GAAuB,KAAKQ,WAAL,GACjB,KAAK7J,YAAL,CAAkBtC,cAAlB,CAAiC,KAAKmM,WAAtC,EAAmD,KAAKnkS,eAAL,CAAqBngY,MAAxE,CADiB,GAEjB,KAAKy6pB,YAAL,CACGpC,qBADH,CACyB,KAAKyL,eAD9B,EAC+C,KAAKhlqB,QADpD,EAC8D,KAAKqhY,eAAL,CAAqBx4V,gBADnF,EACqG,KAAKw4V,eAAL,CAAqBz9e,GAD1H,CAFN;IAIA,KAAKi3f,QAAL,GAAgB,KAAKkmR,kBAAL,CACXxD,gBADW,CACM,KAAKl8R,eAAL,CAAqB06R,cAD3B,CAAhB;IAEA,KAAK0J,cAAL,GAAsB,KAAK9J,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAKwib,eAAL,CAAqBx4V,gBAArE,CAAtB;IACA,KAAK49nB,mBAAL,GAA2B,KAAK1F,kBAAL,CAAwBxC,sBAAxB,CAA+C,KAAKl9R,eAApD,CAA3B;IACA,KAAKqjS,kBAAL,GAA0B,KAAKxJ,iBAAL,EAA1B;EACH;;EACD98uB,WAAW,CAACC,OAAD,EAAU;IACjB,IAAI,KAAKomvB,QAAT,EAAmB;MACf,MAAM;QAAEjL,OAAF;QAAWmB,OAAX;QAAoBj7oB;MAApB,IAA+BrhG,OAArC;MACA,KAAKknvB,kBAAL,CAAwB7lpB,MAAxB;MACA,KAAK37G,IAAL;;MACA,IAAIy1vB,OAAO,IAAImB,OAAf,EAAwB;QACpB,KAAK2K,cAAL;MACH;IACJ;EACJ;;EACDr3D,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKovE,UAAL,GAAkBpvE,KAAlB;;IACA,IAAIA,KAAJ,EAAW;MACP,KAAKuwH,QAAL,GAAgB,KAAK27pB,YAAL,CACX9B,mBADW,CACSpqxB,KADT,EACgB,KAAK4xf,eADrB,CAAhB;MAEA,KAAKokS,cAAL,GAAsB,KAAK9J,YAAL,CACjBlC,YADiB,CACJ,KAAK56sB,UADD,EACa,KAAKwib,eAAL,CAAqBx4V,gBADlC,CAAtB;IAEH,CALD,MAMK;MACD,KAAK7oC,QAAL,GAAgB,EAAhB;IACH;;IACD,KAAK4xR,KAAL,GAAa,KAAKmvY,kBAAL,CACRtE,kBADQ,CACW,KAAKp7R,eADhB,EACiC,KAAK2jS,eADtC,EACuD,KAAKhlqB,QAD5D,CAAb;IAEA,KAAKgzmB,EAAL,CAAQxtH,YAAR;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKy0xB,gBAAL,GAAwBz0xB,EAAxB;EACH;;EACDy0xB,gBAAgB,CAAC5vtB,CAAD,EAAI,CACnB;;EACDw4pB,iBAAiB,CAACr9tB,EAAD,EAAK,CACrB;;EACDmkD,QAAQ,CAACkxuB,WAAD,EAAc;IAClB,IAAI,KAAKlM,OAAL,IAAgB,KAAKmB,OAAzB,EAAkC;MAC9B,OAAO,KAAKz3Z,UAAL,CAAgBwia,WAAW,CAACj2xB,KAA5B,CAAP;IACH,CAFD,MAGK;MACD,OAAO,MAAM,IAAb;IACH;EACJ;;EACDs1xB,uBAAuB,CAACt1xB,KAAD,EAAQ;IAC3B,OAAO,KAAKksxB,YAAL,CAAkB5B,qBAAlB,CAAwC,KAAK14R,eAAL,CAAqBngY,MAA7D,EAAqEzxH,KAArE,EAA4E,KAAK4xf,eAAL,CAAqB4gS,iBAArB,IAA0C,KAAKwD,cAA3H,CAAP;EACH;;EACDH,cAAc,GAAG;IACb,KAAKpia,UAAL,GAAkB,KAAKy4Z,YAAL,CAAkBl3C,eAAlB,CAAkC;MAAE+0C,OAAO,EAAE,KAAKA,OAAhB;MAAyBmB,OAAO,EAAE,KAAKA;IAAvC,CAAlC,EAAoF,KAAKt5R,eAAL,CAAqBngY,MAAzG,EAAiH,KAAjH,CAAlB;IACA,KAAK4jqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B,KAAK/kqB,QAAlC,CAAtB;EACH;;EACD0mqB,UAAU,CAAC7jqB,GAAD,EAAM;IACZ,IAAIA,GAAG,CAAC7C,QAAJ,IAAgB,CAAC,KAAKqhY,eAAL,CAAqB+6R,eAA1C,EAA2D;MACvD;IACH;;IACD,KAAKp8pB,QAAL,GAAgB,KAAK27pB,YAAL,CACXp3S,cADW,CACI,KAAK8c,eAAL,CAAqBx4V,gBADzB,EAC2C,KAAK7oC,QADhD,EAC0D6C,GAD1D,CAAhB;IAEA,KAAK+uR,KAAL,GAAa,KAAKmvY,kBAAL,CACRtE,kBADQ,CACW,KAAKp7R,eADhB,EACiC,KAAK2jS,eADtC,EACuD,KAAKhlqB,QAD5D,CAAb;IAEA,KAAKukqB,QAAL,CAActtxB,IAAd,CAAmB4rH,GAAnB;EACH;;EACDq8pB,aAAa,CAACr8pB,GAAD,EAAM;IACf,OAAO,KAAKk+pB,kBAAL,CAAwB7B,aAAxB,CAAsC,KAAK79R,eAA3C,EAA4Dx+X,GAAG,CAACxC,IAAhE,CAAP;EACH;;EACD++pB,iBAAiB,CAACv8pB,GAAD,EAAM;IACnB,MAAMijF,UAAU,GAAG;MACf,eAAejjF,GAAG,CAAC7C,QADJ;MAEf,oBAAoB6C,GAAG,CAACq6pB,YAFT;MAGf,iBAAiBr6pB,GAAG,CAACi6pB,SAHN;MAIf,iBAAiBj6pB,GAAG,CAACk6pB,SAJN;MAKf,kBAAkBl6pB,GAAG,CAACs6pB;IALP,CAAnB;IAOA,MAAM+I,cAAc,GAAG,KAAKnF,kBAAL,CAAwB3B,iBAAxB,CAA0C,KAAK/9R,eAA/C,EAAgEx+X,GAAG,CAACxC,IAApE,CAAvB;;IACA,IAAI6lqB,cAAJ,EAAoB;MAChBpglB,UAAU,CAACoglB,cAAD,CAAV,GAA6B,IAA7B;IACH;;IACD,OAAOpglB,UAAP;EACH;;EACD8/kB,cAAc,GAAG;IACb,MAAM7rwB,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAKkqR,eAAL,CAAqB,KAAKxB,eAA1B,EAA2C,CAAC,CAA5C,EAA+C,OAA/C;IACA,MAAMr7b,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAKonR,SAAL,CAAezsxB,IAAf,CAAoB;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAApB;EACH;;EACDq8b,eAAe,GAAG;IACd,MAAMjswB,IAAI,GAAGm/vB,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAArB;IACA,KAAKkqR,eAAL,CAAqB,KAAKxB,eAA1B,EAA2C,CAA3C,EAA8C,OAA9C;IACA,MAAMr7b,EAAE,GAAGuvb,QAAQ,CAAC,KAAK8L,eAAL,CAAqB1oR,MAArB,EAAD,CAAnB;IACA,KAAKsnR,UAAL,CAAgB3sxB,IAAhB,CAAqB;MAAE8iB,IAAF;MAAQ4vU;IAAR,CAArB;EACH;;EACDg9b,wBAAwB,CAAC/iuB,MAAD,EAAS;IAC7B,KAAK8/tB,SAAL,CAAezsxB,IAAf,CAAoB2sD,MAApB;EACH;;EACDgjuB,yBAAyB,CAAChjuB,MAAD,EAAS;IAC9B,KAAKgguB,UAAL,CAAgB3sxB,IAAhB,CAAqB2sD,MAArB;EACH;;EACDijuB,iCAAiC,CAACjjuB,MAAD,EAAS;IACtC,KAAKgguB,UAAL,CAAgB3sxB,IAAhB,CAAqB2sD,MAArB;EACH;;EACDkjuB,kCAAkC,CAACljuB,MAAD,EAAS;IACvC,KAAK8/tB,SAAL,CAAezsxB,IAAf,CAAoB2sD,MAApB;EACH;;EACDmjuB,cAAc,CAAC54R,OAAD,EAAU;IACpB,IAAI,KAAK9M,eAAL,CAAqB2gS,gBAAzB,EAA2C;MACvC,OAAO,KAAK3gS,eAAL,CAAqB2gS,gBAArB,CAAsC7zR,OAAO,CAACtrY,GAAR,EAAtC,CAAP;IACH;;IACD,OAAOsrY,OAAO,CAACjtY,MAAR,CAAe,KAAKmgY,eAAL,CAAqB26R,aAApC,CAAP;EACH;;EACD4I,kBAAkB,CAAC7jY,IAAD,EAAO;IACrB,IAAI,KAAKwlY,mBAAL,KAA6BxlY,IAAjC,EAAuC;MACnC,KAAKwlY,mBAAL,GAA2BxlY,IAA3B;MACA,KAAKyjY,mBAAL,CAAyBvtxB,IAAzB,CAA8B8pZ,IAA9B;IACH;;IACD,KAAKiyU,EAAL,CAAQxtH,YAAR;EACH;;EACDwhL,aAAa,CAACpkqB,KAAD,EAAQ;IACjB,KAAKoiqB,eAAL,GAAuB9L,QAAQ,CAACt2pB,KAAK,CAACvC,IAAN,CAAWi8Y,MAAX,EAAD,CAA/B;IACA,KAAKiqR,mBAAL,GAA2BxN,aAAa,CAACzkK,GAAzC;IACA,KAAK+xK,aAAL,CAAmBpvxB,IAAnB,CAAwB2rH,KAAxB;EACH;;EACD4jqB,eAAe,CAACjuxB,OAAD,EAAUu6M,MAAV,EAAkBwnkB,WAAW,GAAG,OAAhC,EAAyC;IACpD,KAAK0K,eAAL,GAAuB9L,QAAQ,CAAC3gxB,OAAO,CAAC+jgB,MAAR,EAAD,CAAR,CAA2B3kf,GAA3B,CAA+Bm7L,MAA/B,EAAuCwnkB,WAAvC,CAAvB;IACA,KAAKtnD,EAAL,CAAQxtH,YAAR;EACH;;EACDq/K,cAAc,CAACl7b,EAAD,EAAK;IACf,IAAIA,EAAJ,EAAQ;MACJ,KAAKq7b,eAAL,GAAuB,KAAKrJ,YAAL,CAAkBtC,cAAlB,CAAiC1vb,EAAjC,EAAqC,KAAK03J,eAAL,CAAqBngY,MAA1D,CAAvB;IACH;;IACD,KAAK8xmB,EAAL,CAAQxtH,YAAR;EACH;;EACD01K,iBAAiB,GAAG;IAChB,OAAO,KAAKS,YAAL,CAAkBT,iBAAlB,CAAoC,KAAK75R,eAAL,CAAqB85R,eAAzD,EAA0E,KAA1E,EAAiF,KAAK95R,eAAL,CAAqBz9e,GAAtG,EAA2G,KAAKy9e,eAAL,CAAqB19e,GAAhI,CAAP;EACH;;EACDwixB,WAAW,GAAG;IACV,KAAKnB,eAAL,GAAuB9L,QAAQ,EAA/B;IACA,KAAK6K,aAAL,CAAmB9sxB,IAAnB;EACH;;EACDsuxB,kBAAkB,CAAC7lpB,MAAD,EAAS;IACvB,IAAIA,MAAJ,EAAY;MACR,MAAM67oB,QAAQ,GAAG,KAAKwF,kBAAL,CAAwBpzV,SAAxB,CAAkCjuT,MAAM,CAAC3rD,aAAzC,CAAjB;MACA,MAAMynsB,WAAW,GAAG,KAAKuF,kBAAL,CAAwBpzV,SAAxB,CAAkCjuT,MAAM,CAACloE,YAAzC,CAApB;;MACA,IAAI,KAAKmktB,YAAL,CAAkBL,sBAAlB,CAAyCC,QAAzC,EAAmDC,WAAnD,CAAJ,EAAqE;QACjE,KAAKyJ,gBAAL,GAAwB,IAAxB;MACH;IACJ;EACJ;;AAvMsB;;AAyM3BmB,oBAAoB,CAACn0xB,IAArB;EAAA,iBAAiHm0xB,oBAAjH,EAtjC+FztwB,+DAsjC/F,CAAuJ+iwB,kBAAvJ,GAtjC+F/iwB,+DAsjC/F,CAAsLwgwB,YAAtL,GAtjC+FxgwB,+DAsjC/F,CAA+MA,4DAA/M;AAAA;;AACAytwB,oBAAoB,CAACpswB,IAArB,kBAvjC+FrB,+DAujC/F;EAAA,MAAqGytwB,oBAArG;EAAA;EAAA;EAAA;IAAA;MAvjC+FztwB,wDAujC/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WAvjC+FA,gEAujC/F,CAAugB,CAC/f+iwB,kBAD+f,EAE/f;IACI9gxB,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMqoL,oBAAP,CAF3B;IAGIpinB,KAAK,EAAE;EAHX,CAF+f,EAO/f;IACIppK,OAAO,EAAEm0tB,yDADb;IAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMqoL,oBAAP,CAF3B;IAGIpinB,KAAK,EAAE;EAHX,CAP+f,CAAvgB,GAvjC+FrrJ,kEAujC/F;EAAA;EAAA;EAAA;EAAA;IAAA;MAvjC+FA,wDAmkC1C,yDAZrD;MAvjC+FA,wDAmkCk/C,oFAZjlD;IAAA;;IAAA;MAvjC+FA,wDAmkCpC,0DAZ3D;MAvjC+FA,uDAmkCy3D,GAZx9D;MAvjC+FA,wDAmkCy3D,4DAZx9D;IAAA;EAAA;EAAA,eAY0yHwnqB,oDAZ1yH,EAYw4HA,oDAZx4H,EAYqgIA,iDAZrgI,EAYymI24F,2DAZzmI,EAYmtIA,mDAZntI,EAY66Ix4F,kDAZ76I,EAYiiJ+jG,sBAZjiJ,EAY8zJrB,oBAZ9zJ;EAAA;EAAA;EAAA;AAAA;;AAaA;EAAA,mDApkC+FrqwB,+DAokC/F,CAA2FytwB,oBAA3F,EAA6H,CAAC;IAClHzzxB,IAAI,EAAEimB,oDAD4G;IAElHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,iBAAZ;MAA+BilB,aAAa,EAAEnmB,iEAA9C;MAAsE6slB,eAAe,EAAE5H,yEAAvF;MAAuHrjmB,SAAS,EAAE,CAC7H+gxB,kBAD6H,EAE7H;QACI9gxB,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMqoL,oBAAP,CAF3B;QAGIpinB,KAAK,EAAE;MAHX,CAF6H,EAO7H;QACIppK,OAAO,EAAEm0tB,yDADb;QAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMqoL,oBAAP,CAF3B;QAGIpinB,KAAK,EAAE;MAHX,CAP6H,CAAlI;MAYI9pJ,QAAQ,EAAE,onEAZd;MAYooEjb,MAAM,EAAE,CAAC,0kDAAD;IAZ5oE,CAAD;EAF4G,CAAD,CAA7H,EAe4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAE+oxB;IAAR,CAAD,EAA+B;MAAE/oxB,IAAI,EAAEwmxB;IAAR,CAA/B,EAAuD;MAAExmxB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAvD,CAAP;EAAgG,CAf1I,EAe4J;IAAEhme,MAAM,EAAE,CAAC;MACvJ/sI,IAAI,EAAEmmB,gDAAKA;IAD4I,CAAD,CAAV;IAE5I0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAF+H;IAI5I0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAJmI;IAM5I6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CANmI;IAQ5I0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CARqI;IAa5IyrwB,QAAQ,EAAE,CAAC;MACX5xxB,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAbkI;IAe5IqtwB,aAAa,EAAE,CAAC;MAChB1zxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CAf6H;IAiB5IwrwB,mBAAmB,EAAE,CAAC;MACtB7xxB,IAAI,EAAEqmB,iDAAMA;IADU,CAAD,CAjBuH;IAmB5I+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CAnB6H;IAqB5I0qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CArBiI;IAuB5I4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD;EAvBgI,CAf5J;AAAA;;AA0CA,MAAMiuwB,mBAAN,CAA0B;EACtB73xB,WAAW,CAAC4xxB,iBAAD,EAAoBrF,YAApB,EAAkC3oD,EAAlC,EAAsC;IAC7C,KAAKguD,iBAAL,GAAyBA,iBAAzB;IACA,KAAKrF,YAAL,GAAoBA,YAApB;IACA,KAAK3oD,EAAL,GAAUA,EAAV;IACA,KAAKj5d,QAAL,GAAgB,IAAIzrQ,uDAAJ,EAAhB;IACA,KAAKm2xB,QAAL,GAAgB,KAAhB;IACA,KAAKxmvB,GAAL,GAAW;MACPipvB,aAAa,EAAE,KAAKC,UAAL,CAAgB3pvB,IAAhB,CAAqB,IAArB;IADR,CAAX;EAGH;;EACW,IAARwiF,QAAQ,GAAG;IACX,OAAO,KAAK66d,SAAZ;EACH;;EACW,IAAR76d,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK66d,SAAL,GAAiB76d,QAAjB;IACA,KAAKonqB,kBAAL,CAAwB,KAAKpnqB,QAA7B;IACA,KAAKqnqB,WAAL,GAAmB,KAAKrG,iBAAL,CAAuBR,kBAAvB,CAA0C,KAAKn/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,MAAhF,CAAnB;IACA,KAAKysM,aAAL,GAAqB,KAAKtG,iBAAL,CAAuBR,kBAAvB,CAA0C,KAAKn/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,QAAhF,CAArB;IACA,KAAK0sM,aAAL,GAAqB,KAAKvG,iBAAL,CAAuBR,kBAAvB,CAA0C,KAAKn/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,QAAhF,CAArB;IACA,KAAK2sM,WAAL,GAAmB,KAAKxG,iBAAL,CAAuBP,kBAAvB,CAA0C,KAAKp/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,MAAhF,CAAnB;IACA,KAAK4sM,aAAL,GAAqB,KAAKzG,iBAAL,CAAuBP,kBAAvB,CAA0C,KAAKp/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,QAAhF,CAArB;IACA,KAAK6sM,aAAL,GAAqB,KAAK1G,iBAAL,CAAuBP,kBAAvB,CAA0C,KAAKp/R,eAA/C,EAAgE,KAAKw5F,SAArE,EAAgF,QAAhF,CAArB;IACA,KAAK8sM,kBAAL,GAA0B,KAAK3G,iBAAL,CAAuBN,wBAAvB,CAAgD,KAAKr/R,eAArD,EAAsE,KAAKw5F,SAA3E,CAA1B;IACA,KAAKiqM,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B/kqB,QAA7B,CAAtB;EACH;;EACDw9e,QAAQ,GAAG;IACP,KAAKinL,QAAL,GAAgB,IAAhB;IACA,KAAK1gwB,IAAL;IACA,KAAKuhwB,cAAL;EACH;;EACDvhwB,IAAI,GAAG;IACH,KAAKs9d,eAAL,GAAuB,KAAK2/R,iBAAL,CAAuBrzV,SAAvB,CAAiC,KAAKjuT,MAAtC,CAAvB;IACA,KAAK1f,QAAL,GAAgB,KAAKA,QAAL,IAAiBk5pB,QAAQ,EAAzC;IACA,KAAKuM,cAAL,GAAsB,KAAK9J,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAhD,CAAtB;EACH;;EACDzgC,WAAW,CAACC,OAAD,EAAU;IACjB,IAAI,KAAKomvB,QAAT,EAAmB;MACf,MAAM;QAAEjL,OAAF;QAAWmB,OAAX;QAAoBC,OAApB;QAA6Bp8M;MAA7B,IAAyCngiB,OAA/C;;MACA,IAAIm7uB,OAAO,IAAImB,OAAX,IAAsBC,OAAtB,IAAiCp8M,OAArC,EAA8C;QAC1C,KAAK8mN,cAAL;MACH;;MACD,KAAKvhwB,IAAL;IACH;EACJ;;EACDkqsB,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKovE,UAAL,GAAkBpvE,KAAlB;;IACA,IAAIA,KAAJ,EAAW;MACP,MAAMm4xB,UAAU,GAAG,KAAKjM,YAAL,CACd9B,mBADc,CACMpqxB,KADN,EACa;QAC5Bo5J,gBAAgB,EAAE,KADU;QAE5B3nC,MAAM,EAAE,KAAK8/pB,iBAAL,CAAuBb,aAAvB,CAAqC,KAAK9+R,eAA1C;MAFoB,CADb,EAIhB,CAJgB,CAAnB;;MAKA,IAAIumS,UAAU,CAACxopB,OAAX,EAAJ,EAA0B;QACtB,KAAKpf,QAAL,GAAgB4nqB,UAAhB;QACA,KAAKnC,cAAL,GAAsB,KAAK9J,YAAL,CACjBlC,YADiB,CACJ,KAAK56sB,UADD,EACa,KADb,CAAtB;MAEH;IACJ;;IACD,KAAKm0pB,EAAL,CAAQxtH,YAAR;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKy0xB,gBAAL,GAAwBz0xB,EAAxB;EACH;;EACDy0xB,gBAAgB,CAAC5vtB,CAAD,EAAI,CACnB;;EACDw4pB,iBAAiB,CAACr9tB,EAAD,EAAK,CACrB;;EACDmkD,QAAQ,CAACkxuB,WAAD,EAAc;IAClB,IAAI,KAAKlM,OAAL,IAAgB,KAAKmB,OAArB,IAAgC,KAAKC,OAArC,IAAgD,KAAKp8M,OAAzD,EAAkE;MAC9D,OAAO,KAAKt7M,UAAL,CAAgBwia,WAAW,CAACj2xB,KAA5B,CAAP;IACH,CAFD,MAGK;MACD,OAAO,MAAM,IAAb;IACH;EACJ;;EACDs1xB,uBAAuB,CAACt1xB,KAAD,EAAQ;IAC3B,OAAO,KAAKksxB,YAAL,CAAkB5B,qBAAlB,CAAwC,KAAKiH,iBAAL,CAAuBb,aAAvB,CAAqC,KAAK9+R,eAA1C,CAAxC,EAAoG,CAAC5xf,KAAD,CAApG,EAA6G,KAAK4xf,eAAL,CAAqB4gS,iBAArB,IAA0C,KAAKwD,cAA5J,CAAP;EACH;;EACDH,cAAc,GAAG;IACb,KAAKpia,UAAL,GAAkB,KAAKy4Z,YAAL,CAAkBl3C,eAAlB,CAAkC;MAChD+0C,OAAO,EAAE,KAAKA,OADkC;MAEhDmB,OAAO,EAAE,KAAKA,OAFkC;MAGhDC,OAAO,EAAE,KAAKA,OAHkC;MAIhDp8M,OAAO,EAAE,KAAKA;IAJkC,CAAlC,EAKfhtkB,SALe,EAKJ,KALI,CAAlB;IAMA,KAAKszxB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B,KAAK/kqB,QAAlC,CAAtB;EACH;;EACDqgqB,QAAQ,CAACzuN,IAAD,EAAO;IACX,KAAK5xc,QAAL,GAAgB,KAAKghqB,iBAAL,CAAuBX,QAAvB,CAAgC,KAAKh/R,eAArC,EAAsD,KAAKrhY,QAA3D,EAAqE4xc,IAArE,CAAhB;IACA,KAAKu1N,UAAL;EACH;;EACD7G,QAAQ,CAAC1uN,IAAD,EAAO;IACX,KAAK5xc,QAAL,GAAgB,KAAKghqB,iBAAL,CAAuBV,QAAvB,CAAgC,KAAKj/R,eAArC,EAAsD,KAAKrhY,QAA3D,EAAqE4xc,IAArE,CAAhB;IACA,KAAKu1N,UAAL;EACH;;EACD5G,cAAc,GAAG;IACb,KAAKvgqB,QAAL,GAAgB,KAAKghqB,iBAAL,CAAuBT,cAAvB,CAAsC,KAAKvgqB,QAA3C,CAAhB;IACA,KAAKmnqB,UAAL;EACH;;EACDA,UAAU,GAAG;IACT,KAAKpthB,QAAL,CAAc9iQ,IAAd,CAAmB;MAAEopH,IAAI,EAAE,KAAKL,QAAb;MAAuBA,QAAQ,EAAE;IAAjC,CAAnB;IACA,KAAKgzmB,EAAL,CAAQxtH,YAAR;EACH;;EACD4hL,kBAAkB,CAACjme,IAAD,EAAO;IACrB,KAAKr+L,KAAL,GAAa,KAAKk+pB,iBAAL,CAAuBpgqB,QAAvB,CAAgC,KAAKygY,eAArC,EAAsDlgM,IAAtD,CAAb;IACA,KAAKp+L,OAAL,GAAe,KAAKi+pB,iBAAL,CAAuBngqB,UAAvB,CAAkC,KAAKwgY,eAAvC,EAAwDlgM,IAAxD,CAAf;IACA,KAAKtsT,OAAL,GAAe,KAAKmsxB,iBAAL,CAAuBlgqB,UAAvB,CAAkC,KAAKugY,eAAvC,EAAwDlgM,IAAxD,CAAf;IACA,KAAK07M,QAAL,GAAgB,KAAKmkR,iBAAL,CAAuBZ,WAAvB,CAAmC,KAAK/+R,eAAxC,EAAyDlgM,IAAzD,CAAhB;EACH;;EACDoke,kBAAkB,CAAC7lpB,MAAD,EAAS;IACvB,IAAIA,MAAJ,EAAY;MACR,MAAM67oB,QAAQ,GAAG,KAAKyF,iBAAL,CAAuBrzV,SAAvB,CAAiCjuT,MAAM,CAAC3rD,aAAxC,CAAjB;MACA,MAAMynsB,WAAW,GAAG,KAAKwF,iBAAL,CAAuBrzV,SAAvB,CAAiCjuT,MAAM,CAACloE,YAAxC,CAApB;IACH;EACJ;;AAnHqB;;AAqH1ByvtB,mBAAmB,CAACh1xB,IAApB;EAAA,iBAAgHg1xB,mBAAhH,EAnuC+FtuwB,+DAmuC/F,CAAqJ4mwB,iBAArJ,GAnuC+F5mwB,+DAmuC/F,CAAmLwgwB,YAAnL,GAnuC+FxgwB,+DAmuC/F,CAA4MA,4DAA5M;AAAA;;AACAsuwB,mBAAmB,CAACjtwB,IAApB,kBApuC+FrB,+DAouC/F;EAAA,MAAoGsuwB,mBAApG;EAAA;EAAA;EAAA;IAAA;MApuC+FtuwB,wDAouC/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WApuC+FA,gEAouC/F,CAA8Y,CACtY4mwB,iBADsY,EAEtY;IACI3kxB,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMkpL,mBAAP,CAF3B;IAGIjjnB,KAAK,EAAE;EAHX,CAFsY,EAOtY;IACIppK,OAAO,EAAEm0tB,yDADb;IAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMkpL,mBAAP,CAF3B;IAGIjjnB,KAAK,EAAE;EAHX,CAPsY,CAA9Y,GApuC+FrrJ,kEAouC/F;EAAA;EAAA;EAAA;EAAA;IAAA;MApuC+FA,4DAgvC1C,wCAZrD;MApuC+FA,wDAgvC4F;QAAA,OAAU,aAAS,MAAT,CAAV;MAAA,EAZ3L;MApuC+FA,0DAgvCsP,EAZrV;MApuC+FA,uDAgvCqQ,cAZpW;MApuC+FA,4DAgvCsW,gBAZrc;MApuC+FA,wDAgvC8W;QAAA,OAAU,aAAS,MAAT,CAAV;MAAA,EAZ7c;MApuC+FA,0DAgvC0gB,IAZzmB;MApuC+FA,uDAgvCgiB,YAZ/nB;MApuC+FA,4DAgvCgqB,4BAZ/vB;MApuC+FA,wDAgvCkvB;QAAA,OAAU,aAAS,QAAT,CAAV;MAAA,EAZj1B;MApuC+FA,0DAgvC04B,EAZz+B;MApuC+FA,uDAgvCy5B,cAZx/B;MApuC+FA,4DAgvC8/B,gBAZ7lC;MApuC+FA,wDAgvCsgC;QAAA,OAAU,aAAS,QAAT,CAAV;MAAA,EAZrmC;MApuC+FA,0DAgvCypC,IAZxvC;MApuC+FA,wDAgvC+qC,2EAZ9wC;MApuC+FA,wDAgvCw7D,uDAZvhE;MApuC+FA,0DAgvCghF,EAZ/mF;IAAA;;IAAA;MApuC+FA,uDAgvCsI,GAZrO;MApuC+FA,wDAgvCsI,8BAZrO;MApuC+FA,uDAgvC2Q,GAZ1W;MApuC+FA,wDAgvC2Q,wBAZ1W;MApuC+FA,uDAgvCwZ,GAZvf;MApuC+FA,wDAgvCwZ,8BAZvf;MApuC+FA,uDAgvCoiB,GAZnoB;MApuC+FA,wDAgvCoiB,gDAZnoB;MApuC+FA,uDAgvC8xB,GAZ73B;MApuC+FA,wDAgvC8xB,gCAZ73B;MApuC+FA,uDAgvC+5B,GAZ9/B;MApuC+FA,wDAgvC+5B,0BAZ9/B;MApuC+FA,uDAgvCkjC,GAZjpC;MApuC+FA,wDAgvCkjC,gCAZjpC;MApuC+FA,uDAgvC8rC,GAZ7xC;MApuC+FA,wDAgvC8rC,yCAZ7xC;MApuC+FA,uDAgvC67D,GAZ5hE;MApuC+FA,wDAgvC67D,kDAZ5hE;IAAA;EAAA;EAAA,eAYkjIwnqB,iDAZljI,EAYspIG,kDAZtpI;EAAA;EAAA;EAAA;AAAA;;AAaA;EAAA,mDAjvC+F3nqB,+DAivC/F,CAA2FsuwB,mBAA3F,EAA4H,CAAC;IACjHt0xB,IAAI,EAAEimB,oDAD2G;IAEjHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,gBAAZ;MAA8BilB,aAAa,EAAEnmB,iEAA7C;MAAqE6slB,eAAe,EAAE5H,yEAAtF;MAAsHrjmB,SAAS,EAAE,CAC5H4kxB,iBAD4H,EAE5H;QACI3kxB,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMkpL,mBAAP,CAF3B;QAGIjjnB,KAAK,EAAE;MAHX,CAF4H,EAO5H;QACIppK,OAAO,EAAEm0tB,yDADb;QAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMkpL,mBAAP,CAF3B;QAGIjjnB,KAAK,EAAE;MAHX,CAP4H,CAAjI;MAYI9pJ,QAAQ,EAAE,mkFAZd;MAYmlFjb,MAAM,EAAE,CAAC,m4CAAD;IAZ3lF,CAAD;EAF2G,CAAD,CAA5H,EAe4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAE4sxB;IAAR,CAAD,EAA8B;MAAE5sxB,IAAI,EAAEwmxB;IAAR,CAA9B,EAAsD;MAAExmxB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAtD,CAAP;EAA+F,CAfzI,EAe2J;IAAEhme,MAAM,EAAE,CAAC;MACtJ/sI,IAAI,EAAEmmB,gDAAKA;IAD2I,CAAD,CAAV;IAE3I0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAF8H;IAI3I0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAJkI;IAM3I6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CANkI;IAQ3I8hwB,OAAO,EAAE,CAAC;MACVjoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CARkI;IAU3I0ljB,OAAO,EAAE,CAAC;MACV7rkB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAVkI;IAY3I0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CAZoI;IAiB3IihP,QAAQ,EAAE,CAAC;MACXpnQ,IAAI,EAAEqmB,iDAAMA;IADD,CAAD;EAjBiI,CAf3J;AAAA;;AAoCA,MAAM6uwB,wBAAN,CAA+B;EAC3Bz4xB,WAAW,CAAC04xB,sBAAD,EAAyBnM,YAAzB,EAAuC3oD,EAAvC,EAA2C;IAClD,KAAK80D,sBAAL,GAA8BA,sBAA9B;IACA,KAAKnM,YAAL,GAAoBA,YAApB;IACA,KAAK3oD,EAAL,GAAUA,EAAV;IACA,KAAKj5d,QAAL,GAAgB,IAAIzrQ,uDAAJ,EAAhB;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;IACA,KAAKo1xB,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKm2xB,QAAL,GAAgB,KAAhB;IACA,KAAKxmvB,GAAL,GAAW;MACP4mvB,cAAc,EAAE,KAAKA,cAAL,CAAoBrnvB,IAApB,CAAyB,IAAzB;IADT,CAAX;EAGH;;EACW,IAARwiF,QAAQ,GAAG;IACX,OAAO,KAAK66d,SAAZ;EACH;;EACW,IAAR76d,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK66d,SAAL,GAAiB76d,QAAjB;IACA,KAAK8kqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B/kqB,QAA7B,CAAtB;EACH;;EAEDw9e,QAAQ,GAAG;IACP,KAAKinL,QAAL,GAAgB,IAAhB;IACA,KAAK1gwB,IAAL;IACA,KAAKuhwB,cAAL;EACH;;EACDvhwB,IAAI,GAAG;IACH,KAAKs9d,eAAL,GAAuB,KAAKymS,sBAAL,CAA4Bn6V,SAA5B,CAAsC,KAAKjuT,MAA3C,CAAvB;IACA,KAAK+lpB,cAAL,GAAsB,KAAK9J,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAhD,CAAtB;EACH;;EACDzgC,WAAW,CAACC,OAAD,EAAU;IACjB,IAAI,KAAKomvB,QAAT,EAAmB;MACf,MAAM;QAAEjL,OAAF;QAAWmB;MAAX,IAAuBt8uB,OAA7B;MACA,KAAKta,IAAL;;MACA,IAAIy1vB,OAAO,IAAImB,OAAf,EAAwB;QACpB,KAAK2K,cAAL;MACH;IACJ;EACJ;;EACDr3D,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKovE,UAAL,GAAkBpvE,KAAlB;;IACA,IAAIA,KAAJ,EAAW;MACP,KAAKuwH,QAAL,GAAgB,KAAK27pB,YAAL,CACX9B,mBADW,CACSpqxB,KADT,EACgB;QAC5ByxH,MAAM,EAAE,KAAKmgY,eAAL,CAAqBngY,MADD;QAE5B2nC,gBAAgB,EAAE;MAFU,CADhB,EAIb,CAJa,CAAhB;MAKA,KAAK48nB,cAAL,GAAsB,KAAK9J,YAAL,CACjBlC,YADiB,CACJ,KAAK56sB,UADD,EACa,KADb,CAAtB;IAEH,CARD,MASK;MACD,KAAKmhD,QAAL,GAAgB,IAAhB;IACH;;IACD,KAAKgzmB,EAAL,CAAQxtH,YAAR;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKy0xB,gBAAL,GAAwBz0xB,EAAxB;EACH;;EACDy0xB,gBAAgB,CAAC5vtB,CAAD,EAAI,CACnB;;EACDw4pB,iBAAiB,CAACr9tB,EAAD,EAAK,CACrB;;EACDmkD,QAAQ,CAACkxuB,WAAD,EAAc;IAClB,IAAI,KAAKlM,OAAL,IAAgB,KAAKmB,OAAzB,EAAkC;MAC9B,OAAO,KAAKz3Z,UAAL,CAAgBwia,WAAW,CAACj2xB,KAA5B,CAAP;IACH,CAFD,MAGK;MACD,OAAO,MAAM,IAAb;IACH;EACJ;;EACDs1xB,uBAAuB,CAACt1xB,KAAD,EAAQ;IAC3B,OAAO,KAAKksxB,YAAL,CAAkB5B,qBAAlB,CAAwC,KAAK14R,eAAL,CAAqBngY,MAA7D,EAAqE,CAACzxH,KAAD,CAArE,EAA8E,KAAK4xf,eAAL,CAAqB4gS,iBAArB,IAA0C,KAAKwD,cAA7H,CAAP;EACH;;EACDH,cAAc,GAAG;IACb,KAAKpia,UAAL,GAAkB,KAAKy4Z,YAAL,CAAkBl3C,eAAlB,CAAkC;MAChD+0C,OAAO,EAAE,KAAKA,OADkC;MAEhDmB,OAAO,EAAE,KAAKA;IAFkC,CAAlC,EAGfnpxB,SAHe,EAGJ,SAHI,CAAlB;IAIA,KAAKszxB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B,KAAK/kqB,QAAlC,CAAtB;EACH;;EACD+nqB,YAAY,CAACllqB,GAAD,EAAM;IACd,KAAK7C,QAAL,GAAgB,KAAK8nqB,sBAAL,CAA4B7G,SAA5B,CAAsC,KAAKjhqB,QAA3C,EAAqD6C,GAAG,CAACxC,IAAzD,EAA+D,KAAKghY,eAApE,CAAhB;IACA,KAAK8lS,UAAL;EACH;;EACDa,UAAU,CAAC7me,IAAD,EAAO;IACb,KAAKnhM,QAAL,GAAgB,KAAK8nqB,sBAAL,CAA4B5G,UAA5B,CAAuC,KAAKlhqB,QAA5C,EAAsDmhM,IAAI,CAAC9gM,IAA3D,CAAhB;IACA,KAAK8mqB,UAAL;EACH;;EACDA,UAAU,GAAG;IACT,KAAKpthB,QAAL,CAAc9iQ,IAAd,CAAmB;MAAEopH,IAAI,EAAE,KAAKL,QAAb;MAAuBA,QAAQ,EAAE;IAAjC,CAAnB;EACH;;EACD6kqB,cAAc,CAACl7b,EAAD,EAAK;IACf,IAAIA,EAAJ,EAAQ;MACJ,KAAKs+b,cAAL,CAAoBpD,cAApB,CAAmCl7b,EAAnC;IACH;EACJ;;EACDi8b,cAAc,CAAChiuB,MAAD,EAAS;IACnB,KAAK8/tB,SAAL,CAAezsxB,IAAf,CAAoB2sD,MAApB;EACH;;EACDoiuB,eAAe,CAACpiuB,MAAD,EAAS;IACpB,KAAKgguB,UAAL,CAAgB3sxB,IAAhB,CAAqB2sD,MAArB;EACH;;AAtG0B;;AAwG/BikuB,wBAAwB,CAAC51xB,IAAzB;EAAA,iBAAqH41xB,wBAArH,EA73C+FlvwB,+DA63C/F,CAA+JmowB,sBAA/J,GA73C+FnowB,+DA63C/F,CAAkMwgwB,YAAlM,GA73C+FxgwB,+DA63C/F,CAA2NA,4DAA3N;AAAA;;AACAkvwB,wBAAwB,CAAC7twB,IAAzB,kBA93C+FrB,+DA83C/F;EAAA,MAAyGkvwB,wBAAzG;EAAA;EAAA;IAAA;MA93C+FlvwB,yDA83C/F;IAAA;;IAAA;MAAA;;MA93C+FA,4DA83C/F,MA93C+FA,yDA83C/F;IAAA;EAAA;EAAA;EAAA;IAAA;MA93C+FA,wDA83C/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WA93C+FA,gEA83C/F,CAAwc,CAChcmowB,sBADgc,EAEhcpF,kBAFgc,EAGhc6D,iBAHgc,EAIhc;IACI3kxB,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM8pL,wBAAP,CAF3B;IAGI7jnB,KAAK,EAAE;EAHX,CAJgc,EAShc;IACIppK,OAAO,EAAEm0tB,yDADb;IAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM8pL,wBAAP,CAF3B;IAGI7jnB,KAAK,EAAE;EAHX,CATgc,CAAxc,GA93C+FrrJ,kEA83C/F;EAAA;EAAA;EAAA;EAAA;IAAA;MA93C+FA,4DA44CqE,4BAdpK;MA93C+FA,wDA44CqH;QAAA,OAAkB,wBAAlB;MAAA;QAAA,OAAyE,0BAAzE;MAAA;QAAA,OAAmI,2BAAnI;MAAA;QAAA,OAA4L,wBAA5L;MAAA,EAdpN;MA93C+FA,0DA44Cuf,EAdtlB;MA93C+FA,4DA44C2gB,2BAd1mB;MA93C+FA,wDA44CwjB;QAAA,OAAa,sBAAb;MAAA,EAdvpB;MA93C+FA,0DA44CstB,EAdrzB;IAAA;;IAAA;MA93C+FA,wDA44C0V,6GAdzb;MA93C+FA,uDA44C2mB,GAd1sB;MA93C+FA,wDA44C2mB,6EAd1sB;IAAA;EAAA;EAAA,eAc6lCmgwB,2DAd7lC,EAcusCA,mDAdvsC,EAci6CsN,oBAdj6C,EAc8pDa,mBAd9pD;EAAA;EAAA;EAAA;AAAA;;AAeA;EAAA,mDA74C+FtuwB,+DA64C/F,CAA2FkvwB,wBAA3F,EAAiI,CAAC;IACtHl1xB,IAAI,EAAEimB,oDADgH;IAEtHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,sBAAZ;MAAoC2rlB,eAAe,EAAE5H,yEAArD;MAAqF9+jB,aAAa,EAAEnmB,iEAApG;MAA4Hpe,SAAS,EAAE,CAClImmxB,sBADkI,EAElIpF,kBAFkI,EAGlI6D,iBAHkI,EAIlI;QACI3kxB,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM8pL,wBAAP,CAF3B;QAGI7jnB,KAAK,EAAE;MAHX,CAJkI,EASlI;QACIppK,OAAO,EAAEm0tB,yDADb;QAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM8pL,wBAAP,CAF3B;QAGI7jnB,KAAK,EAAE;MAHX,CATkI,CAAvI;MAcI9pJ,QAAQ,EAAE,sqBAdd;MAcsrBjb,MAAM,EAAE,CAAC,4NAAD;IAd9rB,CAAD;EAFgH,CAAD,CAAjI,EAiB4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEmuxB;IAAR,CAAD,EAAmC;MAAEnuxB,IAAI,EAAEwmxB;IAAR,CAAnC,EAA2D;MAAExmxB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAA3D,CAAP;EAAoG,CAjB9I,EAiBgK;IAAEhme,MAAM,EAAE,CAAC;MAC3J/sI,IAAI,EAAEmmB,gDAAKA;IADgJ,CAAD,CAAV;IAEhJ0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAFmI;IAIhJ0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAJuI;IAMhJ6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CANuI;IAQhJ0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CARyI;IAahJihP,QAAQ,EAAE,CAAC;MACXpnQ,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAbsI;IAehJ+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CAfiI;IAiBhJ0qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CAjBqI;IAmBhJ4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD,CAnBoI;IAqBhJivwB,cAAc,EAAE,CAAC;MACjBt1xB,IAAI,EAAEsrmB,oDADW;MAEjB3omB,IAAI,EAAE,CAAC,aAAD;IAFW,CAAD;EArBgI,CAjBhK;AAAA;;AA2CA,MAAM4yxB,mBAAN,CAA0B;EACtB94xB,WAAW,CAAC+4xB,gBAAD,EAAmBC,OAAnB,EAA4Bp9hB,QAA5B,EAAsC2whB,YAAtC,EAAoD3oD,EAApD,EAAwD;IAC/D,KAAKm1D,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKp9hB,QAAL,GAAgBA,QAAhB;IACA,KAAK2whB,YAAL,GAAoBA,YAApB;IACA,KAAK3oD,EAAL,GAAUA,EAAV;IACA,KAAKq1D,aAAL,GAAqB,KAArB;IACA,KAAKtnY,IAAL,GAAY,KAAZ;IACA,KAAKtpR,WAAL,GAAmB,EAAnB;IACA,KAAK9gB,QAAL,GAAgB,KAAhB;IACA,KAAK9b,IAAL,GAAY,IAAIvsG,uDAAJ,EAAZ;IACA,KAAK+1H,KAAL,GAAa,IAAI/1H,uDAAJ,EAAb;IACA,KAAKyrQ,QAAL,GAAgB,IAAIzrQ,uDAAJ,EAAhB;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;IACA,KAAKo1xB,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKi2xB,QAAL,GAAgB,IAAIj2xB,uDAAJ,EAAhB;IACA,KAAKg6xB,gBAAL,GAAwB,KAAxB;IACA,KAAKC,kCAAL,GAA0C,EAA1C;IACA,KAAKC,0BAAL,GAAkC,EAAlC;IACA,KAAKvqvB,GAAL,GAAW;MACP48D,IAAI,EAAE,KAAK4trB,aAAL,CAAmBjrvB,IAAnB,CAAwB,IAAxB,CADC;MAEP6mF,KAAK,EAAE,KAAKqkqB,YAAL,CAAkBlrvB,IAAlB,CAAuB,IAAvB,CAFA;MAGPqnvB,cAAc,EAAE,KAAKA,cAAL,CAAoBrnvB,IAApB,CAAyB,IAAzB;IAHT,CAAX;IAKA,KAAKmrvB,WAAL,GAAmB1P,WAAnB;IACA,KAAK2P,iBAAL,GAAyB,KAAzB;IACA,KAAK/tM,SAAL,GAAiB,EAAjB;EACH;;EACc,IAAX2mM,WAAW,GAAG;IACd,OAAO,KAAKngS,eAAL,CAAqBmgS,WAA5B;EACH;;EACc,IAAXC,WAAW,GAAG;IACd,OAAO,KAAKpgS,eAAL,CAAqBogS,WAA5B;EACH;;EACW,IAARzhqB,QAAQ,GAAG;IACX,OAAO,KAAK66d,SAAZ;EACH;;EACW,IAAR76d,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK66d,SAAL,GAAiB76d,QAAjB;IACA,KAAK6oqB,iBAAL,GAAyB,KAAKlN,YAAL,CACpB5B,qBADoB,CACE,KAAK14R,eAAL,CAAqBngY,MADvB,EAC+BlB,QAD/B,EACyCg5pB,cAAc,CAACW,SADxD,EAEpBphwB,IAFoB,CAEf,KAFe,CAAzB;IAGA,MAAMstB,GAAG,GAAG,KAAKk/uB,uBAAL,CAA6B/kqB,QAA7B,CAAZ;IACA,KAAK8kqB,gBAAL,CAAsBj/uB,GAAtB,EAA2B,KAA3B;IACA,KAAKk0N,QAAL,CAAc9iQ,IAAd,CAAmB4uC,GAAnB;EACH;;EACkB,IAAfm/uB,eAAe,GAAG;IAClB,OAAO,KAAKC,gBAAZ;EACH;;EACkB,IAAfD,eAAe,CAAC3kqB,IAAD,EAAO;IACtB,KAAK4kqB,gBAAL,GAAwB5kqB,IAAxB;;IACA,IAAI,KAAK4nqB,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoBpD,cAApB,CAAmCxkqB,IAAnC;IACH;;IACD,IAAI,KAAKyoqB,gBAAT,EAA2B;MACvB,KAAKA,gBAAL,CAAsBjE,cAAtB,CAAqCxkqB,IAArC;IACH;;IACD,IAAI,KAAK0oqB,kBAAT,EAA6B;MACzB,KAAKA,kBAAL,CAAwBlE,cAAxB,CAAuCxkqB,IAAvC;IACH;;IACD,KAAKmlqB,WAAL,GAAmBnlqB,IAAnB;EACH;;EACDy9S,OAAO,GAAG;IACN,IAAI,CAAC,KAAK2jX,WAAV,EAAuB;MACnB;IACH;;IACD,IAAI,CAAC,KAAK6G,gBAAN,IAA0B,CAAC,KAAK3xqB,QAApC,EAA8C;MAC1C,IAAI,CAAC,KAAKiyqB,iBAAV,EAA6B;QACzB,KAAKH,aAAL;MACH;IACJ;EACJ;;EACDO,WAAW,CAACrvxB,KAAD,EAAQ;IACf,IAAI,KAAK83I,YAAL,CAAkBrsH,aAAlB,KAAoCzrB,KAAK,CAACf,MAA9C,EAAsD;MAClD;IACH;;IACD,IAAI,KAAKyof,eAAL,CAAqBugS,kBAAzB,EAA6C;MACzC,KAAK8G,YAAL;IACH;EACJ;;EACDz6D,UAAU,CAACx+tB,KAAD,EAAQ;IACd,KAAKovE,UAAL,GAAkBpvE,KAAlB;;IACA,IAAIA,KAAK,IAAIA,KAAK,KAAK,EAAvB,EAA2B;MACvB,KAAKuwH,QAAL,GAAgB,KAAK27pB,YAAL,CACX9B,mBADW,CACSpqxB,KADT,EACgB,KAAK4xf,eADrB,CAAhB;MAEA,KAAKt9d,IAAL;IACH,CAJD,MAKK;MACD,KAAKi8F,QAAL,GAAgB,EAAhB;IACH;;IACD,KAAKgzmB,EAAL,CAAQxtH,YAAR;EACH;;EACDmoH,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAKy0xB,gBAAL,GAAwBz0xB,EAAxB;EACH;;EACDy0xB,gBAAgB,CAAC5vtB,CAAD,EAAI5O,EAAJ,EAAQ,CACvB;;EACDonqB,iBAAiB,CAACr9tB,EAAD,EAAK;IAClB,KAAK44xB,iBAAL,GAAyB54xB,EAAzB;EACH;;EACD44xB,iBAAiB,GAAG,CACnB;;EACDz0uB,QAAQ,CAACkxuB,WAAD,EAAc;IAClB,OAAO,KAAKxia,UAAL,CAAgBwia,WAAW,CAACj2xB,KAA5B,CAAP;EACH;;EACDs1xB,uBAAuB,CAAC/kqB,QAAD,EAAW;IAC9B,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;MAC9B,OAAOA,QAAP;IACH,CAFD,MAGK;MACD,OAAO,KAAK27pB,YAAL,CAAkB5B,qBAAlB,CAAwC,KAAK14R,eAAL,CAAqBngY,MAA7D,EAAqElB,QAArE,EAA+E,KAAKqhY,eAAL,CAAqB4gS,iBAArB,IAA0C,KAAKtG,YAAL,CAAkBlC,YAAlB,CAA+B,KAAK56sB,UAApC,EAAgD,KAAKwib,eAAL,CAAqBx4V,gBAArE,CAAzH,CAAP;IACH;EACJ;;EACDy8nB,cAAc,GAAG;IACb,KAAKpia,UAAL,GAAkB,KAAKy4Z,YAAL,CAAkBl3C,eAAlB,CAAkC;MAChD+0C,OAAO,EAAE,KAAKA,OADkC;MAEhDmB,OAAO,EAAE,KAAKA,OAFkC;MAGhDC,OAAO,EAAE,KAAKA,OAHkC;MAIhDp8M,OAAO,EAAE,KAAKA;IAJkC,CAAlC,EAKf,KAAKn9E,eAAL,CAAqBngY,MALN,EAKc,KAAK6/R,IALnB,CAAlB;IAMA,KAAK+jY,gBAAL,CAAsB,KAAKC,uBAAL,CAA6B,KAAK/kqB,QAAlC,CAAtB,EAAmE,KAAnE;EACH;;EACDw9e,QAAQ,GAAG;IACP,KAAK6qL,aAAL,GAAqB,IAArB;IACA,KAAKtkwB,IAAL;EACH;;EACDqa,WAAW,CAACC,OAAD,EAAU;IACjB,IAAI,KAAKgqvB,aAAT,EAAwB;MACpB,KAAKtkwB,IAAL;IACH;EACJ;;EACD6psB,gBAAgB,CAACntlB,UAAD,EAAa;IACzB,KAAK9pB,QAAL,GAAgB8pB,UAAhB;IACA,KAAKuylB,EAAL,CAAQxtH,YAAR;EACH;;EACDzhlB,IAAI,GAAG;IACH,KAAKs9d,eAAL,GAAuB,KAAK8mS,gBAAL,CAAsBx6V,SAAtB,CAAgC,KAAKjuT,MAArC,EAA6C,KAAKqhR,IAAlD,CAAvB;IACA,KAAKikY,eAAL,GAAuB,KAAKQ,WAAL,GACjB,KAAK7J,YAAL,CAAkBtC,cAAlB,CAAiC,KAAKmM,WAAtC,EAAmD,KAAKnkS,eAAL,CAAqBngY,MAAxE,CADiB,GAEjB,KAAKy6pB,YAAL,CACGpC,qBADH,CACyB,KAAKyL,eAD9B,EAC+C,KAAKhlqB,QADpD,EAC8D,KAAKqhY,eAAL,CAAqBx4V,gBADnF,EACqG,KAAKw4V,eAAL,CAAqBz9e,GAD1H,CAFN;IAIA,KAAKslxB,iBAAL,GAAyB,KAAKf,gBAAL,CAAsBrG,mBAAtB,CAA0C,KAAKzgS,eAA/C,CAAzB;IACA,KAAK8nS,qBAAL,GAA6B,KAAKhB,gBAAL,CAAsBjG,gBAAtB,CAAuC,KAAK7gS,eAA5C,CAA7B;IACA,KAAK+nS,gBAAL,GAAwB,KAAKjB,gBAAL,CAAsBhG,aAAtB,CAAoC,KAAK9gS,eAAzC,CAAxB;IACA,KAAKikS,cAAL;IACA,KAAK+D,eAAL,GAAuB,KAAKlB,gBAAL,CAAsB3F,kBAAtB,CAAyC,KAAKnhS,eAA9C,CAAvB;IACA,KAAKqe,MAAL,GAAc,KAAKi8Q,YAAL,CAAkBF,gBAAlB,CAAmC,KAAKp6R,eAAL,CAAqBioS,qBAAxD,CAAd;EACH;;EACDC,YAAY,GAAG;IACX,IAAI,CAAC,KAAK/H,WAAV,EAAuB;MACnB;IACH;;IACD96uB,YAAY,CAAC,KAAK8ivB,yBAAN,CAAZ;IACA,KAAKlB,gBAAL,GAAwB,IAAxB;IACA,KAAKkB,yBAAL,GAAiC50xB,UAAU,CAAC,MAAM;MAC9C,IAAI,CAAC,KAAKg0xB,iBAAV,EAA6B;QACzB,KAAKH,aAAL;MACH;;MACD,KAAKH,gBAAL,GAAwB,KAAxB;MACA,KAAKt1D,EAAL,CAAQxtH,YAAR;IACH,CAN0C,EAMxC,KAAKnkH,eAAL,CAAqBqgS,WANmB,CAA3C;EAOH;;EACD+H,YAAY,GAAG;IACX/ivB,YAAY,CAAC,KAAK8ivB,yBAAN,CAAZ;IACA,KAAKP,iBAAL;EACH;;EACDR,aAAa,GAAG;IACZ,KAAKG,iBAAL,GAAyB,IAAzB;IACA,KAAKc,oBAAL;;IACA,IAAI,KAAKC,aAAT,EAAwB;MACpB,KAAKA,aAAL,CAAmB1rvB,GAAnB,CAAuBipvB,aAAvB;IACH;;IACD,KAAKrsrB,IAAL,CAAU5jG,IAAV;IACA,KAAK+7tB,EAAL,CAAQxtH,YAAR;EACH;;EACDkjL,YAAY,GAAG;IACX,KAAKE,iBAAL,GAAyB,KAAzB;;IACA,IAAI,KAAKX,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoBhqvB,GAApB,CAAwB2mvB,kBAAxB,CAA2C7L,aAAa,CAACzkK,GAAzD;IACH;;IACD,KAAKs1K,mBAAL;IACA,KAAKvlqB,KAAL,CAAWptH,IAAX;IACA,KAAK+7tB,EAAL,CAAQxtH,YAAR;EACH;;EACDqkL,gBAAgB,CAACp6xB,KAAD,EAAQ;IACpB,MAAMgzkB,MAAM,GAAGhzkB,KAAK,GAAG,KAAKksxB,YAAL,CAAkB1B,eAAlB,CAAkCxqxB,KAAlC,EAAyC,KAAK4xf,eAAL,CAAqBngY,MAA9D,CAAH,GAA2E,EAA/F;;IACA,IAAI,KAAKinqB,gBAAL,CAAsB9F,qBAAtB,CAA4C5/M,MAA5C,EAAoD,KAAKphF,eAAzD,CAAJ,EAA+E;MAC3E,KAAKrhY,QAAL,GAAgB,KAAKmoqB,gBAAL,CAAsB5F,6BAAtB,CAAoD9/M,MAApD,EAA4D,KAAKphF,eAAjE,CAAhB;MACA,KAAK2jS,eAAL,GAAuB,KAAKhlqB,QAAL,CAAchvH,MAAd,GACjB,KAAK2qxB,YAAL,CAAkBpC,qBAAlB,CAAwC,IAAxC,EAA8C,KAAKv5pB,QAAnD,EAA6D,KAAKqhY,eAAL,CAAqBx4V,gBAAlF,EAAoG,KAAKw4V,eAAL,CAAqBz9e,GAAzH,CADiB,GAEjB,KAAKohxB,eAFX;MAGA,KAAKT,QAAL,CAActtxB,IAAd,CAAmB;QACfopH,IAAI,EAAEoid,MADS;QAEf9vkB,IAAI,EAAEsmxB,WAAW,CAAC6Q,KAFH;QAGfxP,WAAW,EAAE;MAHE,CAAnB;IAKH,CAVD,MAWK;MACD,KAAKz/L,SAAL,GAAiB,KAAK8gM,YAAL,CACZV,kBADY,CACOx4M,MADP,EACe,KAAKphF,eAAL,CAAqBngY,MADpC,CAAjB;MAEA,KAAK4jqB,gBAAL,CAAsB,KAAKC,uBAAL,CAA6BtiN,MAA7B,CAAtB,EAA4D,IAA5D;IACH;EACJ;;EACDslN,YAAY,CAAC1nqB,IAAD,EAAOi6pB,WAAP,EAAoB3nxB,IAApB,EAA0Bo3xB,WAA1B,EAAuC;IAC/C,KAAK/pqB,QAAL,GAAgB,KAAK27pB,YAAL,CACXp3S,cADW,CACI,KAAK8c,eAAL,CAAqBx4V,gBADzB,EAC2C,KAAK7oC,QADhD,EAC0DK,IAD1D,EACgEi6pB,WADhE,CAAhB;;IAEA,IAAI,CAACyP,WAAL,EAAkB;MACd,KAAKC,WAAL;IACH;;IACD,KAAKzF,QAAL,CAActtxB,IAAd,CAAmB;MACfopH,IAAI,EAAEA,IAAI,CAACA,IADI;MAEfi6pB,WAFe;MAGf3nxB;IAHe,CAAnB;EAKH;;EACDq3xB,WAAW,GAAG;IACV,IAAI,KAAK3oS,eAAL,CAAqBusR,aAAzB,EAAwC;MACpCh5wB,UAAU,CAAC,KAAK8zxB,YAAL,CAAkBlrvB,IAAlB,CAAuB,IAAvB,CAAD,EAA+B,KAAK6jd,eAAL,CAAqBigS,kBAApD,CAAV;IACH;EACJ;;EACDzylB,UAAU,CAACl1L,KAAD,EAAQ;IACd,QAAQA,KAAK,CAACtI,GAAd;MACI,KAAM,QAAN;MACA,KAAM,KAAN;MACA,KAAM,KAAN;QACI,KAAKq3xB,YAAL;QACA;IALR;EAOH;;EACD7D,cAAc,CAACxkqB,IAAD,EAAO;IACjB,KAAK2kqB,eAAL,GAAuB,KAAKrJ,YAAL,CAAkBtC,cAAlB,CAAiCh5pB,IAAjC,EAAuC,KAAKghY,eAAL,CAAqBngY,MAA5D,CAAvB;EACH;;EACD0kqB,cAAc,CAAChiuB,MAAD,EAAS;IACnB,KAAK4huB,WAAL,GAAmB5huB,MAAM,CAAC+lS,EAA1B;IACA,KAAK+5b,SAAL,CAAezsxB,IAAf,CAAoB2sD,MAApB;EACH;;EACDoiuB,eAAe,CAACpiuB,MAAD,EAAS;IACpB,KAAK4huB,WAAL,GAAmB5huB,MAAM,CAAC+lS,EAA1B;IACA,KAAKi6b,UAAL,CAAgB3sxB,IAAhB,CAAqB2sD,MAArB;EACH;;EACD8luB,oBAAoB,GAAG;IACnB,KAAKlB,0BAAL,CAAgC9yxB,IAAhC,CAAqC,KAAKs1P,QAAL,CAAcm7U,MAAd,CAAqBtskB,QAArB,EAA+B,SAA/B,EAA2CqnC,CAAD,IAAO;MAClF,KAAK2tJ,UAAL,CAAgB3tJ,CAAhB;IACH,CAFoC,CAArC;EAGH;;EACD0ovB,mBAAmB,GAAG;IAClB,KAAKpB,0BAAL,CAAgCroxB,OAAhC,CAAyC8pxB,EAAD,IAAQA,EAAE,EAAlD;IACA,KAAKzB,0BAAL,GAAkC,EAAlC;EACH;;EACD1wxB,WAAW,GAAG;IACV,KAAKywxB,kCAAL,CAAwCpoxB,OAAxC,CAAgD8pxB,EAAE,IAAIA,EAAE,EAAxD;;IACA,IAAI,KAAKC,eAAT,EAA0B;MACtB,KAAKA,eAAL,CAAqBlttB,WAArB,CAAiC,KAAKmttB,eAAtC;IACH;EACJ;;EACDhE,WAAW,GAAG;IACV,KAAKnB,eAAL,GAAuB9L,QAAQ,EAA/B;IACA,KAAK6K,aAAL,CAAmB9sxB,IAAnB;EACH;;AApQqB;;AAsQ1BixxB,mBAAmB,CAACj2xB,IAApB;EAAA,iBAAgHi2xB,mBAAhH,EA9rD+FvvwB,+DA8rD/F,CAAqJwowB,iBAArJ,GA9rD+FxowB,+DA8rD/F,CAAmLA,qDAAnL,GA9rD+FA,+DA8rD/F,CAA6MA,oDAA7M,GA9rD+FA,+DA8rD/F,CAAsOwgwB,YAAtO,GA9rD+FxgwB,+DA8rD/F,CAA+PA,4DAA/P;AAAA;;AACAuvwB,mBAAmB,CAACluwB,IAApB,kBA/rD+FrB,+DA+rD/F;EAAA,MAAoGuvwB,mBAApG;EAAA;EAAA;IAAA;MA/rD+FvvwB,yDA+rD/F;MA/rD+FA,yDA+rD/F;MA/rD+FA,yDA+rD/F;MA/rD+FA,yDA+rD/F;MA/rD+FA,yDA+rD/F;MA/rD+FA,yDA+rD/F;IAAA;;IAAA;MAAA;;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;MA/rD+FA,4DA+rD/F,MA/rD+FA,yDA+rD/F;IAAA;EAAA;EAAA;EAAA;IAAA;MA/rD+FA,wDA+rD/F;QAAA,OAAoG,aAApG;MAAA;IAAA;;IAAA;MA/rD+FA,wDA+rD/F;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WA/rD+FA,gEA+rD/F,CAAynB,CACjnBwowB,iBADinB,EAEjnBL,sBAFinB,EAGjnBpF,kBAHinB,EAIjnB6D,iBAJinB,EAKjnB;IACI3kxB,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMmqL,mBAAP,CAF3B;IAGIlknB,KAAK,EAAE;EAHX,CALinB,EAUjnB;IACIppK,OAAO,EAAEm0tB,yDADb;IAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMmqL,mBAAP,CAF3B;IAGIlknB,KAAK,EAAE;EAHX,CAVinB,CAAznB,GA/rD+FrrJ,kEA+rD/F;EAAA;EAAA;EAAA;EAAA;IAAA;MA/rD+FA,4DA8sD+iB,+CAf9oB;MA/rD+FA,wDA8sD6zB;QAAA,OAAS,kBAAT;MAAA;QAAA,OAAgD,kBAAhD;MAAA;QAAA,2CAA+H,kBAA/H;MAAA;QAAA,OAA8K,4BAA9K;MAAA,EAf55B;MA/rD+FA,0DA8sD4xB,IAf33B;MA/rD+FA,wDA8sD0wC,uEAfz2C;MA/rD+FA,wDA8sD2jD;QAAA,OAAwB,uBAAxB;MAAA,EAf1pD;MA/rD+FA,0DA8sDslI,EAfrrI;IAAA;;IAAA;MAAA,YA/rD+FA,yDA+rD/F;;MA/rD+FA,wDA8sDojB,YA9sDpjBA,6DA8sDojB,iCAfnpB;MA/rD+FA,uDA8sDisB,GAfhyB;MA/rD+FA,wDA8sDisB,kDAfhyB;MA/rD+FA,yDA8sD+nB,uDAf9tB;MA/rD+FA,uDA8sDkhC,GAfjnC;MA/rD+FA,wDA8sDkhC,6IAfjnC;MA/rD+FA,uDA8sD2zC,GAf15C;MA/rD+FA,wDA8sD2zC,gMAf15C;IAAA;EAAA;EAAA,eAe6uJwnqB,oDAf7uJ,EAe20JA,qDAf30J,EAem6JA,yDAfn6J,EAeugK24F,gEAfvgK,EAeyxKA,2DAfzxK,EAem4KA,mDAfn4K,EAe6lLn3L,sEAf7lL,EAeqjN2+F,kDAfrjN,EAeyqN8lG,oBAfzqN,EAes6N/B,sBAft6N,EAemsO4C,mBAfnsO,EAeg4OY,wBAfh4O;EAAA;EAAA;EAAA;AAAA;;AAgBA;EAAA,mDA/sD+FlvwB,+DA+sD/F,CAA2FuvwB,mBAA3F,EAA4H,CAAC;IACjHv1xB,IAAI,EAAEimB,oDAD2G;IAEjHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,gBAAZ;MAA8BilB,aAAa,EAAEnmB,iEAA7C;MAAqE6slB,eAAe,EAAE5H,yEAAtF;MAAsHrjmB,SAAS,EAAE,CAC5HwmxB,iBAD4H,EAE5HL,sBAF4H,EAG5HpF,kBAH4H,EAI5H6D,iBAJ4H,EAK5H;QACI3kxB,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMmqL,mBAAP,CAF3B;QAGIlknB,KAAK,EAAE;MAHX,CAL4H,EAU5H;QACIppK,OAAO,EAAEm0tB,yDADb;QAEIl0tB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAMmqL,mBAAP,CAF3B;QAGIlknB,KAAK,EAAE;MAHX,CAV4H,CAAjI;MAeI9pJ,QAAQ,EAAE,ijHAfd;MAeikHjb,MAAM,EAAE,CAAC,ufAAD;IAfzkH,CAAD;EAF2G,CAAD,CAA5H,EAkB4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEwuxB;IAAR,CAAD,EAA8B;MAAExuxB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAA9B,EAAuD;MAAEpsC,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAAvD,EAA+E;MAAE12mB,IAAI,EAAEwmxB;IAAR,CAA/E,EAAuG;MAAExmxB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAvG,CAAP;EAAgJ,CAlB1L,EAkB4M;IAAEhme,MAAM,EAAE,CAAC;MACvM/sI,IAAI,EAAEmmB,gDAAKA;IAD4L,CAAD,CAAV;IAE5LioY,IAAI,EAAE,CAAC;MACPpuZ,IAAI,EAAEmmB,gDAAKA;IADJ,CAAD,CAFsL;IAI5L2+G,WAAW,EAAE,CAAC;MACd9kI,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAJ+K;IAM5L69F,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CANkL;IAQ5L0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAR+K;IAU5L0+D,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAE49sB,sDADE;MAERj7sB,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD,EAGR;MACC3C,IAAI,EAAEmmB,gDAAKA;IADZ,CAHQ,CAVqL;IAe5L0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAfmL;IAiB5L6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAjBmL;IAmB5L8hwB,OAAO,EAAE,CAAC;MACVjoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAnBmL;IAqB5L0ljB,OAAO,EAAE,CAAC;MACV7rkB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CArBmL;IAuB5L+hF,IAAI,EAAE,CAAC;MACPloG,IAAI,EAAEqmB,iDAAMA;IADL,CAAD,CAvBsL;IAyB5LqrG,KAAK,EAAE,CAAC;MACR1xH,IAAI,EAAEqmB,iDAAMA;IADJ,CAAD,CAzBqL;IA2B5L+gP,QAAQ,EAAE,CAAC;MACXpnQ,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CA3BkL;IA6B5L+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CA7B6K;IA+B5L0qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CA/BiL;IAiC5L4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD,CAjCgL;IAmC5LurwB,QAAQ,EAAE,CAAC;MACX5xxB,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAnCkL;IAqC5LoxwB,iBAAiB,EAAE,CAAC;MACpBz3xB,IAAI,EAAEsrmB,oDADc;MAEpB3omB,IAAI,EAAE,CAAC,WAAD;IAFc,CAAD,CArCyK;IAwC5L2yxB,cAAc,EAAE,CAAC;MACjBt1xB,IAAI,EAAEsrmB,oDADW;MAEjB3omB,IAAI,EAAE,CAAC,aAAD;IAFW,CAAD,CAxC4K;IA2C5LwzxB,gBAAgB,EAAE,CAAC;MACnBn2xB,IAAI,EAAEsrmB,oDADa;MAEnB3omB,IAAI,EAAE,CAAC,eAAD;IAFa,CAAD,CA3C0K;IA8C5LyzxB,kBAAkB,EAAE,CAAC;MACrBp2xB,IAAI,EAAEsrmB,oDADe;MAErB3omB,IAAI,EAAE,CAAC,iBAAD;IAFe,CAAD,CA9CwK;IAiD5Lq0xB,aAAa,EAAE,CAAC;MAChBh3xB,IAAI,EAAEsrmB,oDADU;MAEhB3omB,IAAI,EAAE,CAAC,YAAD;IAFU,CAAD,CAjD6K;IAoD5Lm8I,YAAY,EAAE,CAAC;MACf9+I,IAAI,EAAEsrmB,oDADS;MAEf3omB,IAAI,EAAE,CAAC,cAAD;IAFS,CAAD,CApD8K;IAuD5Lwoa,OAAO,EAAE,CAAC;MACVnra,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAvDmL,CAlB5M;AAAA;;AA8EA,MAAM+0xB,mBAAN,CAA0B;EACtBj7xB,WAAW,CAACm0B,gBAAD,EAAmB6kwB,OAAnB,EAA4B3kwB,wBAA5B,EAAsDiiwB,WAAtD,EAAmE/J,YAAnE,EAAiF;IACxF,KAAKp4vB,gBAAL,GAAwBA,gBAAxB;IACA,KAAK6kwB,OAAL,GAAeA,OAAf;IACA,KAAK3kwB,wBAAL,GAAgCA,wBAAhC;IACA,KAAKiiwB,WAAL,GAAmBA,WAAnB;IACA,KAAK/J,YAAL,GAAoBA,YAApB;IACA,KAAK9grB,IAAL,GAAY,IAAIvsG,uDAAJ,EAAZ;IACA,KAAK+1H,KAAL,GAAa,IAAI/1H,uDAAJ,EAAb;IACA,KAAKyrQ,QAAL,GAAgB,IAAIzrQ,uDAAJ,EAAhB;IACA,KAAKy1xB,aAAL,GAAqB,IAAIz1xB,uDAAJ,EAArB;IACA,KAAKo1xB,SAAL,GAAiB,IAAIp1xB,uDAAJ,EAAjB;IACA,KAAKs1xB,UAAL,GAAkB,IAAIt1xB,uDAAJ,EAAlB;IACA,KAAKi2xB,QAAL,GAAgB,IAAIj2xB,uDAAJ,EAAhB;IACA,KAAKg8xB,KAAL,GAAa,KAAb;EACH;;EACS,IAAN5qpB,MAAM,GAAG;IACT,OAAO,KAAKsjd,OAAZ;EACH;;EACS,IAANtjd,MAAM,CAACA,MAAD,EAAS;IACf,KAAKsjd,OAAL,GAAe,EACX,GAAGtjd,MADQ;MAEX6qpB,kBAAkB,EAAE,IAFT;MAGXjB,qBAAqB,EAAE5ppB,MAAM,CAAC4ppB,qBAAP,IAAgC,KAAKlB;IAHjD,CAAf;IAKA,KAAKoC,sBAAL;IACA,KAAKhlL,YAAL;EACH;;EACQ,IAALhuhB,KAAK,GAAG;IACR,OAAO,KAAKizsB,MAAZ;EACH;;EACQ,IAALjzsB,KAAK,CAACA,KAAD,EAAQ;IACb,KAAKizsB,MAAL,GAAcjzsB,KAAd;;IACA,IAAI,KAAKkzsB,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgBlzsB,KAAhB,GAAwBA,KAAxB;IACH;;IACD,KAAKguhB,YAAL;EACH;;EACO,IAAJzkN,IAAI,GAAG;IACP,OAAO,KAAKupY,KAAZ;EACH;;EACO,IAAJvpY,IAAI,CAACA,IAAD,EAAO;IACX,KAAKupY,KAAL,GAAavpY,IAAb;;IACA,IAAI,KAAK2pY,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgB3pY,IAAhB,GAAuBA,IAAvB;IACH;;IACD,KAAKykN,YAAL;EACH;;EACU,IAAPg0K,OAAO,GAAG;IACV,OAAO,KAAKmR,QAAZ;EACH;;EACU,IAAPnR,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKmR,QAAL,GAAgBnR,OAAhB;;IACA,IAAI,KAAKkR,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgBlR,OAAhB,GAA0BA,OAA1B;MACA,KAAKkR,UAAL,CAAgBltL,QAAhB;IACH;;IACD,KAAKgI,YAAL;EACH;;EACU,IAAPm1K,OAAO,GAAG;IACV,OAAO,KAAKiQ,QAAZ;EACH;;EACU,IAAPjQ,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKiQ,QAAL,GAAgBjQ,OAAhB;;IACA,IAAI,KAAK+P,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgB/P,OAAhB,GAA0BA,OAA1B;MACA,KAAK+P,UAAL,CAAgBltL,QAAhB;IACH;;IACD,KAAKgI,YAAL;EACH;;EACU,IAAPo1K,OAAO,GAAG;IACV,OAAO,KAAKiQ,QAAZ;EACH;;EACU,IAAPjQ,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKiQ,QAAL,GAAgBjQ,OAAhB;;IACA,IAAI,KAAK8P,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgB9P,OAAhB,GAA0BA,OAA1B;MACA,KAAK8P,UAAL,CAAgBltL,QAAhB;IACH;;IACD,KAAKgI,YAAL;EACH;;EACU,IAAPhnC,OAAO,GAAG;IACV,OAAO,KAAKssN,QAAZ;EACH;;EACU,IAAPtsN,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKssN,QAAL,GAAgBtsN,OAAhB;;IACA,IAAI,KAAKksN,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgBlsN,OAAhB,GAA0BA,OAA1B;MACA,KAAKksN,UAAL,CAAgBltL,QAAhB;IACH;;IACD,KAAKgI,YAAL;EACH;;EACc,IAAXggL,WAAW,GAAG;IACd,OAAO,KAAKuF,YAAZ;EACH;;EACc,IAAXvF,WAAW,CAACA,WAAD,EAAc;IACzB,KAAKuF,YAAL,GAAoBvF,WAApB;IACA,KAAKgF,sBAAL;IACA,KAAKhlL,YAAL;EACH;;EACDhI,QAAQ,GAAG;IACP,KAAKktL,UAAL,GAAkB,KAAKM,gBAAL,EAAlB;IACA,KAAK/svB,GAAL,GAAW,KAAKysvB,UAAL,CAAgBzsvB,GAA3B;IACA,KAAKusvB,sBAAL;IACA,KAAKS,uBAAL;IACA,KAAKP,UAAL,CAAgBlzsB,KAAhB,GAAwB,KAAKA,KAA7B;EACH;;EACDwzsB,gBAAgB,GAAG;IACf,MAAMz4xB,OAAO,GAAG,KAAKkxB,wBAAL,CAA8BqB,uBAA9B,CAAsDojwB,mBAAtD,CAAhB;IACA,OAAO,KAAK3kwB,gBAAL,CAAsBa,eAAtB,CAAsC7xB,OAAtC,EAA+C6M,QAAtD;EACH;;EACD6rxB,uBAAuB,GAAG;IACtB,IAAI,CAAC,KAAKvF,WAAV,EAAuB;MACnB;IACH;;IACD,KAAKgF,UAAL,CAAgBb,gBAAhB,CAAiC,KAAKnE,WAAL,CAAiBj2xB,KAAlD;IACA,KAAKi2xB,WAAL,CAAiBzzD,YAAjB,CAA8B7huB,SAA9B,CAAyCX,KAAD,IAAW;MAC/C,IAAIA,KAAK,KAAK,KAAKi7xB,UAAL,CAAgB7B,iBAA9B,EAAiD;QAC7C,MAAMpmN,MAAM,GAAG,KAAKk5M,YAAL,CAAkB1B,eAAlB,CAAkCxqxB,KAAlC,EAAyC,KAAKi7xB,UAAL,CAAgBrpS,eAAhB,CAAgCngY,MAAzE,CAAf;QACA,KAAKwpqB,UAAL,CAAgBb,gBAAhB,CAAiCpnN,MAAjC;MACH;IACJ,CALD;IAMA,IAAIyoN,KAAK,GAAG,IAAZ;IACA,KAAKR,UAAL,CAAgB/8D,gBAAhB,CAAiC,CAACl+tB,KAAD,EAAQ07xB,cAAR,KAA2B;MACxD,IAAI17xB,KAAJ,EAAW;QACP,MAAM27xB,kBAAkB,GAAGF,KAAK,IAAIh3xB,KAAK,CAACikB,OAAN,CAAc1oB,KAAd,CAAT,IAAiC,CAACA,KAAK,CAACuB,MAAnE;;QACA,IAAI,CAACo6xB,kBAAD,IAAuB,CAACD,cAA5B,EAA4C;UACxC,KAAKzF,WAAL,CAAiBp2D,OAAjB,CAAyB94lB,QAAzB,CAAkC,KAAKk0pB,UAAL,CAAgB7B,iBAAlD;QACH;MACJ;;MACD,MAAMnxO,MAAM,GAAG,KAAKgzO,UAAL,CAAgBxna,UAAhB,CAA2BzzX,KAA3B,CAAf;;MACA,IAAI,CAACy7xB,KAAL,EAAY;QACR,KAAKxF,WAAL,CAAiBp2D,OAAjB,CAAyB8H,WAAzB,CAAqC;UACjCJ,QAAQ,EAAE;QADuB,CAArC;MAGH,CAJD,MAKK;QACDk0D,KAAK,GAAG,KAAR;MACH;;MACD,IAAIxzO,MAAJ,EAAY;QACR,IAAIA,MAAM,CAACltiB,cAAP,CAAsB,QAAtB,CAAJ,EAAqC;UACjC,MAAM;YAAEuwwB;UAAF,IAAYrjO,MAAM,CAAC,QAAD,CAAxB;UACA,KAAKgzO,UAAL,CAAgB7B,iBAAhB,GAAoC9N,KAApC;;UACA,IAAI,CAACoQ,cAAL,EAAqB;YACjB,KAAKzF,WAAL,CAAiBp2D,OAAjB,CAAyB94lB,QAAzB,CAAkCukpB,KAAlC;UACH;QACJ;;QACD,KAAK2K,WAAL,CAAiBp2D,OAAjB,CAAyBkJ,SAAzB,CAAmC9gL,MAAnC;MACH;IACJ,CA1BD;EA2BH;;EACD55I,OAAO,GAAG;IACN,KAAK4sX,UAAL,CAAgB5sX,OAAhB;EACH;;EACD12J,OAAO,GAAG;IACN,KAAKsjhB,UAAL,CAAgBnB,YAAhB;EACH;;EACD1zE,OAAO,GAAG;IACN,IAAI,KAAK60E,UAAL,CAAgBrpS,eAAhB,CAAgCkgS,YAApC,EAAkD;MAC9C,KAAKmJ,UAAL,CAAgBhC,YAAhB;IACH;EACJ;;EACDljL,YAAY,GAAG;IACX,IAAI,KAAKklL,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgB13D,EAAhB,CAAmBxtH,YAAnB;IACH;EACJ;;EACDglL,sBAAsB,GAAG;IACrB,IAAI,KAAKE,UAAT,EAAqB;MACjB,KAAKA,UAAL,CAAgBlR,OAAhB,GAA0B,KAAKA,OAA/B;MACA,KAAKkR,UAAL,CAAgB/P,OAAhB,GAA0B,KAAKA,OAA/B;MACA,KAAK+P,UAAL,CAAgB9P,OAAhB,GAA0B,KAAKA,OAA/B;MACA,KAAK8P,UAAL,CAAgBlsN,OAAhB,GAA0B,KAAKA,OAA/B;MACA,KAAKksN,UAAL,CAAgB3pY,IAAhB,GAAuB,KAAKA,IAAL,IAAa,KAApC;MACA,KAAK2pY,UAAL,CAAgBlF,WAAhB,GAA8B,KAAKA,WAAnC;MACA,KAAKkF,UAAL,CAAgBhrpB,MAAhB,GAAyB,KAAKA,MAA9B;MACA,KAAKgrpB,UAAL,CAAgB7vrB,IAAhB,GAAuB,KAAKA,IAA5B;MACA,KAAK6vrB,UAAL,CAAgBrmqB,KAAhB,GAAwB,KAAKA,KAA7B;MACA,KAAKqmqB,UAAL,CAAgB3whB,QAAhB,GAA2B,KAAKA,QAAhC;MACA,KAAK2whB,UAAL,CAAgB3G,aAAhB,GAAgC,KAAKA,aAArC;MACA,KAAK2G,UAAL,CAAgBhH,SAAhB,GAA4B,KAAKA,SAAjC;MACA,KAAKgH,UAAL,CAAgB9G,UAAhB,GAA6B,KAAKA,UAAlC;MACA,KAAK8G,UAAL,CAAgBnG,QAAhB,GAA2B,KAAKA,QAAhC;MACA,KAAKmG,UAAL,CAAgB3mwB,IAAhB;;MACA,IAAI,KAAK2mwB,UAAL,CAAgBrpS,eAAhB,CAAgCsgS,eAApC,EAAqD;QACjD,KAAKyG,OAAL,CAAahjwB,aAAb,CAA2Blb,YAA3B,CAAwC,UAAxC,EAAoD,IAApD;MACH,CAFD,MAGK;QACD,KAAKk+wB,OAAL,CAAahjwB,aAAb,CAA2Bnb,eAA3B,CAA2C,UAA3C;MACH;IACJ;EACJ;;AA/LqB;;AAiM1BogxB,mBAAmB,CAACp4xB,IAApB;EAAA,iBAAgHo4xB,mBAAhH,EA99D+F1xwB,+DA89D/F,CAAqJA,2DAArJ,GA99D+FA,+DA89D/F,CAAqLA,qDAArL,GA99D+FA,+DA89D/F,CAA+MA,mEAA/M,GA99D+FA,+DA89D/F,CAAuPmgwB,qDAAvP,MA99D+FngwB,+DA89D/F,CAAkSwgwB,YAAlS;AAAA;;AACAkR,mBAAmB,CAAC7yM,IAApB,kBA/9D+F7+jB,+DA+9D/F;EAAA,MAAoG0xwB,mBAApG;EAAA;EAAA;IAAA;MA/9D+F1xwB,wDA+9D/F;QAAA,OAAoG,aAApG;MAAA;QAAA,OAAoG,aAApG;MAAA;QAAA,OAAoG,aAApG;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAh+D+FA,+DAg+D/F,CAA2F0xwB,mBAA3F,EAA4H,CAAC;IACjH13xB,IAAI,EAAE4jlB,oDAD2G;IAEjHjhlB,IAAI,EAAE,CAAC;MACCmilB,QAAQ,EAAE,aADX;MAECx9jB,QAAQ,EAAE;IAFX,CAAD;EAF2G,CAAD,CAA5H,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAEtnB,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAD,EAAgC;MAAErsC,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAhC,EAAyD;MAAEpsC,IAAI,EAAEgmB,mEAA2BsmB;IAAnC,CAAzD,EAAgG;MAAEtsC,IAAI,EAAEmmxB,qDAAR;MAAwB9gxB,UAAU,EAAE,CAAC;QAClKrF,IAAI,EAAEnE,mDAAQA;MADoJ,CAAD;IAApC,CAAhG,EAE3B;MAAEmE,IAAI,EAAEwmxB;IAAR,CAF2B,CAAP;EAEM,CARhD,EAQkE;IAAEt+qB,IAAI,EAAE,CAAC;MAC3DloG,IAAI,EAAEqmB,iDAAMA;IAD+C,CAAD,CAAR;IAElDqrG,KAAK,EAAE,CAAC;MACR1xH,IAAI,EAAEqmB,iDAAMA;IADJ,CAAD,CAF2C;IAIlD+gP,QAAQ,EAAE,CAAC;MACXpnQ,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAJwC;IAMlD+qwB,aAAa,EAAE,CAAC;MAChBpxxB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CANmC;IAQlD0qwB,SAAS,EAAE,CAAC;MACZ/wxB,IAAI,EAAEqmB,iDAAMA;IADA,CAAD,CARuC;IAUlD4qwB,UAAU,EAAE,CAAC;MACbjxxB,IAAI,EAAEqmB,iDAAMA;IADC,CAAD,CAVsC;IAYlDurwB,QAAQ,EAAE,CAAC;MACX5xxB,IAAI,EAAEqmB,iDAAMA;IADD,CAAD,CAZwC;IAclD0mH,MAAM,EAAE,CAAC;MACT/sI,IAAI,EAAEmmB,gDADG;MAETxjB,IAAI,EAAE,CAAC,aAAD;IAFG,CAAD,CAd0C;IAiBlDkiF,KAAK,EAAE,CAAC;MACR7kF,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAjB2C;IAmBlDioY,IAAI,EAAE,CAAC;MACPpuZ,IAAI,EAAEmmB,gDAAKA;IADJ,CAAD,CAnB4C;IAqBlD0gwB,OAAO,EAAE,CAAC;MACV7mxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CArByC;IAuBlD6hwB,OAAO,EAAE,CAAC;MACVhoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAvByC;IAyBlD8hwB,OAAO,EAAE,CAAC;MACVjoxB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CAzByC;IA2BlD0ljB,OAAO,EAAE,CAAC;MACV7rkB,IAAI,EAAEmmB,gDAAKA;IADD,CAAD,CA3ByC;IA6BlD0swB,WAAW,EAAE,CAAC;MACd7yxB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CA7BqC;IA+BlDglZ,OAAO,EAAE,CAAC;MACVnra,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD,CA/ByC;IAkClD8xQ,OAAO,EAAE,CAAC;MACVz0Q,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD,CAlCyC;IAqClDugtB,OAAO,EAAE,CAAC;MACVljtB,IAAI,EAAE89sB,uDADI;MAEVn7sB,IAAI,EAAE,CAAC,eAAD;IAFI,CAAD;EArCyC,CARlE;AAAA;;AAkDA,MAAM+1xB,kBAAN,CAAyB;;AAEzBA,kBAAkB,CAACp5xB,IAAnB;EAAA,iBAA+Go5xB,kBAA/G;AAAA;;AACAA,kBAAkB,CAACtwxB,IAAnB,kBArhE+F4d,8DAqhE/F;EAAA,MAAgH0ywB;AAAhH;AAcAA,kBAAkB,CAACpwxB,IAAnB,kBAniE+F0d,8DAmiE/F;EAAA,UAA8IutmB,yDAA9I,EACQ8/G,uDADR,EAEQzuI,gEAFR;AAAA;;AAGA;EAAA,mDAtiE+F5+kB,+DAsiE/F,CAA2F0ywB,kBAA3F,EAA2H,CAAC;IAChH14xB,IAAI,EAAEhE,mDAD0G;IAEhH2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CACV6ovB,mBADU,EAEVmC,mBAFU,EAGVjE,oBAHU,EAIV/B,sBAJU,EAKVrB,oBALU,EAMViE,mBANU,EAOVY,wBAPU,CADf;MAUCnrxB,OAAO,EAAE,CACLwpnB,yDADK,EAEL8/G,uDAFK,EAGLzuI,gEAHK,CAVV;MAeCj4jB,OAAO,EAAE,CACL4ovB,mBADK,EAELmC,mBAFK,EAGLhG,sBAHK,EAIL+B,oBAJK,EAKLa,mBALK,EAMLY,wBANK;IAfV,CAAD;EAF0G,CAAD,CAA3H;AAAA;AA4BA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACx6EA;AACA;AACA;AAEA;AACA;AACA;;AACA,MAAMyD,OAAO,GAAG;EACZC,MAAM,EAAE;AADI,CAAhB;AAGA,MAAMC,QAAQ,GAAG;EACbC,MAAM,EAAE,QADK;EAEbzyL,OAAO,EAAE,SAFI;EAGbE,MAAM,EAAE,QAHK;EAIbwyL,KAAK,EAAE,OAJM;EAKbC,EAAE,EAAE,IALS;EAMbC,OAAO,EAAE,SANI;EAObC,gBAAgB,EAAE,kBAPL;EAQbC,YAAY,EAAE,cARD;EASbC,OAAO,EAAE,SATI;EAUbC,SAAS,EAAE,YAVE;EAWbC,OAAO,EAAEX,OAAO,CAACC;AAXJ,CAAjB;AAaA,MAAMW,UAAU,GAAG;EACf;EACAC,GAAG,EAAE,0RAFU;EAGfC,WAAW,EAAE,gFAHE;EAIfC,IAAI,EAAE,sGAJS;EAKfC,QAAQ,EAAE,IAAI/pqB,MAAJ,CAAY;AAC1B;AACA;AACA;AACA;AACA;AACA,yFANc,CALK;EAYfwpqB,OAAO,EAAE,IAAIxpqB,MAAJ,CAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAtDa,CAZM;EAmEfgqqB,EAAE,EAAE,IAAIhqqB,MAAJ,CAAY;AACpB;AACA;AACA;AACA;AACA,kBALQ,CAnEW;EAyEfiqqB,IAAI,EAAE,4HAzES;EA0EfC,IAAI,EAAE,8BA1ES;EA2EfC,WAAW,EAAE,kBA3EE;EA4EfC,QAAQ,EAAE,6GA5EK;EA6EfC,IAAI,EAAE,iBA7ES;EA8EfC,KAAK,EAAE,2GA9EQ;EA+EfC,OAAO,EAAE,IAAIvqqB,MAAJ,CAAY;AACzB;AACA;AACA;AACA,+BAJa,CA/EM;EAoFfwqqB,GAAG,EAAE,mHApFU;EAqFfC,IAAI,EAAE,IAAIzqqB,MAAJ,CAAY;AACtB;AACA,6CAFU,CArFS;EAwFf0qqB,QAAQ,EAAE,qCAxFK;EAyFfC,SAAS,EAAE,mHAzFI;EA0FfC,QAAQ,EAAE,iEA1FK;EA2FfC,OAAO,EAAE,wDA3FM;EA4FfC,QAAQ,EAAE,uBA5FK;EA6FfC,IAAI,EAAE,MA7FS;EA8FfC,GAAG,EAAE,KA9FU;EA+FfC,IAAI,EAAE,UA/FS;EAgGfC,UAAU,EAAE,mCAhGG;EAiGfC,UAAU,EAAE,gBAjGG;EAkGfC,MAAM,EAAE,YAlGO;EAmGfC,IAAI,EAAE,UAnGS;EAoGf30L,OAAO,EAAE,aApGM;EAqGf40L,aAAa,EAAE,mBArGA;EAsGfC,aAAa,EAAE,IAAIvrqB,MAAJ,CAAY;AAC/B,0GADmB;AAtGA,CAAnB;AAyGA,MAAMwrqB,UAAU,GAAG;EACfC,IAAI,EAAE,mBADS;EAEfC,WAAW,EAAE,6BAFE;EAGfC,YAAY,EAAE,kBAHC;EAIfC,aAAa,EAAE,IAAI5rqB,MAAJ,CAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAlBmB,CAJA;EAuBf6rqB,MAAM,EAAE,IAAI7rqB,MAAJ,CAAY;AACxB;AACA,4BAFY,CAvBO;EA0Bf8rqB,aAAa,EAAE,2CA1BA;EA2BfC,QAAQ,EAAE,4FA3BK;EA4BfC,UAAU,EAAE,IAAIhsqB,MAAJ,CAAY;AAC5B;AACA;AACA;AACA,gFAJgB,CA5BG;EAiCfisqB,gBAAgB,EAAE,qBAjCH;EAkCfC,SAAS,EAAE,kFAlCI;EAmCfC,cAAc,EAAE,kGAnCD;EAoCfC,UAAU,EAAE,sGApCG;EAqCfC,UAAU,EAAE,IAAIrsqB,MAAJ,CAAY;AAC5B;AACA,+BAFgB,CArCG;EAwCfssqB,aAAa,EAAE,yGAxCA;EAyCfC,QAAQ,EAAE,4EAzCK;EA0CfC,aAAa,EAAE,kDA1CA;EA2CfC,eAAe,EAAE,IAAIzsqB,MAAJ,CAAY;AACjC;AACA;AACA;AACA,gCAJqB,CA3CF;EAgDf0sqB,YAAY,EAAE,IAAI1sqB,MAAJ,CAAY;AAC9B;AACA,wHAFkB,CAhDC;EAmDf2sqB,UAAU,EAAE,uDAnDG;EAoDfC,YAAY,EAAE,IAAI5sqB,MAAJ,CAAY;AAC9B;AACA;AACA;AACA,qGAJkB,CApDC;EAyDf6sqB,YAAY,EAAE,0DAzDC;EA0DfC,YAAY,EAAE,2GA1DC;EA2DfC,aAAa,EAAE,kDA3DA;EA4DfC,SAAS,EAAE,SA5DI;EA6DfC,aAAa,EAAE,yCA7DA;EA8DfC,WAAW,EAAE,iDA9DE;EA+DfC,aAAa,EAAE,0EA/DA;EAgEfC,YAAY,EAAE,IAAIptqB,MAAJ,CAAY;AAC9B,uFADkB,CAhEC;EAkEfqtqB,WAAW,EAAE,oEAlEE;EAmEfC,gBAAgB,EAAE,YAnEH;EAoEfC,UAAU,EAAE,IAAIvtqB,MAAJ,CAAY;AAC5B;AACA;AACA,sBAHgB,CApEG;EAwEfwtqB,aAAa,EAAE,oFAxEA;EAyEfC,UAAU,EAAE,gFAzEG;EA0EfC,UAAU,EAAE,IAAI1tqB,MAAJ,CAAY;AAC5B,gFADgB,CA1EG;EA4Ef2tqB,SAAS,EAAE,IAAI3tqB,MAAJ,CAAY;AAC3B;AACA,wEAFe,CA5EI;EA+Ef4tqB,SAAS,EAAE,IAAI5tqB,MAAJ,CAAY;AAC3B,wDADe,CA/EI;EAiFf6tqB,UAAU,EAAE,sEAjFG;EAkFfC,cAAc,EAAE,wDAlFD;EAmFfC,SAAS,EAAE,kBAnFI;EAoFfC,QAAQ,EAAE,IAAIhuqB,MAAJ,CAAY;AAC1B,sFADc,CApFK;EAsFfiuqB,YAAY,EAAE,IAAIjuqB,MAAJ,CAAY;AAC9B,uDADkB,CAtFC;EAwFfkuqB,SAAS,EAAE,iBAxFI;EAyFfC,aAAa,EAAE,gBAzFA;EA0FfC,aAAa,EAAE,gCA1FA;EA2FfC,YAAY,EAAE,gCA3FC;EA4FfC,UAAU,EAAE,gDA5FG;EA6FfC,cAAc,EAAE,iCA7FD;EA8FfC,UAAU,EAAE,iBA9FG;EA+FfC,UAAU,EAAE,iDA/FG;EAgGfC,WAAW,EAAE,uEAhGE;EAiGfC,WAAW,EAAE,IAAI3uqB,MAAJ,CAAY;AAC7B;AACA;AACA;AACA;AACA;AACA,wCANiB,CAjGE;EAwGf4uqB,iBAAiB,EAAE,8BAxGJ;EAyGfC,cAAc,EAAE,0GAzGD;EA0GfC,eAAe,EAAE,0GA1GF;EA2GfC,WAAW,EAAE,IAAI/uqB,MAAJ,CAAY;AAC7B,6CADiB,CA3GE;EA6GfgvqB,cAAc,EAAG;AACrB,qDA9GmB;EA+GfC,aAAa,EAAE,uBA/GA;EAgHfC,cAAc,EAAE,sEAhHD;EAiHfC,aAAa,EAAE,+DAjHA;EAkHfC,aAAa,EAAE,kFAlHA;EAmHfC,aAAa,EAAE,IAAIrvqB,MAAJ,CAAY;AAC/B;AACA;AACA,oGAHmB,CAnHA;EAuHfsvqB,WAAW,EAAE,wGAvHE;EAwHfC,cAAc,EAAE,IAAIvvqB,MAAJ,CAAY;AAChC;AACA;AACA,4CAHoB,CAxHD;EA4HfwvqB,QAAQ,EAAE,8BA5HK;EA6HfC,iBAAiB,EAAE,IAAIzvqB,MAAJ,CAAY;AACnC;AACA;AACA,8CAHuB,CA7HJ;EAiIf0vqB,aAAa,EAAE,IAAI1vqB,MAAJ,CAAY;AAC/B,mDADmB,CAjIA;EAmIf2vqB,SAAS,EAAE,2HAnII;EAoIfC,SAAS,EAAE,wBApII;EAqIfC,aAAa,EAAE,6DArIA;EAsIfC,YAAY,EAAE,+GAtIC;EAuIfC,cAAc,EAAE,iCAvID;EAwIfC,cAAc,EAAE,qCAxID;EAyIfC,cAAc,EAAE,IAAIjwqB,MAAJ,CAAY;AAChC;AACA;AACA;AACA,qCAJoB,CAzID;EA8IfkwqB,aAAa,EAAE,IAAIlwqB,MAAJ,CAAY;AAC/B;AACA,sFAFmB,CA9IA;EAiJfmwqB,YAAY,EAAE,IAAInwqB,MAAJ,CAAY;AAC9B;AACA,6FAFkB,CAjJC;EAoJfowqB,SAAS,EAAE,8BApJI;EAqJfC,YAAY,EAAE,iDArJC;EAsJfC,cAAc,EAAE,wDAtJD;EAuJfC,gBAAgB,EAAE,0CAvJH;EAwJfC,cAAc,EAAE,0EAxJD;EAyJfC,aAAa,EAAE,iBAzJA;EA0JfC,YAAY,EAAE,iCA1JC;EA2JfC,gBAAgB,EAAE,6BA3JH;EA4JfC,UAAU,EAAE,gBA5JG;EA6JfC,SAAS,EAAE,oCA7JI;EA8JfC,WAAW,EAAE,qBA9JE;EA+JfC,SAAS,EAAE,IAAI/wqB,MAAJ,CAAY;AAC3B;AACA,uCAFe,CA/JI;EAkKfgxqB,UAAU,EAAE,IAAIhxqB,MAAJ,CAAY;AAC5B;AACA;AACA;AACA,0GAJgB,CAlKG;EAuKfixqB,SAAS,EAAE,oBAvKI;EAwKfC,UAAU,EAAE,IAAIlxqB,MAAJ,CAAY;AAC5B;AACA;AACA,0DAHgB,CAxKG;EA4KfmxqB,eAAe,EAAE,0GA5KF;EA6KfC,aAAa,EAAE,+CA7KA;EA8KfC,UAAU,EAAE,oHA9KG;EA+KfC,aAAa,EAAE,aA/KA;EAgLfC,aAAa,EAAE,IAAIvxqB,MAAJ,CAAY;AAC/B,gFADmB,CAhLA;EAkLfwxqB,aAAa,EAAE,IAAIxxqB,MAAJ,CAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFARmB,CAlLA;EA2LfyxqB,UAAU,EAAE,IAAIzxqB,MAAJ,CAAY;AAC5B;AACA;AACA,mCAHgB,CA3LG;EA+Lf0xqB,aAAa,EAAE,WA/LA;EAgMfC,eAAe,EAAE,gCAhMF;EAiMfC,WAAW,EAAE,iGAjME;EAkMfC,YAAY,EAAE,iFAlMC;EAmMfC,UAAU,EAAE,4CAnMG;EAoMfC,SAAS,EAAE,iEApMI;EAqMfC,WAAW,EAAE,IAAIhyqB,MAAJ,CAAY;AAC7B;AACA,8FAFiB,CArME;EAwMfiyqB,YAAY,EAAE,mFAxMC;EAyMfC,YAAY,EAAE,IAAIlyqB,MAAJ,CAAY;AAC9B;AACA,wGAFkB,CAzMC;EA4MfmyqB,cAAc,EAAE,kFA5MD;EA6MfC,QAAQ,EAAE,2BA7MK;EA8MfC,YAAY,EAAE,8BA9MC;EA+MfC,UAAU,EAAE,gGA/MG;EAgNfC,YAAY,EAAE,IAAIvyqB,MAAJ,CAAY;AAC9B,gEADkB,CAhNC;EAkNfwyqB,cAAc,EAAE,iBAlND;EAmNfC,gBAAgB,EAAE,YAnNH;EAoNfC,YAAY,EAAE,eApNC;EAqNfC,aAAa,EAAE,mBArNA;EAsNfC,IAAI,EAAE,mBAtNS;EAuNfC,aAAa,EAAE,QAvNA;EAwNfC,SAAS,EAAE,OAxNI;EAyNfC,aAAa,EAAE,IAAI/yqB,MAAJ,CAAY;AAC/B;AACA,uGAFmB;AAzNA,CAAnB;AA6NA,MAAMgzqB,OAAO,GAAG;EACZ9H,UAAU,EAAE,YADA;EAEZC,UAAU,EAAE,YAFA;EAGZ8H,WAAW,EAAE,aAHD;EAIZ3H,aAAa,EAAE,eAJH;EAKZL,IAAI,EAAE,MALM;EAMZiI,GAAG,EAAE,KANO;EAOZC,GAAG,EAAE,WAPO;EAQZC,UAAU,EAAE,YARA;EASZC,QAAQ,EAAE,UATE;EAUZC,SAAS,EAAE,WAVC;EAWZ58L,OAAO,EAAE,SAXG;EAYZ68L,KAAK,EAAE,OAZK;EAaZ9H,IAAI,EAAE,MAbM;EAcZL,MAAM,EAAE,QAdI;EAeZC,IAAI,EAAE,MAfM;EAgBZ3B,OAAO,EAAEX,OAAO,CAACC,MAhBL;EAiBZY,GAAG,EAAE,KAjBO;EAkBZC,WAAW,EAAE,aAlBD;EAmBZ6B,WAAW,EAAE,cAnBD;EAoBZ5B,IAAI,EAAE,MApBM;EAqBZC,QAAQ,EAAE,UArBE;EAsBZP,OAAO,EAAE,SAtBG;EAuBZQ,EAAE,EAAE,IAvBQ;EAwBZC,IAAI,EAAE,MAxBM;EAyBZC,IAAI,EAAE,MAzBM;EA0BZC,WAAW,EAAE,aA1BD;EA2BZC,QAAQ,EAAE,UA3BE;EA4BZC,IAAI,EAAE,MA5BM;EA6BZC,KAAK,EAAE,OA7BK;EA8BZC,OAAO,EAAE,SA9BG;EA+BZC,GAAG,EAAE,KA/BO;EAgCZC,IAAI,EAAG,MAhCK;EAiCZC,QAAQ,EAAE,UAjCE;EAkCZC,SAAS,EAAE,WAlCC;EAmCZC,QAAQ,EAAE,UAnCE;EAoCZC,OAAO,EAAE,SApCG;EAqCZ2I,SAAS,EAAE,WArCC;EAsCZ1I,QAAQ,EAAE,UAtCE;EAuCZC,IAAI,EAAE,MAvCM;EAwCZC,GAAG,EAAE,KAxCO;EAyCZO,aAAa,EAAE,eAzCH;EA0CZkI,OAAO,EAAE;AA1CG,CAAhB;AA4CA,MAAMC,eAAe,GAAG,CACpBV,OAAO,CAACE,GADY,EAEpBF,OAAO,CAACC,WAFY,EAGpBD,OAAO,CAACG,GAHY,EAIpBH,OAAO,CAAClJ,IAJY,EAKpBkJ,OAAO,CAAC9I,IALY,EAMpB8I,OAAO,CAACtJ,OANY,CAAxB;AAQA,MAAMiK,EAAE,GAAG;EACPC,OAAO,EAAE,SADF;EAEPT,GAAG,EAAE,KAFE;EAGPtuM,GAAG,EAAE,KAHE;EAIP6R,OAAO,EAAE,SAJF;EAKPm9L,KAAK,EAAE,OALA;EAMPC,IAAI,EAAE,MANC;EAOP3I,UAAU,EAAE,YAPL;EAQP4I,SAAS,EAAE,WARJ;EASPzI,aAAa,EAAE,eATR;EAUP5B,OAAO,EAAEX,OAAO,CAACC;AAVV,CAAX;AAYA,MAAMgL,WAAW,GAAG;EAChBC,YAAY,EAAE,cADE;EAEhBC,UAAU,EAAE,YAFI;EAGhBC,UAAU,EAAE,YAHI;EAIhBC,UAAU,EAAE,YAJI;EAKhBC,UAAU,EAAE,YALI;EAMhBC,YAAY,EAAE,cANE;EAOhBC,UAAU,EAAE,YAPI;EAQhBC,mBAAmB,EAAE,qBARL;EAShBC,aAAa,EAAE,eATC;EAUhBC,SAAS,EAAE,WAVK;EAWhBC,WAAW,EAAE,aAXG;EAYhBC,SAAS,EAAE,WAZK;EAahBC,UAAU,EAAE,YAbI;EAchBC,iBAAiB,EAAE,mBAdH;EAehBC,iBAAiB,EAAE,mBAfH;EAgBhBC,gBAAgB,EAAE,kBAhBF;EAiBhBC,cAAc,EAAE,gBAjBA;EAkBhBC,WAAW,EAAE,eAlBG;EAmBhBC,SAAS,EAAE,aAnBK;EAoBhBC,SAAS,EAAE,aApBK;EAqBhBC,SAAS,EAAE,aArBK;EAsBhBC,SAAS,EAAE,aAtBK;EAuBhBC,SAAS,EAAE,aAvBK;EAwBhBC,SAAS,EAAE,aAxBK;EAyBhBC,SAAS,EAAE,aAzBK;EA0BhBC,QAAQ,EAAE,YA1BM;EA2BhBC,QAAQ,EAAE,YA3BM;EA4BhBC,QAAQ,EAAE,YA5BM;EA6BhBC,QAAQ,EAAE,YA7BM;EA8BhBC,QAAQ,EAAE,YA9BM;EA+BhBC,QAAQ,EAAE,YA/BM;EAgChBC,QAAQ,EAAE,YAhCM;EAiChBC,QAAQ,EAAE,YAjCM;EAkChBC,MAAM,EAAE,UAlCQ;EAmChBC,GAAG,EAAE,KAnCW;EAoChBC,SAAS,EAAE,WApCK;EAqChB1M,OAAO,EAAEX,OAAO,CAACC,MAAR,CAAe3kxB,WAAf;AArCO,CAApB;AAuCA,MAAMgyxB,KAAK,GAAG;EACVzC,OAAO,EAAE;IACL76Q,GAAG,EAAE,CAAC;MAAEE,EAAE,EAAE,CAAC,uBAAD,EAA0B,YAA1B;IAAN,CAAD,EAAkD;MAAEM,GAAG,EAAE;IAAP,CAAlD;EADA,CADC;EAIV45Q,GAAG,EAAE;IACDp6Q,GAAG,EAAE,CAAC,YAAD,EAAe;MAAEQ,GAAG,EAAE;QAAEN,EAAE,EAAE,CAAC,YAAD,EAAe,UAAf,EAA2B,UAA3B,EAAuC,mBAAvC;MAAN;IAAP,CAAf;EADJ,CAJK;EAOV4rE,GAAG,EAAE;IACD9rE,GAAG,EAAE,CAAC;MAAEE,EAAE,EAAE,CAAC,UAAD,EAAa,YAAb,EAA2B,UAA3B;IAAN,CAAD,EAAiD;MAAEM,GAAG,EAAE;IAAP,CAAjD;EADJ,CAPK;EAUVm9E,OAAO,EAAE;IAAE39E,GAAG,EAAE,CAAC,aAAD,EAAgB;MAAEQ,GAAG,EAAE;IAAP,CAAhB;EAAP,CAVC;EAWVs6Q,KAAK,EAAE,WAXG;EAYVC,IAAI,EAAE,UAZI;EAaV3I,UAAU,EAAE;IAAEpyQ,GAAG,EAAE,CAAC,aAAD,EAAgB,UAAhB;EAAP,CAbF;EAcVg7Q,SAAS,EAAE,UAdD;EAeVzI,aAAa,EAAE;IAAEryQ,EAAE,EAAE,CAAC,cAAD,EAAiB,mBAAjB;EAAN,CAfL;EAgBVi6Q,GAAG,EAAE,kCAhBK;EAiBVjI,IAAI,EAAE;AAjBI,CAAd;AAmBA,MAAMqL,WAAW,GAAG;EAChBpN,MAAM,EAAE;IACJnwQ,GAAG,EAAE,CACD;MAAEE,EAAE,EAAE,CAAC,YAAD,EAAe,WAAf,EAA4B,oBAA5B;IAAN,CADC,EAED;MACIM,GAAG,EAAE;QACDN,EAAE,EAAE,CAAC,SAAD,EAAY,kBAAZ,EAAgC,WAAhC,EAA6C,oBAA7C,EAAmE,eAAnE;MADH;IADT,CAFC;EADD,CADQ;EAWhBw9E,OAAO,EAAE;IAAEx9E,EAAE,EAAE,CAAC,aAAD,EAAgB,WAAhB;EAAN,CAXO;EAYhB09E,MAAM,EAAE;IACJ59E,GAAG,EAAE,CACD,4BADC,EAED;MACIQ,GAAG,EAAE;QACDN,EAAE,EAAE,CAAC,SAAD,EAAY,kBAAZ,EAAgC,WAAhC,EAA6C,mBAA7C,EAAkE,oBAAlE,EAAwF,eAAxF;MADH;IADT,CAFC;EADD,CAZQ;EAsBhBkwQ,KAAK,EAAE;IAAElwQ,EAAE,EAAE,CAAC,SAAD,EAAY,SAAZ;EAAN,CAtBS;EAuBhBmwQ,EAAE,EAAE;IACAnwQ,EAAE,EAAE,CAAC,UAAD,EAAa,aAAb,EAA4B,kDAA5B;EADJ,CAvBY;EA0BhBowQ,OAAO,EAAE;IAAEpwQ,EAAE,EAAE,CAAC,kBAAD;EAAN,CA1BO;EA2BhBqwQ,gBAAgB,EAAE,WA3BF;EA4BhB4J,GAAG,EAAE,kCA5BW;EA6BhBjI,IAAI,EAAE,yCA7BU;EA8BhB1B,YAAY,EAAE,2BA9BE;EA+BhBC,OAAO,EAAE,oBA/BO;EAgChBC,SAAS,EAAE;AAhCK,CAApB;AAkCA,MAAM8M,UAAU,GAAG,EACf,GAAG5M,UADY;EAEf,GAAG6B,UAFY;EAGf,GAAG6K,KAHY;EAIflL,UAAU,EAAE;IAAEpyQ,GAAG,EAAE,CAAC,aAAD,EAAgB,YAAhB;EAAP,CAJG;EAKfk6Q,WAAW,EAAE,UALE;EAMfC,GAAG,EAAE,kCANU;EAOfE,UAAU,EAAE,WAPG;EAQfC,QAAQ,EAAE,uBARK;EASfC,SAAS,EAAE,cATI;EAUfC,KAAK,EAAE,6DAVQ;EAWfE,OAAO,EAAE,YAXM;EAYfN,GAAG,EAAE;IACDp6Q,GAAG,EAAE,CAAC,YAAD,EAAe;MAAEQ,GAAG,EAAE;QAAEN,EAAE,EAAE,CAAC,YAAD,EAAe,UAAf,EAA2B,UAA3B,EAAuC,mBAAvC;MAAN;IAAP,CAAf;EADJ;AAZU,CAAnB;AAgBA,MAAMu9Q,kBAAkB,GAAG;EACvBvC,YAAY,EAAE,OADS;EAEvBC,UAAU,EAAE,+BAFW;EAGvBC,UAAU,EAAE,0BAHW;EAIvBC,UAAU,EAAE,oBAJW;EAKvBC,UAAU,EAAE,YALW;EAMvBC,YAAY,EAAE,+BANS;EAOvBC,UAAU,EAAE,6BAPW;EAQvBC,mBAAmB,EAAE,gBARE;EASvBC,aAAa,EAAE,gBATQ;EAUvBC,SAAS,EAAE,4BAVY;EAWvBC,WAAW,EAAE,8BAXU;EAYvBC,SAAS,EAAE,4BAZY;EAavBC,UAAU,EAAE,mBAbW;EAcvBC,iBAAiB,EAAE,wBAdI;EAevBC,iBAAiB,EAAE,qBAfI;EAgBvBC,gBAAgB,EAAE,oBAhBK;EAiBvBC,cAAc,EAAE;IACZl8Q,GAAG,EAAE,CAAC,4CAAD,EAA+C;MAAEQ,GAAG,EAAE;IAAP,CAA/C;EADO,CAjBO;EAoBvB28Q,MAAM,EAAE,sBApBe;EAqBvBF,QAAQ,EAAE,6BArBa;EAsBvBD,QAAQ,EAAE,6BAtBa;EAuBvBD,QAAQ,EAAE,iBAvBa;EAwBvBD,QAAQ,EAAE,iBAxBa;EAyBvBD,QAAQ,EAAE,iBAzBa;EA0BvBD,QAAQ,EAAE,iBA1Ba;EA2BvBD,QAAQ,EAAE,iBA3Ba;EA4BvBD,SAAS,EAAE,kBA5BY;EA6BvBD,SAAS,EAAE,kBA7BY;EA8BvBD,SAAS,EAAE,kBA9BY;EA+BvBD,SAAS,EAAE,kBA/BY;EAgCvBD,SAAS,EAAE,kBAhCY;EAiCvBD,SAAS,EAAE,kBAjCY;EAkCvBD,SAAS,EAAE,kBAlCY;EAmCvBD,WAAW,EAAE;IACTj8Q,EAAE,EAAE,CAAC,oBAAD,EAAuB,aAAvB;EADK,CAnCU;EAsCvBk9Q,GAAG,EAAE,uBAtCkB;EAuCvBC,SAAS,EAAE;AAvCY,CAA3B;AAyCA,MAAMK,uBAAuB,GAAG;EAC5BvN,MAAM,EAAE,CAAC,uBAAD,EAA0B,sBAA1B,EAAkD,+BAAlD,CADoB;EAE5BzyL,OAAO,EAAE,CAAC,wBAAD,EAA2B,sBAA3B,CAFmB;EAG5BE,MAAM,EAAE,CAAC,wBAAD,EAA2B,uBAA3B,CAHoB;EAI5BwyL,KAAK,EAAE,CAAC,wBAAD,EAA2B,oBAA3B,CAJqB;EAK5BC,EAAE,EAAE,CAAC,uBAAD,EAA0B,qBAA1B,CALwB;EAM5BC,OAAO,EAAE,+BANmB;EAO5BC,gBAAgB,EAAE,oBAPU;EAQ5BE,OAAO,EAAE,+BARmB;EAS5BC,SAAS,EAAE;AATiB,CAAhC;AAWA,MAAMiN,cAAc,GAAGhoyB,MAAM,CAACC,IAAP,CAAY6nyB,kBAAZ,EAAgC/zxB,MAAhC,CAAuC,CAACu9B,GAAD,EAAMlxC,GAAN,KAAc;EACxEkxC,GAAG,CAAClxC,GAAD,CAAH,GAAW0nyB,kBAAkB,CAAC1nyB,GAAD,CAA7B;EACA,OAAOkxC,GAAP;AACH,CAHsB,EAGpB,EAHoB,CAAvB;AAIA,MAAM22vB,mBAAmB,GAAGjoyB,MAAM,CAACC,IAAP,CAAY8nyB,uBAAZ,EAAqCh0xB,MAArC,CAA4C,CAACu9B,GAAD,EAAMlxC,GAAN,KAAc;EAClFkxC,GAAG,CAACipvB,QAAQ,CAACn6xB,GAAD,CAAT,CAAH,GAAqB2nyB,uBAAuB,CAAC3nyB,GAAD,CAA5C;EACA,OAAOkxC,GAAP;AACH,CAH2B,EAGzB,EAHyB,CAA5B;AAKA,IAAIwN,SAAS,GAAG,aAAa9+C,MAAM,CAACswC,MAAP,CAAc;EACvCC,SAAS,EAAE,IAD4B;EAEvC8pvB,OAAO,EAAEA,OAF8B;EAGvCE,QAAQ,EAAEA,QAH6B;EAIvCU,UAAU,EAAEA,UAJ2B;EAKvC6B,UAAU,EAAEA,UAL2B;EAMvCwH,OAAO,EAAEA,OAN8B;EAOvCU,eAAe,EAAEA,eAPsB;EAQvCC,EAAE,EAAEA,EARmC;EASvCK,WAAW,EAAEA,WAT0B;EAUvCqC,KAAK,EAAEA,KAVgC;EAWvCC,WAAW,EAAEA,WAX0B;EAYvCC,UAAU,EAAEA,UAZ2B;EAavCC,kBAAkB,EAAEA,kBAbmB;EAcvCC,uBAAuB,EAAEA,uBAdc;EAevCC,cAAc,EAAEA,cAfuB;EAgBvCC,mBAAmB,EAAEA;AAhBkB,CAAd,CAA7B;AAmBA;AACA;AACA;;AACA,MAAMC,MAAN,CAAa;EACT/pyB,WAAW,GAAG,CAAG;;EACjB+X,IAAI,CAAC4sD,GAAD,EAAMqqc,KAAN,EAAa;IACb,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3BA,KAAK,GAAG,IAAI77Y,MAAJ,CAAW67Y,KAAX,CAAR;IACH;;IACD,IAAIA,KAAK,YAAY77Y,MAArB,EAA6B;MACzB,OAAO67Y,KAAK,CAACj3f,IAAN,CAAW4sD,GAAX,CAAP;IACH,CAFD,MAGK,IAAIqqc,KAAK,IAAIlqgB,KAAK,CAACikB,OAAN,CAAcimf,KAAK,CAACkd,GAApB,CAAb,EAAuC;MACxC,OAAOld,KAAK,CAACkd,GAAN,CAAUvqgB,KAAV,CAAiBqH,IAAD,IAAU;QAC7B,OAAO,KAAKjR,IAAL,CAAU4sD,GAAV,EAAe37C,IAAf,CAAP;MACH,CAFM,CAAP;IAGH,CAJI,MAKA,IAAIgmf,KAAK,IAAIlqgB,KAAK,CAACikB,OAAN,CAAcimf,KAAK,CAACod,EAApB,CAAb,EAAsC;MACvC,OAAOpd,KAAK,CAACod,EAAN,CAAS19gB,IAAT,CAAesa,IAAD,IAAU;QAC3B,OAAO,KAAKjR,IAAL,CAAU4sD,GAAV,EAAe37C,IAAf,CAAP;MACH,CAFM,CAAP;IAGH,CAJI,MAKA,IAAIgmf,KAAK,IAAIA,KAAK,CAAC0d,GAAnB,EAAwB;MACzB,OAAO,CAAC,KAAK30gB,IAAL,CAAU4sD,GAAV,EAAeqqc,KAAK,CAAC0d,GAArB,CAAR;IACH,CAFI,MAGA;MACD,OAAO,KAAP;IACH;EACJ;;EACDp2e,IAAI,CAACquB,GAAD,EAAMqqc,KAAN,EAAa;IACb,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3BA,KAAK,GAAG,IAAI77Y,MAAJ,CAAW67Y,KAAX,CAAR;IACH;;IACD,IAAIA,KAAK,YAAY77Y,MAArB,EAA6B;MACzB,OAAO67Y,KAAK,CAAC14d,IAAN,CAAWquB,GAAX,CAAP;IACH,CAFD,MAGK,IAAIqqc,KAAK,IAAIlqgB,KAAK,CAACikB,OAAN,CAAcimf,KAAd,CAAb,EAAmC;MACpC,OAAOA,KAAK,CAACp5f,MAAN,CAAa,CAACw9B,GAAD,EAAMpqB,IAAN,KAAe;QAC/B,OAAO,CAAC,CAACoqB,GAAF,GAAQA,GAAR,GAAc,KAAKkD,IAAL,CAAUquB,GAAV,EAAe37C,IAAf,CAArB;MACH,CAFM,EAEJ,IAFI,CAAP;IAGH,CAJI,MAKA;MACD,OAAO,IAAP;IACH;EACJ;;AAzCQ,EA4Cb;;;AACA,IAAIghxB,UAAJ;;AACA,CAAC,UAAUA,UAAV,EAAsB;EACnBA,UAAU,CAAC,QAAD,CAAV,GAAuB,QAAvB;EACAA,UAAU,CAAC,QAAD,CAAV,GAAuB,QAAvB;EACAA,UAAU,CAAC,SAAD,CAAV,GAAwB,SAAxB;EACAA,UAAU,CAAC,SAAD,CAAV,GAAwB,SAAxB;AACH,CALD,EAKGA,UAAU,KAAKA,UAAU,GAAG,EAAlB,CALb;;AAMA,IAAIC,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAAC,UAAD,CAAf,GAA8B,UAA9B;EACAA,eAAe,CAAC,WAAD,CAAf,GAA+B,WAA/B;AACH,CAHD,EAGGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CAHlB;;AAIA,MAAMrL,IAAI,GAAG,MAAb;;AACA,MAAMsL,qBAAN,CAA4B;EACxBlqyB,WAAW,CAACyE,UAAD,EAAa;IACpB,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAK86X,EAAL,GAAU,EAAV;IACA,KAAKn2W,SAAL,GAAiB,EAAjB;IACA,KAAK+gxB,EAAL,GAAU,EAAV;IACA,KAAKC,OAAL,GAAe,EAAf;IACA,KAAKC,MAAL,GAAc,EAAd;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,eAAL,GAAuB,EAAvB;IACA,KAAKC,MAAL,GAAc,IAAIT,MAAJ,EAAd;IACA,KAAKU,UAAL,GAAkB,EAAlB;IACA,KAAKrgc,WAAL,GAAmB,EAAnB;;IACA,IAAI8+P,kEAAiB,CAAC,KAAKzkmB,UAAN,CAAjB,IAAsC,OAAOsG,MAAP,KAAkB,WAA5D,EAAyE;MACrE,KAAKqe,SAAL,GAAiBre,MAAM,CAAC6d,SAAP,CAAiBQ,SAAlC;IACH;;IACD,KAAKshxB,aAAL,CAAmB,KAAKthxB,SAAxB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIshxB,aAAa,CAACnra,EAAE,GAAG,KAAKn2W,SAAX,EAAsB;IAC/B,IAAIm2W,EAAE,KAAK,KAAKn2W,SAAhB,EAA2B;MACvB,KAAKA,SAAL,GAAiBm2W,EAAjB;IACH;;IACD,MAAMora,QAAQ,GAAG,CACb;MAAEC,KAAK,EAAE,IAAT;MAAer2tB,IAAI,EAAE;IAArB,CADa,EAEb;MAAEq2tB,KAAK,EAAE,UAAT;MAAqBr2tB,IAAI,EAAE;IAA3B,CAFa,EAGb;MAAEq2tB,KAAK,EAAE,SAAT;MAAoBr2tB,IAAI,EAAE;IAA1B,CAHa,EAIb;MAAEq2tB,KAAK,EAAE,aAAT;MAAwBr2tB,IAAI,EAAE;IAA9B,CAJa,CAAjB;IAMAo2tB,QAAQ,CAAC55xB,OAAT,CAAiByknB,OAAO,IAAI;MACxB,KAAKA,OAAO,CAACjhjB,IAAb,IAAqB1yE,MAAM,CAACC,IAAP,CAAY6+C,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAArB,EAAsCh1xB,MAAtC,CAA6C,CAACu9B,GAAD,EAAMnqB,IAAN,KAAe;QAC7E,IAAI23B,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB5hxB,IAAzB,MAAmC,QAAvC,EAAiD;UAC7C;UACA,IAAIkglB,kEAAiB,CAAC,KAAKzkmB,UAAN,CAAjB,KACC,CAAC,CAAC,KAAK+lyB,MAAL,CAAYzyxB,IAAZ,CAAiB,KAAKqR,SAAtB,EAAiCu1wB,UAAU,CAACC,IAAD,CAA3C,CAAF,IACIh2wB,SAAS,CAACokD,QAAV,KAAuB,UAAvB,IAAqCpkD,SAAS,CAACskD,cAAV,GAA2B,CAFrE,CAAJ,EAE8E;YAC1E/5B,GAAG,CAACwN,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB5hxB,IAAzB,CAAD,CAAH,GAAsC41wB,IAAtC;YACA,OAAO/8xB,MAAP;UACH;QACJ;;QACDsxC,GAAG,CAACwN,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB5hxB,IAAzB,CAAD,CAAH,GAAsC,KAAKwhxB,MAAL,CAAYzyxB,IAAZ,CAAiBwnX,EAAjB,EAAqB5+U,SAAS,CAAE,GAAE60kB,OAAO,CAACo1K,KAAM,KAAlB,CAAT,CAAiC5hxB,IAAjC,CAArB,CAAtC;QACA,OAAOmqB,GAAP;MACH,CAZoB,EAYlB,EAZkB,CAArB;IAaH,CAdD;IAeAw3vB,QAAQ,CAAC55xB,OAAT,CAAiByknB,OAAO,IAAI;MACxB,KAAKA,OAAO,CAACjhjB,IAAb,IAAqB1yE,MAAM,CAACC,IAAP,CAAY6+C,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAArB,EAChB3gyB,GADgB,CACZhI,GAAG,IAAI;QACZ,OAAO0+C,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB3oyB,GAAzB,CAAP;MACH,CAHoB,EAIhB2T,MAJgB,CAIT,CAAC+uE,aAAD,EAAgBvc,YAAhB,KAAiC;QACzC,IAAIotjB,OAAO,CAACjhjB,IAAR,KAAiB,QAAjB,IAA6BoQ,aAAa,KAAKhkC,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB/gM,OAA5E,EAAqF;UACjF;UACA,OAAO,KAAK2rB,OAAO,CAACjhjB,IAAb,EAAmBnM,YAAnB,IAAmCA,YAAnC,GAAkDuc,aAAzD;QACH,CAHD,MAIK;UACD,OAAOA,aAAa,KAAKhkC,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB/N,OAA3C,IAAsD,KAAKrnK,OAAO,CAACjhjB,IAAb,EAAmBnM,YAAnB,CAAtD,GACDA,YADC,GAEDuc,aAFN;QAGH;MACJ,CAdoB,EAclBhkC,SAAS,CAAC60kB,OAAO,CAACo1K,KAAT,CAAT,CAAyB/N,OAdP,CAArB;IAeH,CAhBD;IAiBA,KAAK0N,eAAL,GAAuB,GAAvB;;IACA,IAAI,KAAKH,OAAL,KAAiBhO,QAAQ,CAACS,OAA9B,EAAuC;MACnC,MAAM1wQ,EAAE,GAAG29Q,mBAAmB,CAAC,KAAKM,OAAN,CAA9B;MACA,MAAMh3vB,GAAG,GAAG,KAAKo3vB,MAAL,CAAYl0vB,IAAZ,CAAiBipV,EAAjB,EAAqB4sJ,EAArB,CAAZ;;MACA,IAAI,CAAC,CAAC/4e,GAAN,EAAW;QACP,KAAKm3vB,eAAL,GAAuBn3vB,GAAG,CAAC,CAAD,CAA1B;MACH;IACJ;;IACD,IAAI,OAAOroC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAAC8/xB,UAA5C,EAAwD;MACpD,KAAKzgc,WAAL,GAAmBr/V,MAAM,CAAC8/xB,UAAP,CAAkB,0BAAlB,EAA8Cx0vB,OAA9C,GACb4zvB,eAAe,CAACa,SADH,GAEbb,eAAe,CAACc,QAFtB;IAGH,CAJD,MAKK;MACD,KAAK3gc,WAAL,GAAmB8xb,OAAO,CAACC,MAA3B;IACH;;IACD,KAAKsO,UAAL,GAAkB,KAAKO,QAAL,KACZhB,UAAU,CAACiB,MADC,GAEZ,KAAKC,QAAL,CAAc,KAAK9hxB,SAAnB,IACI4gxB,UAAU,CAACmB,MADf,GAEI,KAAKC,SAAL,CAAe,KAAKhixB,SAApB,IACI4gxB,UAAU,CAACqB,OADf,GAEIrB,UAAU,CAACsB,OANzB;EAOH;EACD;AACJ;AACA;AACA;AACA;;;EACIC,aAAa,GAAG;IACZ,MAAMC,UAAU,GAAG;MACfpixB,SAAS,EAAE,KAAKA,SADD;MAEf+gxB,EAAE,EAAE,KAAKA,EAFM;MAGfC,OAAO,EAAE,KAAKA,OAHC;MAIfC,MAAM,EAAE,KAAKA,MAJE;MAKfC,UAAU,EAAE,KAAKA,UALF;MAMfC,eAAe,EAAE,KAAKA,eANP;MAOfE,UAAU,EAAE,KAAKA,UAPF;MAQfrgc,WAAW,EAAE,KAAKA;IARH,CAAnB;IAUA,OAAOohc,UAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIN,QAAQ,CAAC9hxB,SAAS,GAAG,KAAKA,SAAlB,EAA6B;IACjC,IAAI,KAAK4hxB,QAAL,CAAc5hxB,SAAd,CAAJ,EAA8B;MAC1B,OAAO,KAAP;IACH;;IACD,MAAM0iD,KAAK,GAAGjqE,MAAM,CAACC,IAAP,CAAYg7xB,UAAZ,EAAwB56wB,IAAxB,CAA6BupxB,MAAM,IAAI;MACjD,OAAO,KAAKjB,MAAL,CAAYzyxB,IAAZ,CAAiBqR,SAAjB,EAA4B0zwB,UAAU,CAAC2O,MAAD,CAAtC,CAAP;IACH,CAFa,CAAd;IAGA,OAAO,CAAC,CAAC3/tB,KAAT;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIk/tB,QAAQ,CAAC5hxB,SAAS,GAAG,KAAKA,SAAlB,EAA6B;IACjC,IAAI8/kB,kEAAiB,CAAC,KAAKzkmB,UAAN,CAAjB,KACC,CAAC,CAAC,KAAK+lyB,MAAL,CAAYzyxB,IAAZ,CAAiB,KAAKqR,SAAtB,EAAiCu1wB,UAAU,CAACC,IAAD,CAA3C,CAAF,IACI,OAAOh2wB,SAAP,KAAqB,WAArB,IAAoCA,SAAS,CAACokD,QAAV,KAAuB,UAA3D,IAAyEpkD,SAAS,CAACskD,cAAV,GAA2B,CAFzG,CAAJ,EAEkH;MAC9G,OAAO,IAAP;IACH;;IACD,MAAMpB,KAAK,GAAGjqE,MAAM,CAACC,IAAP,CAAY68xB,UAAZ,EAAwBz8wB,IAAxB,CAA6BupxB,MAAM,IAAI;MACjD,OAAO,CAAC,CAAC,KAAKjB,MAAL,CAAYzyxB,IAAZ,CAAiBqR,SAAjB,EAA4Bu1wB,UAAU,CAAC8M,MAAD,CAAtC,CAAT;IACH,CAFa,CAAd;IAGA,OAAO,CAAC,CAAC3/tB,KAAT;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIs/tB,SAAS,CAAChixB,SAAS,GAAG,KAAKA,SAAlB,EAA6B;IAClC,IAAI,KAAKihxB,MAAL,KAAgBlE,OAAO,CAACtJ,OAA5B,EAAqC;MACjC,IAAI,KAAKqO,QAAL,CAAc9hxB,SAAd,KAA4B,KAAK4hxB,QAAL,CAAc5hxB,SAAd,CAAhC,EAA0D;QACtD,OAAO,KAAP;MACH;IACJ;;IACD,OAAOy9wB,eAAe,CAAC57xB,OAAhB,CAAwB,KAAKo/xB,MAA7B,IAAuC,CAAC,CAA/C;EACH;;AAxJuB;;AA0J5BH,qBAAqB,CAACrnyB,IAAtB;EAAA,iBAAkHqnyB,qBAAlH,EAAwG3gxB,sDAAxG,CAAyJjqB,sDAAzJ;AAAA;;AACA4qyB,qBAAqB,CAAClnyB,KAAtB,kBADwGumB,gEACxG;EAAA,OAAsH2gxB,qBAAtH;EAAA,SAAsHA,qBAAtH;EAAA,YAAyJ;AAAzJ;;AACA;EAAA,mDAFwG3gxB,+DAExG,CAA2F2gxB,qBAA3F,EAA8H,CAAC;IACnH3myB,IAAI,EAAEtE,qDAD6G;IAEnHiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAF6G,CAAD,CAA9H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE/jlB,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QAC9DrF,IAAI,EAAElE,iDADwD;QAE9D6G,IAAI,EAAE,CAAC5G,sDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CARxB;AAAA;AAUA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACl0BA;AACA;AACA;AACA;AACA;AACA;;;;;IAmNiIiqB,4DAC+2B;IAD/2BA,0DACk9B;IADl9BA,0DACm/B;;;;mBADn/BA;IAAAA,wDACi7B,2BADj7BA,4DACi7B;;;;;;IADj7BA,4DACigC;IADjgCA,0DACokC;IADpkCA,0DACqmC;;;;;AAlNtuC,IAAImixB,qBAAJ;;AACA,CAAC,UAAUA,qBAAV,EAAiC;EAC9BA,qBAAqB,CAAC,KAAD,CAArB,GAA+B,KAA/B;EACAA,qBAAqB,CAAC,QAAD,CAArB,GAAkC,QAAlC;EACAA,qBAAqB,CAAC,MAAD,CAArB,GAAgC,MAAhC;EACAA,qBAAqB,CAAC,OAAD,CAArB,GAAiC,OAAjC;EACAA,qBAAqB,CAAC,UAAD,CAArB,GAAoC,WAApC;EACAA,qBAAqB,CAAC,aAAD,CAArB,GAAuC,cAAvC;EACAA,qBAAqB,CAAC,WAAD,CAArB,GAAqC,YAArC;EACAA,qBAAqB,CAAC,YAAD,CAArB,GAAsC,aAAtC;EACAA,qBAAqB,CAAC,QAAD,CAArB,GAAkC,SAAlC;EACAA,qBAAqB,CAAC,WAAD,CAArB,GAAqC,YAArC;EACAA,qBAAqB,CAAC,SAAD,CAArB,GAAmC,UAAnC;EACAA,qBAAqB,CAAC,UAAD,CAArB,GAAoC,WAApC;EACAA,qBAAqB,CAAC,MAAD,CAArB,GAAgC,MAAhC;EACAA,qBAAqB,CAAC,WAAD,CAArB,GAAqC,YAArC;EACAA,qBAAqB,CAAC,SAAD,CAArB,GAAmC,UAAnC;AACH,CAhBD,EAgBGA,qBAAqB,KAAKA,qBAAqB,GAAG,EAA7B,CAhBxB;;AAkBA,IAAIC,mBAAJ;;AACA,CAAC,UAAUA,mBAAV,EAA+B;EAC5BA,mBAAmB,CAAC,OAAD,CAAnB,GAA+B,OAA/B;EACAA,mBAAmB,CAAC,OAAD,CAAnB,GAA+B,OAA/B;EACAA,mBAAmB,CAAC,WAAD,CAAnB,GAAmC,WAAnC;EACAA,mBAAmB,CAAC,MAAD,CAAnB,GAA8B,MAA9B;AACH,CALD,EAKGA,mBAAmB,KAAKA,mBAAmB,GAAG,EAA3B,CALtB;;AAOA,MAAMC,2BAAN,CAAkC;EAC9B5ryB,WAAW,CAAC6ryB,KAAD,EAAQ5+K,SAAR,EAAmBsG,QAAnB,EAA6B5f,kBAA7B,EAAiD;IACxD,KAAKk4L,KAAL,GAAaA,KAAb;IACA,KAAK5+K,SAAL,GAAiBA,SAAjB;IACA,KAAKsG,QAAL,GAAgBA,QAAhB;IACA,KAAK5f,kBAAL,GAA0BA,kBAA1B;IACA,KAAKm4L,UAAL,GAAkB,MAAlB;IACA,KAAKC,UAAL,GAAkB,IAAlB;IACA,KAAKC,WAAL,GAAmB,MAAnB;IACA,KAAK5ryB,EAAL,GAAW,iBAAgB,EAAEwryB,2BAA2B,CAAC33f,MAAO,EAAhE;IACA,KAAKg4f,WAAL,GAAmB,KAAnB;IACA,KAAKC,QAAL,GAAgB,IAAIhtyB,uDAAJ,EAAhB;IACA,KAAK6uE,OAAL,GAAe,CAAf;IACA,KAAKo+tB,aAAL,GAAqB;MACjBC,gBAAgB,EAAE,KADD;MAEjBC,qBAAqB,EAAE,KAFN;MAGjBl+xB,SAAS,EAAEu9xB,qBAAqB,CAACY,IAHhB;MAIjBC,iBAAiB,EAAE,EAJF;MAKjBj0O,OAAO,EAAEqzO,mBAAmB,CAACa,KALZ;MAMjBC,aAAa,EAAE,KANE;MAOjBC,YAAY,EAAE,KAPG;MAQjBC,eAAe,EAAE;IARA,CAArB;IAUA,KAAKp9xB,KAAL,GAAa,IAAb;IACA,KAAKq9xB,QAAL,GAAiB,GAAE,KAAKxsyB,EAAG,QAA3B;EACH;;EACDysyB,KAAK,GAAG;IACJ,KAAKC,gBAAL,CAAsB,KAAtB;;IACA,IAAI,CAAC,KAAKC,cAAV,EAA0B;MACtB;IACH;;IACD,KAAKA,cAAL,CAAoBx7xB,OAApB;EACH;;EACDy7xB,2BAA2B,CAACrmrB,SAAS,GAAG,EAAb,EAAiB;IACxC,MAAMsmrB,SAAS,GAAGnoyB,KAAK,CAACikB,OAAN,CAAc49F,SAAd,IAA2BA,SAA3B,GAAuC,OAAOA,SAAP,KAAqB,OAAO,EAA5B,GAAiCA,SAAS,CAAC5+F,OAAV,CAAkB,GAAlB,EAAuB,EAAvB,EAA2B/d,KAA3B,CAAiC,GAAjC,CAAjC,GAAyE,EAAlI;IACA,OAAOijyB,SAAS,CAACr3xB,MAAV,CAAiB,CAACmE,GAAD,EAAMuzmB,KAAN,KAAgB;MACpCvzmB,GAAG,CAACuzmB,KAAD,CAAH,GAAa,CAAC,CAAd;MACA,OAAOvzmB,GAAP;IACH,CAHM,EAGJ,EAHI,CAAP;EAIH;;EACD0I,IAAI,GAAG;IACH,IAAI,KAAKsqxB,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoBx7xB,OAApB;IACH;;IACD,KAAKu7xB,gBAAL,CAAsB,KAAtB;IACA,KAAKZ,QAAL,CAAcrkyB,IAAd;EACH;;EACDa,WAAW,GAAG;IACV,KAAKmkyB,KAAL;;IACA,IAAI,KAAKV,aAAL,CAAmB5wB,QAAnB,IAA+B,KAAKswB,KAApC,IAA6C,KAAKA,KAAL,CAAW71wB,aAAxD,IAAyE,KAAK61wB,KAAL,CAAW71wB,aAAX,CAAyB1jB,UAAtG,EAAkH;MAC9G,KAAKihnB,QAAL,CAAc/xnB,MAAd;;MACA,KAAKqqyB,KAAL,CAAW71wB,aAAX,CAAyB1jB,UAAzB,CAAoCs7D,WAApC,CAAgD,KAAKi+tB,KAAL,CAAW71wB,aAA3D;IACH;EACJ;;EACDk3wB,gBAAgB,GAAG;IACf,KAAKx8xB,MAAL;EACH;;EACDisL,WAAW,GAAG;IACV,KAAKsvmB,WAAL,GAAmB,IAAnB;EACH;;EACD15mB,IAAI,GAAG;IACH,IAAI,CAAC,KAAK46mB,eAAV,EAA2B;MACvB;IACH;;IACD,MAAMC,cAAc,GAAG,KAAKjB,aAAL,CAAmB5wB,QAAnB,IAA+B9wwB,QAAQ,CAAC4S,aAAT,CAAuB,KAAK8uxB,aAAL,CAAmB5wB,QAA1C,CAAtD;;IACA,IAAI6xB,cAAc,IAAI,KAAKvB,KAAL,CAAW71wB,aAAX,CAAyB1jB,UAAzB,KAAwC86xB,cAA9D,EAA8E;MAC1E,KAAKvB,KAAL,CAAW71wB,aAAX,CAAyB1jB,UAAzB,IAAuC,KAAKu5xB,KAAL,CAAW71wB,aAAX,CAAyB1jB,UAAzB,CAAoCs7D,WAApC,CAAgD,KAAKi+tB,KAAL,CAAW71wB,aAA3D,CAAvC;MACAo3wB,cAAc,CAACz/tB,WAAf,CAA2B,KAAKk+tB,KAAL,CAAW71wB,aAAtC;IACH;;IACD,MAAMm2wB,aAAa,GAAG;MAClB99xB,QAAQ,EAAE,KAAK89xB,aAAL,CAAmBM,aAAnB,GAAmC,OAAnC,GAA6C,UADrC;MAElBt+xB,SAAS,EAAE,KAAKg+xB,aAAL,CAAmBh+xB,SAFZ;MAGlBC,SAAS,EAAE,CACP;QACI6C,IAAI,EAAE,QADV;QAEIT,OAAO,EAAE,CAAC,CAFd;QAGI1P,OAAO,EAAE;UACLmc,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ;QADH;MAHb,CADO,EAQP;QACIhM,IAAI,EAAE,OADV;QAEIT,OAAO,EAAE,CAAC,CAFd;QAGI1P,OAAO,EAAE;UACL6N,OAAO,EAAE,cADJ;UAELoN,OAAO,EAAE;QAFJ,CAHb;QAOIP,QAAQ,EAAE,CAAC,OAAD;MAPd,CARO;IAHO,CAAtB;;IAsBA,IAAI,KAAK6xxB,QAAT,EAAmB;MACflB,aAAa,CAAC16xB,aAAd,GAA8B,KAAK47xB,QAAnC;IACH;;IACD,MAAMd,iBAAiB,GAAG,KAAKJ,aAAL,CAAmBI,iBAAnB,IAAwC9hyB,QAAQ,CAAC4S,aAAT,CAAuB,KAAK8uxB,aAAL,CAAmBI,iBAA1C,CAAlE;;IACA,IAAIJ,aAAa,CAAC/9xB,SAAd,IAA2Bm+xB,iBAA/B,EAAkD;MAC9CJ,aAAa,CAAC/9xB,SAAd,CAAwB9H,IAAxB,CAA6B;QACzB2K,IAAI,EAAE,iBADmB;QAEzBT,OAAO,EAAE,KAAK27xB,aAAL,CAAmBzpxB,eAFH;QAGzB5hB,OAAO,EAAE;UACLyU,QAAQ,EAAEg3xB;QADL;MAHgB,CAA7B;IAOH;;IACD,IAAIJ,aAAa,CAAC/9xB,SAAlB,EAA6B;MACzB,MAAMk/xB,uBAAuB,GAAGnB,aAAa,CAAC/9xB,SAAd,CAAwB8T,IAAxB,CAA8BmH,CAAD,IAAOA,CAAC,CAACpY,IAAF,KAAW,iBAA/C,CAAhC;;MACA,IAAIq8xB,uBAAuB,IAAI,CAACA,uBAAuB,CAAC98xB,OAAxD,EAAiE;QAC7D,MAAM+8xB,YAAY,GAAGpB,aAAa,CAAC/9xB,SAAd,CAAwB8T,IAAxB,CAA8BmH,CAAD,IAAOA,CAAC,CAACpY,IAAF,KAAW,iBAA/C,CAArB;QACAs8xB,YAAY,KAAKA,YAAY,CAAC/8xB,OAAb,GAAuB,CAAC,CAA7B,CAAZ;MACH;IACJ;;IACD,KAAKg9xB,oBAAL;;IACArB,aAAa,CAAC/9xB,SAAd,GAA0B+9xB,aAAa,CAAC/9xB,SAAd,CAAwBkC,MAAxB,CAA+B,KAAK67xB,aAAL,CAAmBQ,eAAlD,CAA1B;IACA,KAAKI,cAAL,GAAsB39xB,4DAAY,CAAC,KAAK+9xB,eAAN,EAAuB,KAAKM,aAAL,CAAmBz3wB,aAA1C,EAAyDm2wB,aAAzD,CAAlC;IACA,KAAKW,gBAAL,CAAsB,IAAtB;IACA,KAAKY,aAAL,GAAqB,KAAKzgL,SAAL,CAAel2C,MAAf,CAAsB,UAAtB,EAAkC,QAAlC,EAA4C,KAAKm2N,gBAAL,CAAsB9+vB,IAAtB,CAA2B,IAA3B,CAA5C,CAArB;EACH;;EACDu/vB,WAAW,GAAG;IACV,KAAK1B,WAAL,GAAmB,KAAnB;;IACA,IAAI,KAAKE,aAAL,CAAmB7zO,OAAnB,KAA+BqzO,mBAAmB,CAACa,KAAnD,IAA4D,CAAC,KAAKL,aAAL,CAAmByB,gBAApF,EAAsG;MAClG;IACH;;IACD,KAAKnrxB,IAAL;EACH;;EACDqqxB,gBAAgB,CAACv9xB,KAAD,EAAQ;IACpB,IAAI,CAACA,KAAL,EAAY;MACR,KAAKw+D,OAAL,GAAe,CAAf;MACA,KAAKi+tB,WAAL,GAAmB,MAAnB;MACA,KAAKF,UAAL,GAAkB,MAAlB;MACA,KAAKv8xB,KAAL,GAAa,KAAb;IACH,CALD,MAMK;MACD,KAAKw+D,OAAL,GAAe,CAAf;MACA,KAAKi+tB,WAAL,GAAmB,OAAnB;MACA,KAAKF,UAAL,GAAkB,OAAlB;MACA,KAAKv8xB,KAAL,GAAa,IAAb;IACH,CAZmB,CAapB;;;IACA,IAAI,CAAC,KAAKokmB,kBAAL,CAAwB,WAAxB,CAAL,EAA2C;MACvC,KAAKA,kBAAL,CAAwB5+kB,aAAxB;IACH;EACJ;;EACDrkB,MAAM,GAAG;IACL,KAAKq8xB,cAAL,IAAuB,KAAKA,cAAL,CAAoBr8xB,MAApB,EAAvB;EACH,CAhJ6B,CAiJ9B;EACA;EACA;EACA;;;EACAm9xB,oBAAoB,GAAG;IACnB,OAAQ,OAAM,KAAKztyB,EAAG,mDAAtB;EACH;;EACDotyB,oBAAoB,GAAG;IACnB,IAAI,CAAC,KAAKrB,aAAL,CAAmBt8xB,MAApB,IAA8B,KAAKk8xB,UAAvC,EAAmD;MAC/C,OAAO,CAAC,CAAR;IACH;;IACD,MAAM+B,SAAS,GAAG,KAAK3B,aAAL,CAAmBt8xB,MAAnB,CAA0B,kBAA1B,KAAiD,KAAKs8xB,aAAL,CAAmBt8xB,MAAnB,CAA0BkiQ,eAA7F;;IACA,IAAI,KAAKg6hB,UAAL,KAAoB+B,SAAxB,EAAmC;MAC/B,OAAO,CAAC,CAAR;IACH;;IACD,KAAK/B,UAAL,GAAkB+B,SAAlB;IACA,IAAIC,MAAM,GAAGtjyB,QAAQ,CAAC4S,aAAT,CAAwB,IAAG,KAAKuvxB,QAAS,EAAzC,CAAb;IACA,MAAMoB,YAAY,GAAG,KAAKjC,UAAL,GAChB,GAAE,KAAK8B,oBAAL,EAA4B,+BAA8B,KAAK9B,UAAW,KAD5D,GACmE,EADxF;;IAEA,IAAI,CAACgC,MAAL,EAAa;MACTA,MAAM,GAAGtjyB,QAAQ,CAACqqD,aAAT,CAAuB,OAAvB,CAAT;MACAi5uB,MAAM,CAAC3tyB,EAAP,GAAY,KAAKwsyB,QAAjB;MACAmB,MAAM,CAACjzxB,YAAP,CAAoB,MAApB,EAA4B,UAA5B;MACArQ,QAAQ,CAAC4ha,IAAT,CAAc1+V,WAAd,CAA0BoguB,MAA1B;IACH,CAjBkB,CAkBnB;;;IACA,IAAIA,MAAM,CAAC,YAAD,CAAV,EAA0B;MACtB;MACAA,MAAM,CAAC,YAAD,CAAN,CAAqBE,OAArB,GAA+BD,YAA/B,CAFsB,CAGtB;IACH,CAJD,MAKK;MACDD,MAAM,CAAC/krB,SAAP,GAAmBglrB,YAAnB;IACH;EACJ;;AAnL6B;;AAqLlCpC,2BAA2B,CAAC33f,MAA5B,GAAqC,CAArC;AACA;;AAAmB23f,2BAA2B,CAAC/oyB,IAA5B;EAAA,iBAAwH+oyB,2BAAxH,EAA8GrixB,+DAA9G,CAAqKA,qDAArK,GAA8GA,+DAA9G,CAA+LA,oDAA/L,GAA8GA,+DAA9G,CAAwNA,2DAAxN,GAA8GA,+DAA9G,CAAwPA,4DAAxP;AAAA;AACnB;;;AAAmBqixB,2BAA2B,CAAChhxB,IAA5B,kBAD8GrB,+DAC9G;EAAA,MAA4GqixB,2BAA5G;EAAA;EAAA;IAAA;MAD8GrixB,yDAC9G;IAAA;;IAAA;MAAA;;MAD8GA,4DAC9G,MAD8GA,yDAC9G;IAAA;EAAA;EAAA;IAAA;MAD8GA,wDAC9G;QAAA,OAA4G,iBAA5G;MAAA;QAAA,OAA4G,iBAA5G;MAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAD8GA,6DAC9G;MAD8GA,4DACsU,gBAApb;MAD8GA,wDAC+2B,+DAA79B;MAD8GA,wDACigC,+DAA/mC;MAD8GA,uDACmnC,aAAjuC;MAD8GA,0DACo0C,EAAl7C;IAAA;;IAAA;MAD8GA,yDACwgB,oDAAtnB;MAD8GA,yDAC2X,qHAAze;MAD8GA,wDAColB,+GAAlsB;MAD8GA,yDACkW,6IAAhd;MAD8GA,uDACq3B,GAAn+B;MAD8GA,wDACq3B,kBAAn+B;MAD8GA,uDACugC,GAArnC;MAD8GA,wDACugC,mBAArnC;MAD8GA,uDACwrC,GAAtyC;MAD8GA,yDACwrC,qCAAtyC;MAD8GA,wDAC6uC,+EAA31C;IAAA;EAAA;EAAA,eAAm1EovW,oDAAn1E,EAAi7EA,iDAAj7E,EAAqhFA,oDAArhF;EAAA;EAAA;EAAA;AAAA;;AACnB;EAAA,mDAFiIpvW,+DAEjI,CAA2FqixB,2BAA3F,EAAoI,CAAC;IACzHroyB,IAAI,EAAEimB,oDADmH;IAEzHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,gBAAZ;MAA8BilB,aAAa,EAAEnmB,iEAA7C;MAAqE6slB,eAAe,EAAE5H,yEAAtF;MAAsHvmB,QAAQ,EAAE,oBAAhI;MAAsJv9jB,QAAQ,EAAE,0gCAAhK;MAA4qCjb,MAAM,EAAE,CAAC,81BAAD;IAAprC,CAAD;EAFmH,CAAD,CAApI,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,EAA0B;MAAEpsC,IAAI,EAAEgmB,oDAAY0wlB;IAApB,CAA1B,EAAkD;MAAE12mB,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAAlD,EAAiF;MAAErsC,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAjF,CAAP;EAA0H,CAHpK,EAGsL;IAAEm3L,aAAa,EAAE,CAAC;MACxLlqyB,IAAI,EAAEsrmB,oDADkL;MAExL3omB,IAAI,EAAE,CAAC,eAAD,EAAkB;QAAEwwmB,MAAM,EAAE,CAAC;MAAX,CAAlB;IAFkL,CAAD,CAAjB;IAGtK/5a,WAAW,EAAE,CAAC;MACdp5L,IAAI,EAAE89sB,uDADQ;MAEdn7sB,IAAI,EAAE,CAAC,WAAD;IAFQ,CAAD,CAHyJ;IAMtKynyB,WAAW,EAAE,CAAC;MACdpqyB,IAAI,EAAE89sB,uDADQ;MAEdn7sB,IAAI,EAAE,CAAC,YAAD;IAFQ,CAAD;EANyJ,CAHtL;AAAA;;AAcA,MAAMgoyB,qBAAqB,GAAG,IAAIjnN,yDAAJ,CAAmB,uBAAnB,CAA9B;AAEA;AACA;AACA;;AACA,MAAMknN,gBAAN,CAAuB;EACnB;EAC4B,OAArB5lN,qBAAqB,CAAClolB,KAAD,EAAQ;IAChC,OAAOA,KAAK,IAAI,IAAT,IAAkB,GAAEA,KAAM,EAAT,KAAe,OAAvC;EACH;;AAJkB,EAOvB;;;AACA,MAAM+tyB,oBAAN,CAA2B;EACvBpuyB,WAAW,CAAC2zmB,kBAAD,EAAqByqH,WAArB,EAAkCiwE,IAAlC,EAAwCC,eAAe,GAAG,EAA1D,EAA8D;IACrE,KAAK36L,kBAAL,GAA0BA,kBAA1B;IACA,KAAKyqH,WAAL,GAAmBA,WAAnB;IACA,KAAKiwE,IAAL,GAAYA,IAAZ;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAKC,WAAL,GAAmB,CAAnB;IACA,KAAKC,cAAL,GAAsB,IAAItvyB,uDAAJ,EAAtB;IACA,KAAKuvyB,aAAL,GAAqB,IAAIvvyB,uDAAJ,EAArB;IACA,KAAKwvyB,cAAL,GAAsB,IAAIxvyB,uDAAJ,EAAtB;IACA,KAAKyvyB,gBAAL,GAAwB,CAAxB;IACA,KAAKx0B,SAAL,GAAiB,IAAIv2N,yCAAJ,EAAjB;IACA,KAAKgrP,0BAAL,GAAkC,IAAIhrP,yCAAJ,EAAlC;IACA,KAAKirP,mBAAL,GAA2BjD,2BAA3B;IACA,KAAKkD,0BAAL,GAAkC,IAAIlrP,yCAAJ,EAAlC;IACA,KAAKmrP,0BAAL,GAAkC,IAAInrP,yCAAJ,EAAlC;IACA,KAAKorP,MAAL,GAAc,KAAd;IACAZ,oBAAoB,CAACa,WAArB,GAAmC,EAAE,GAAGb,oBAAoB,CAACa,WAA1B;MAAuC,GAAG,KAAKX;IAA/C,CAAnC;EACH;;EACa,IAAVY,UAAU,CAACnkvB,QAAD,EAAW;IACrB,IAAIA,QAAQ,KAAK,KAAKokvB,WAAtB,EAAmC;MAC/B;IACH;;IACD,KAAKA,WAAL,GAAmBpkvB,QAAnB;;IACA,KAAKqkvB,cAAL,CAAoB,YAApB,EAAkCrkvB,QAAlC;EACH;;EACa,IAAVmkvB,UAAU,GAAG;IACb,OAAO,KAAKC,WAAZ;EACH;;EACU,IAAP5lf,OAAO,CAACx+P,QAAD,EAAW;IAClB,IAAIA,QAAQ,KAAK,KAAKskvB,QAAtB,EAAgC;MAC5B;IACH;;IACD,KAAKA,QAAL,GAAgBtkvB,QAAhB;;IACA,IAAI,KAAKukvB,cAAT,EAAyB;MACrB,IAAI,OAAOvkvB,QAAP,KAAoB,QAAxB,EAAkC;QAC9B,KAAKukvB,cAAL,CAAoBn/tB,IAApB,GAA2BplB,QAA3B;MACH,CAFD,MAGK;QACD,KAAKukvB,cAAL,GAAsBvkvB,QAAtB;MACH;IACJ;EACJ;;EACU,IAAPw+P,OAAO,GAAG;IACV,OAAO,KAAK8lf,QAAZ;EACH;;EACW,IAAR9nrB,QAAQ,CAACx8D,QAAD,EAAW;IACnB,IAAIA,QAAQ,KAAK,KAAKsytB,SAAtB,EAAiC;MAC7B;IACH;;IACD,KAAKA,SAAL,GAAiB,CAAC,CAACtytB,QAAnB;;IACA,IAAI,KAAKikvB,MAAT,EAAiB;MACb,KAAKvsxB,IAAL;IACH;EACJ;;EACW,IAAR8kG,QAAQ,GAAG;IACX,OAAO,KAAK81pB,SAAZ;EACH;;EACY,IAATlvwB,SAAS,CAAC48C,QAAD,EAAW;IACpB,KAAKwkvB,gBAAL,GAAwBxkvB,QAAxB;;IACA,KAAKqkvB,cAAL,CAAoB,WAApB,EAAiCrkvB,QAAjC;EACH;;EACY,IAAT58C,SAAS,GAAG;IACZ,OAAO,KAAKohyB,gBAAZ;EACH;;EACwB,IAArBC,qBAAqB,CAACzkvB,QAAD,EAAW;IAChC,IAAIA,QAAQ,KAAK,KAAK0kvB,sBAAtB,EAA8C;MAC1C;IACH;;IACD,KAAKA,sBAAL,GAA8B1kvB,QAA9B;;IACA,IAAI,KAAKukvB,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoBnD,aAApB,CAAkCuD,eAAlC,GAAoD3kvB,QAApD;;MACA,IAAI,CAAC,KAAKikvB,MAAV,EAAkB;QACd;MACH;;MACD,KAAKM,cAAL,CAAoBvC,cAApB,CAAmC98xB,UAAnC,CAA8C,KAAKq/xB,cAAL,CAAoBnD,aAAlE;IACH;EACJ;;EACwB,IAArBqD,qBAAqB,GAAG;IACxB,OAAO,KAAKC,sBAAZ;EACH;;EACkB,IAAf/sxB,eAAe,CAACqoC,QAAD,EAAW;IAC1B,KAAK4kvB,sBAAL,GAA8BxB,gBAAgB,CAAC5lN,qBAAjB,CAAuCx9hB,QAAvC,CAA9B;;IACA,KAAKqkvB,cAAL,CAAoB,iBAApB,EAAuC,KAAKO,sBAA5C;EACH;;EACkB,IAAfjtxB,eAAe,GAAG;IAClB,OAAO,KAAKitxB,sBAAZ;EACH;;EACmB,OAAbC,aAAa,CAACpmyB,MAAD,EAAS,GAAGzD,OAAZ,EAAqB;IACrC,KAAK,MAAMlF,MAAX,IAAqBkF,OAArB,EAA8B;MAC1B,KAAK,MAAM9D,GAAX,IAAkBJ,MAAM,CAACC,IAAP,CAAYjB,MAAZ,CAAlB,EAAuC;QACnC,MAAM41C,GAAG,GAAG51C,MAAM,CAACoB,GAAD,CAAlB;;QACA,IAAIw0C,GAAG,KAAKr0C,SAAZ,EAAuB;UACnBoH,MAAM,CAACvH,GAAD,CAAN,GAAcw0C,GAAd;QACH;MACJ;IACJ;;IACD,OAAOjtC,MAAP;EACH;;EACDqmyB,qBAAqB,GAAG;IACpB,QAAQ,KAAKC,WAAb;MACI,KAAKnE,mBAAmB,CAACpnhB,KAAzB;QACI,KAAKwrhB,YAAL,CAAkB,OAAlB,EAA2B,KAAKnprB,MAAL,CAAYx4E,IAAZ,CAAiB,IAAjB,CAA3B;;QACA;;MACJ,KAAKu9vB,mBAAmB,CAACqE,SAAzB;QACI,KAAKD,YAAL,CAAkB,WAAlB,EAA+B,KAAKnprB,MAAL,CAAYx4E,IAAZ,CAAiB,IAAjB,CAA/B;;QACA;;MACJ,KAAKu9vB,mBAAmB,CAACa,KAAzB;QACI,KAAKuD,YAAL,CAAkB,YAAlB,EAAgC,KAAKE,aAAL,CAAmB7hwB,IAAnB,CAAwB,IAAxB,EAA8B,KAAK8hwB,SAAnC,CAAhC;;QACA,CAAC,UAAD,EAAa,aAAb,EAA4B,YAA5B,EAA0Cn/xB,OAA1C,CAAmD7G,SAAD,IAAe;UAC7D,KAAK6lyB,YAAL,CAAkB7lyB,SAAlB,EAA6B,KAAKimyB,aAAL,CAAmB/hwB,IAAnB,CAAwB,IAAxB,EAA8B,IAA9B,EAAoC,KAAKmgwB,WAAzC,CAA7B;QACH,CAFD;QAGA;IAZR;;IAcA,IAAI,KAAKuB,WAAL,KAAqBnE,mBAAmB,CAACa,KAAzC,IAAkD,KAAKoB,gBAA3D,EAA6E;MACzE,CAAC,UAAD,EAAa,aAAb,EAA4B,YAA5B,EAA0C78xB,OAA1C,CAAmD7G,SAAD,IAAe;QAC7D,KAAK6lyB,YAAL,CAAkB7lyB,SAAlB,EAA6B,KAAKimyB,aAAL,CAAmB/hwB,IAAnB,CAAwB,IAAxB,EAA8B,IAA9B,EAAoC,KAAKmgwB,WAAzC,CAA7B;MACH,CAFD;IAGH;EACJ;;EACDnoqB,aAAa,GAAG;IACZ,OAAO,KAAK87R,aAAL,IAAsB,KAAKk8T,WAAL,CAAiBposB,aAA9C;EACH;;EACDvT,IAAI,GAAG;IACH,IAAI,KAAK8kG,QAAT,EAAmB;MACf;IACH;;IACD,IAAI,CAAC,KAAKynrB,MAAV,EAAkB;MACd,KAAKD,0BAAL,CAAgC38xB,IAAhC;;MACA;IACH;;IACD,KAAK48xB,MAAL,GAAc,KAAd;;IACA,IAAI,KAAKoB,iBAAT,EAA4B;MACxB,KAAKA,iBAAL,CAAuBpgyB,QAAvB,CAAgCyS,IAAhC;IACH,CAFD,MAGK;MACD,KAAK6sxB,cAAL,CAAoB7sxB,IAApB;IACH;;IACD,KAAK+rxB,cAAL,CAAoB3myB,IAApB,CAAyB,IAAzB;;IACA,KAAK+myB,0BAAL,CAAgCx8xB,IAAhC;EACH;;EACDi+xB,yBAAyB,CAAC3hE,MAAD,EAAS;IAC9B,IAAI,KAAKnnnB,QAAL,IAAiB,CAAC,KAAK+orB,kBAAvB,IAA6C5hE,MAAM,CAAClluB,MAAP,KAAkB,KAAK8lyB,cAAL,CAAoBzD,KAApB,CAA0B71wB,aAAzF,IACA,KAAKs5wB,cAAL,CAAoBzD,KAApB,CAA0B71wB,aAA1B,CAAwChkB,QAAxC,CAAiD08tB,MAAM,CAAClluB,MAAxD,CADJ,EACqE;MACjE;IACH;;IACD,KAAK2myB,aAAL,CAAmBzhE,MAAnB,EAA2B,KAAK6/D,WAAhC;EACH;;EACDgC,mBAAmB,CAAC7hE,MAAD,EAAS;IACxB,IAAI,KAAKnnnB,QAAL,IAAiB,CAAC,KAAKiprB,YAA3B,EAAyC;MACrC;IACH;;IACD,KAAKL,aAAL,CAAmBzhE,MAAnB,EAA2B,KAAK6/D,WAAhC;EACH;;EACD7lyB,WAAW,GAAG;IACV,KAAKyxwB,SAAL,CAAe/nwB,IAAf;;IACA,KAAKk9xB,cAAL,IAAuB,KAAKA,cAAL,CAAoBzC,KAApB,EAAvB;EACH;;EACDz+L,QAAQ,GAAG;IACP;IACA,KAAKkiM,kBAAL,GAA0B,OAAO,KAAKA,kBAAZ,KAAmC,WAAnC,GACtB,KAAKG,mBADiB,GACK,KAAKH,kBADpC;;IAEA,IAAI,OAAO,KAAK/mf,OAAZ,KAAwB,QAA5B,EAAsC;MAClC,KAAK+lf,cAAL,GAAsB,KAAKoB,iBAAL,EAAtB;MACA,KAAKpB,cAAL,CAAoBn/tB,IAApB,GAA2B,KAAKo5O,OAAhC;IACH,CAHD,MAIK,IAAI,OAAO,KAAKA,OAAZ,KAAwB,OAAO,KAAK,CAAxC,EAA2C;MAC5C,KAAK+lf,cAAL,GAAsB,KAAKoB,iBAAL,EAAtB;MACA,KAAKpB,cAAL,CAAoBn/tB,IAApB,GAA2B,EAA3B;IACH,CAHI,MAIA;MACD,KAAKm/tB,cAAL,GAAsB,KAAK/lf,OAA3B;IACH;;IACD,MAAMonf,SAAS,GAAG,KAAKrB,cAAvB;IACAqB,SAAS,CAACxD,eAAV,GAA4B,KAAK/mqB,aAAL,EAA5B;;IACA,KAAKwqqB,qBAAL,CAA2BD,SAA3B;;IACA,KAAKE,YAAL;;IACA,KAAKhB,qBAAL;;IACA,IAAI,KAAKiB,WAAT,EAAsB;MAClB,KAAKb,aAAL;IACH;EACJ;;EACDE,aAAa,CAACzhE,MAAM,GAAG,IAAV,EAAgBrppB,KAAK,GAAG,KAAKkptB,WAA7B,EAA0C;IACnD,IAAI,KAAKhnrB,QAAT,EAAmB;MACf;IACH;;IACD,KAAKwnrB,0BAAL,CAAgC38xB,IAAhC;;IACA6qgB,2CAAK,CAAC53b,KAAD,CAAL,CACKj7E,IADL,CACU4ojB,+CAAS,CAAC,KAAK87O,0BAAN,CADnB,EACsD97O,+CAAS,CAAC,KAAKmnN,SAAN,CAD/D,EAEKn5wB,SAFL,CAEe;MACXoR,IAAI,EAAE,MAAM;QACR;QACA,MAAM2+xB,SAAS,GAAGriE,MAAM,GAAGA,MAAM,CAACqiE,SAAV,GAAsB,IAA9C;QACA,MAAMC,iBAAiB,GAAG,KAAK1B,cAAL,CAAoB7B,aAApB,GAAoC,KAAK6B,cAAL,CAAoB7B,aAApB,CAAkCz3wB,aAAtE,GAAsF,KAAhH;;QACA,IAAI,CAACg7wB,iBAAD,IACAA,iBAAiB,KAAKD,SADtB,IAEAC,iBAAiB,CAACh/xB,QAAlB,CAA2B++xB,SAA3B,CAFA,IAGC,KAAKxnf,OAAL,IAAgB,KAAKA,OAAL,CAAa0if,WAHlC,EAGgD;UAC5C;QACH;;QACD,KAAKxpxB,IAAL;;QACA,KAAKy1lB,aAAL;MACH;IAbU,CAFf;EAiBH;;EACD+3L,aAAa,CAAC5qtB,KAAK,GAAG,KAAK6qtB,SAAd,EAAyB;IAClC,IAAI,KAAK3orB,QAAT,EAAmB;MACf;IACH;;IACD,KAAKunrB,0BAAL,CAAgC18xB,IAAhC;;IACA6qgB,2CAAK,CAAC53b,KAAD,CAAL,CACKj7E,IADL,CACU4ojB,+CAAS,CAAC,KAAK+7O,0BAAN,CADnB,EACsD/7O,+CAAS,CAAC,KAAKmnN,SAAN,CAD/D,EAEKn5wB,SAFL,CAEe;MACXoR,IAAI,EAAE,MAAM;QACR,KAAKmgL,IAAL;;QACA,KAAK2lb,aAAL;MACH;IAJU,CAFf;EAQH;;EACD3lb,IAAI,GAAG;IACH,IAAI,KAAKy8mB,MAAT,EAAiB;MACb,KAAKF,0BAAL,CAAgC18xB,IAAhC;;MACA;IACH;;IACD,KAAK48xB,MAAL,GAAc,IAAd;IACA,MAAM2B,SAAS,GAAG,KAAKrB,cAAvB;IACA,MAAM3gyB,OAAO,GAAG,KAAKy3H,aAAL,EAAhB;;IACA,IAAIuqqB,SAAS,CAACxD,eAAV,KAA8Bx+xB,OAAlC,EAA2C;MACvCgiyB,SAAS,CAACxD,eAAV,GAA4Bx+xB,OAA5B;IACH;;IACD,KAAKiiyB,qBAAL,CAA2BD,SAA3B;;IACAA,SAAS,CAACp+mB,IAAV;IACA,KAAKk8mB,aAAL,CAAmB5myB,IAAnB,CAAwB,IAAxB;;IACA,IAAI,KAAK8myB,gBAAL,GAAwB,CAA5B,EAA+B;MAC3B,KAAKwB,aAAL,CAAmB,IAAnB,EAAyB,KAAKxB,gBAA9B;IACH;;IACDjvyB,+CAAS,CAAC+K,QAAD,EAAW,OAAX,CAAT,CACKL,IADL,CACU4ojB,+CAAS,CAAC,KAAK47O,0BAAN,CADnB,EACsD57O,+CAAS,CAAC,KAAKmnN,SAAN,CAD/D,EAEKn5wB,SAFL,CAEe;MACXoR,IAAI,EAAG0/B,CAAD,IAAO,KAAKu+vB,yBAAL,CAA+Bv+vB,CAA/B;IADF,CAFf;IAKApyC,+CAAS,CAAC,KAAKuxyB,gBAAL,CAAsB,KAAK7qqB,aAAL,EAAtB,CAAD,EAA8C,QAA9C,CAAT,CACKh8H,IADL,CACU4ojB,+CAAS,CAAC,KAAK47O,0BAAN,CADnB,EACsD57O,+CAAS,CAAC,KAAKmnN,SAAN,CAD/D,EAEKn5wB,SAFL,CAEe;MACXoR,IAAI,EAAG0/B,CAAD,IAAO,KAAKy+vB,mBAAL,CAAyBz+vB,CAAzB;IADF,CAFf;EAKH;;EACD80E,MAAM,GAAG;IACL,IAAI,KAAKW,QAAT,EAAmB;MACf;IACH;;IACD,KAAKynrB,MAAL,GAAc,KAAKmB,aAAL,CAAmB,IAAnB,EAAyB,KAAK5B,WAA9B,CAAd,GAA2D,KAAK0B,aAAL,EAA3D;EACH;;EACDF,YAAY,CAAC7lyB,SAAD,EAAY+xI,EAAZ,EAAgB;IACxBv8I,+CAAS,CAAC,KAAK0+tB,WAAL,CAAiBposB,aAAlB,EAAiC9rB,SAAjC,CAAT,CACKE,IADL,CACU4ojB,+CAAS,CAAC,KAAKmnN,SAAN,CADnB,EAEKn5wB,SAFL,CAEe;MACXoR,IAAI,EAAE6pI;IADK,CAFf;EAKH;;EACDi8d,aAAa,GAAG;IACZ,KAAKvE,kBAAL,CAAwByC,YAAxB;;IACA,KAAKzC,kBAAL,CAAwB5+kB,aAAxB;EACH;;EACDq6wB,cAAc,CAACntyB,GAAD,EAAM8oD,QAAN,EAAgB;IAC1B,IAAI,KAAKukvB,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoBnD,aAApB,CAAkClqyB,GAAlC,IAAyC8oD,QAAzC;;MACA,IAAI,CAAC,KAAKikvB,MAAV,EAAkB;QACd;MACH;;MACD,KAAKM,cAAL,CAAoBvC,cAApB,CAAmC98xB,UAAnC,CAA8C,KAAKq/xB,cAAL,CAAoBnD,aAAlE;IACH;EACJ;;EACDuE,iBAAiB,GAAG;IAChB,KAAKN,iBAAL,GAAyB,KAAK/B,IAAL,CAAUr5wB,eAAV,CAA0B,KAAK65wB,mBAA/B,CAAzB;IACA,OAAO,KAAKuB,iBAAL,CAAuBpgyB,QAA9B;EACH;;EACDihyB,gBAAgB,CAACx5xB,IAAD,EAAO;IACnB,MAAMxJ,SAAS,GAAGwJ,IAAI,YAAYwB,WAAlC;IACA,MAAMK,SAAS,GAAGrL,SAAS,IAAIlD,MAAM,CAACoJ,gBAAP,CAAwBsD,IAAxB,EAA8B6B,SAA7D;IACA,MAAM43xB,YAAY,GAAG53xB,SAAS,KAAK,SAAd,IAA2BA,SAAS,KAAK,QAA9D;;IACA,IAAI,CAAC7B,IAAL,EAAW;MACP,OAAO,IAAP;IACH,CAFD,MAGK,IAAIy5xB,YAAY,IAAIz5xB,IAAI,CAACP,YAAL,IAAqBO,IAAI,CAAC5C,YAA9C,EAA4D;MAC7D,OAAO4C,IAAP;IACH;;IACD,OAAO,KAAKw5xB,gBAAL,CAAsBx5xB,IAAI,CAACnF,UAA3B,KAA0C7H,QAAjD;EACH;;EACD0myB,eAAe,CAAC5myB,KAAD,EAAQ;IACnB,KAAKmkyB,cAAL,CAAoB7myB,IAApB,CAAyB0C,KAAzB;EACH;;EACDqmyB,qBAAqB,CAACD,SAAD,EAAY;IAC7BA,SAAS,CAACxE,aAAV,GAA0BiC,oBAAoB,CAACwB,aAArB,CAAmCe,SAAS,CAACxE,aAA7C,EAA4DiC,oBAAoB,CAACa,WAAjF,EAA8F;MACpHiB,SAAS,EAAE,KAAKA,SADoG;MAEpH9D,gBAAgB,EAAE,KAAKA,gBAF6F;MAGpHC,qBAAqB,EAAE,KAAK+E,YAHwF;MAIpHjjyB,SAAS,EAAE,KAAKA,SAJoG;MAKpHo+xB,iBAAiB,EAAE,KAAKA,iBAL4F;MAMpHj0O,OAAO,EAAE,KAAKw3O,WANsG;MAOpHrD,aAAa,EAAE,KAAKA,aAPgG;MAQpHE,eAAe,EAAE,KAAKA,eAR8F;MASpH0E,YAAY,EAAE,KAAKA,YATiG;MAUpHn/pB,QAAQ,EAAE,KAAKA,QAVqG;MAWpHg9pB,UAAU,EAAE,KAAKA,UAXmG;MAYpHQ,eAAe,EAAE,KAAKF,qBAZ8F;MAapH5B,gBAAgB,EAAE,KAAKA,gBAb6F;MAcpH/9xB,MAAM,EAAE,KAAKA,MAduG;MAepH0rwB,QAAQ,EAAE,KAAK+1B,cAfqG;MAgBpH5uxB,eAAe,EAAE,KAAKA;IAhB8F,CAA9F,CAA1B;IAkBAiuxB,SAAS,CAACtD,QAAV,GAAqB,KAAK8D,eAAL,CAAqB/iwB,IAArB,CAA0B,IAA1B,CAArB;IACAuiwB,SAAS,CAACzE,QAAV,CACK9hyB,IADL,CACU4ojB,+CAAS,CAAC,KAAKmnN,SAAN,CADnB,EAEKn5wB,SAFL,CAEe,KAAKyhB,IAAL,CAAU2rB,IAAV,CAAe,IAAf,CAFf;EAGH;;EACDyiwB,YAAY,GAAG;IACX,CAAC,WAAD,EAAc,cAAd,EAA8B,kBAA9B,EAAkD,oBAAlD,EAAwE,UAAxE,EAAoF,cAApF,EAAoG9/xB,OAApG,CAA6G9O,GAAD,IAAS;MACjH,KAAKA,GAAL,IAAY,KAAKA,GAAL,MAAc,KAAK,CAAnB,GAAuBmsyB,oBAAoB,CAACa,WAArB,CAAiChtyB,GAAjC,CAAvB,GAA+D,KAAKA,GAAL,CAA3E;IACH,CAFD;IAGA,KAAK6tyB,WAAL,GAAmB,KAAKA,WAAL,IAAoB1B,oBAAoB,CAACa,WAArB,CAAiC32O,OAAxE;IACA,KAAKzojB,MAAL,GAAc,KAAKA,MAAL,KAAgB,KAAK,CAArB,GAAyB,EAAE,GAAGu+xB,oBAAoB,CAACa,WAArB,CAAiCp/xB;IAAtC,CAAzB,GAA0E,KAAKA,MAA7F;EACH;;AAlUsB;;AAoU3Bu+xB,oBAAoB,CAACa,WAArB,GAAmC;EAC/BiB,SAAS,EAAE,CADoB;EAE/B/hyB,SAAS,EAAEu9xB,qBAAqB,CAACY,IAFF;EAG/BgE,kBAAkB,EAAE,IAHW;EAI/B1C,gBAAgB,EAAE,KAJa;EAK/B4C,YAAY,EAAE,KALiB;EAM/Bj1B,QAAQ,EAAEn5wB,SANqB;EAO/B8vI,QAAQ,EAAE,QAPqB;EAQ/Bm/pB,YAAY,EAAE,EARiB;EAS/BxhyB,MAAM,EAAE,EATuB;EAU/ByojB,OAAO,EAAEqzO,mBAAmB,CAACpnhB;AAVE,CAAnC;AAYA6phB,oBAAoB,CAACn6f,MAArB,GAA8B,CAA9B;AACA;;AAAmBm6f,oBAAoB,CAACvryB,IAArB;EAAA,iBAAiHuryB,oBAAjH,EA9W8G7kxB,+DA8W9G,CAAuJA,4DAAvJ,GA9W8GA,+DA8W9G,CAAwLA,qDAAxL,GA9W8GA,+DA8W9G,CAAkNA,2DAAlN,GA9W8GA,+DA8W9G,CAAkP2kxB,qBAAlP;AAAA;AACnB;;;AAAmBE,oBAAoB,CAAChmN,IAArB,kBA/W8G7+jB,+DA+W9G;EAAA,MAAqG6kxB,oBAArG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACnB;EAAA,mDAhXiI7kxB,+DAgXjI,CAA2F6kxB,oBAA3F,EAA6H,CAAC;IAClH7qyB,IAAI,EAAE4jlB,oDAD4G;IAElHjhlB,IAAI,EAAE,CAAC;MACC;MACA2kB,QAAQ,EAAE,UAFX;MAGCw9jB,QAAQ,EAAE;IAHX,CAAD;EAF4G,CAAD,CAA7H,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE9klB,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAAD,EAAiC;MAAE/ymB,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAjC,EAA0D;MAAEpsC,IAAI,EAAEgmB,2DAAmBqmB;IAA3B,CAA1D,EAAyF;MAAErsC,IAAI,EAAEnB,SAAR;MAAmBwG,UAAU,EAAE,CAAC;QACtJrF,IAAI,EAAElE,iDADgJ;QAEtJ6G,IAAI,EAAE,CAACgoyB,qBAAD;MAFgJ,CAAD;IAA/B,CAAzF,CAAP;EAGlB,CAVxB,EAU0C;IAAEgB,UAAU,EAAE,CAAC;MACzC3ryB,IAAI,EAAEmmB,gDADmC;MAEzCxjB,IAAI,EAAE,CAAC,kBAAD;IAFmC,CAAD,CAAd;IAG1BmryB,YAAY,EAAE,CAAC;MACf9tyB,IAAI,EAAEmmB,gDADS;MAEfxjB,IAAI,EAAE,CAAC,sBAAD;IAFS,CAAD,CAHY;IAM1BgsI,QAAQ,EAAE,CAAC;MACX3uI,IAAI,EAAEmmB,gDADK;MAEXxjB,IAAI,EAAE,CAAC,gBAAD;IAFK,CAAD,CANgB;IAS1BqmyB,iBAAiB,EAAE,CAAC;MACpBhpyB,IAAI,EAAEmmB,gDADc;MAEpBxjB,IAAI,EAAE,CAAC,kBAAD;IAFc,CAAD,CATO;IAY1BuqyB,mBAAmB,EAAE,CAAC;MACtBltyB,IAAI,EAAEmmB,gDADgB;MAEtBxjB,IAAI,EAAE,CAAC,2BAAD;IAFgB,CAAD,CAZK;IAe1BqjT,OAAO,EAAE,CAAC;MACVhmT,IAAI,EAAEmmB,gDADI;MAEVxjB,IAAI,EAAE,CAAC,QAAD;IAFI,CAAD,CAfiB;IAkB1BkmyB,gBAAgB,EAAE,CAAC;MACnB7oyB,IAAI,EAAEmmB,gDADa;MAEnBxjB,IAAI,EAAE,CAAC,wBAAD;IAFa,CAAD,CAlBQ;IAqB1BqhH,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAEmmB,gDADK;MAEXxjB,IAAI,EAAE,CAAC,gBAAD;IAFK,CAAD,CArBgB;IAwB1BkryB,YAAY,EAAE,CAAC;MACf7tyB,IAAI,EAAEmmB,gDADS;MAEfxjB,IAAI,EAAE,CAAC,oBAAD;IAFS,CAAD,CAxBY;IA2B1BoqyB,kBAAkB,EAAE,CAAC;MACrB/syB,IAAI,EAAEmmB,gDADe;MAErBxjB,IAAI,EAAE,CAAC,0BAAD;IAFe,CAAD,CA3BM;IA8B1B0nyB,gBAAgB,EAAE,CAAC;MACnBrqyB,IAAI,EAAEmmB,gDADa;MAEnBxjB,IAAI,EAAE,CAAC,wBAAD;IAFa,CAAD,CA9BQ;IAiC1BsqyB,YAAY,EAAE,CAAC;MACfjtyB,IAAI,EAAEmmB,gDADS;MAEfxjB,IAAI,EAAE,CAAC,oBAAD;IAFS,CAAD,CAjCY;IAoC1BqoyB,WAAW,EAAE,CAAC;MACdhryB,IAAI,EAAEmmB,gDADQ;MAEdxjB,IAAI,EAAE,CAAC,eAAD;IAFQ,CAAD,CApCa;IAuC1BiI,SAAS,EAAE,CAAC;MACZ5K,IAAI,EAAEmmB,gDADM;MAEZxjB,IAAI,EAAE,CAAC,iBAAD;IAFM,CAAD,CAvCe;IA0C1BoryB,cAAc,EAAE,CAAC;MACjB/tyB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD,CA1CU;IA4C1B8lxB,qBAAqB,EAAE,CAAC;MACxBjsyB,IAAI,EAAEmmB,gDAAKA;IADa,CAAD,CA5CG;IA8C1BijxB,eAAe,EAAE,CAAC;MAClBppyB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CA9CS;IAgD1B8kxB,cAAc,EAAE,CAAC;MACjBjryB,IAAI,EAAEqmB,iDAAMA;IADK,CAAD,CAhDU;IAkD1B6kxB,aAAa,EAAE,CAAC;MAChBlryB,IAAI,EAAEqmB,iDAAMA;IADI,CAAD,CAlDW;IAoD1B8kxB,cAAc,EAAE,CAAC;MACjBnryB,IAAI,EAAEqmB,iDAAMA;IADK,CAAD,CApDU;IAsD1B6ixB,aAAa,EAAE,CAAC;MAChBlpyB,IAAI,EAAEmmB,gDADU;MAEhBxjB,IAAI,EAAE,CAAC,qBAAD;IAFU,CAAD,CAtDW;IAyD1Bwc,eAAe,EAAE,CAAC;MAClBnf,IAAI,EAAEmmB,gDADY;MAElBxjB,IAAI,EAAE,CAAC,uBAAD;IAFY,CAAD,CAzDS;IA4D1BgqyB,SAAS,EAAE,CAAC;MACZ3syB,IAAI,EAAEmmB,gDADM;MAEZxjB,IAAI,EAAE,CAAC,aAAD;IAFM,CAAD,CA5De;IA+D1B4qyB,WAAW,EAAE,CAAC;MACdvtyB,IAAI,EAAEmmB,gDADQ;MAEdxjB,IAAI,EAAE,CAAC,mBAAD;IAFQ,CAAD,CA/Da;IAkE1B4pyB,WAAW,EAAE,CAAC;MACdvsyB,IAAI,EAAEmmB,gDADQ;MAEdxjB,IAAI,EAAE,CAAC,eAAD;IAFQ,CAAD,CAlEa;IAqE1B2J,MAAM,EAAE,CAAC;MACTtM,IAAI,EAAEmmB,gDADG;MAETxjB,IAAI,EAAE,CAAC,cAAD;IAFG,CAAD,CArEkB;IAwE1Bg8Z,aAAa,EAAE,CAAC;MAChB3+Z,IAAI,EAAEmmB,gDADU;MAEhBxjB,IAAI,EAAE,CAAC,cAAD;IAFU,CAAD,CAxEW;IA2E1ByoyB,gBAAgB,EAAE,CAAC;MACnBpryB,IAAI,EAAEmmB,gDADa;MAEnBxjB,IAAI,EAAE,CAAC,wBAAD;IAFa,CAAD;EA3EQ,CAV1C;AAAA;;AA0FA,SAASqryB,yBAAT,CAAmCjhqB,MAAM,GAAG,EAA5C,EAAgD;EAC5C,OAAO,CACH;IAAE9kI,OAAO,EAAE0iyB,qBAAX;IAAkCp0K,QAAQ,EAAExpf;EAA5C,CADG,CAAP;AAGH;;AACD,MAAMkhqB,iBAAN,CAAwB;EACN,OAAPnmyB,OAAO,CAAComyB,iBAAD,EAAoB;IAC9B,OAAO;MACHnmyB,QAAQ,EAAEkmyB,iBADP;MAEHjmyB,SAAS,EAAE,CACPgmyB,yBAAyB,CAACE,iBAAD,CADlB;IAFR,CAAP;EAMH;;AARmB;AAUxB;;;AAAmBD,iBAAiB,CAAC3uyB,IAAlB;EAAA,iBAA8G2uyB,iBAA9G;AAAA;AACnB;;;AAAmBA,iBAAiB,CAAC7lyB,IAAlB,kBA1d8G4d,8DA0d9G;EAAA,MAA+GioxB;AAA/G;AAGnB;;AAAmBA,iBAAiB,CAAC3lyB,IAAlB,kBA7d8G0d,8DA6d9G;EAAA,WAA6I,CACxJgoxB,yBAAyB,EAD+H,CAA7I;EAAA,UAEFz6K,yDAFE;AAAA;;AAGnB;EAAA,mDAheiIvtmB,+DAgejI,CAA2FioxB,iBAA3F,EAA0H,CAAC;IAC/GjuyB,IAAI,EAAEhE,mDADyG;IAE/G2G,IAAI,EAAE,CAAC;MACCoH,OAAO,EAAE,CACLwpnB,yDADK,CADV;MAIC7mlB,YAAY,EAAE,CACV27vB,2BADU,EAEVwC,oBAFU,CAJf;MAQCtxF,eAAe,EAAE,CACb8uF,2BADa,CARlB;MAWC17vB,OAAO,EAAE,CACL07vB,2BADK,EAELwC,oBAFK,CAXV;MAeC7iyB,SAAS,EAAE,CACPgmyB,yBAAyB,EADlB;IAfZ,CAAD;EAFyG,CAAD,CAA1H;AAAA;AAuBA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gBAkGyGhoxB;;IAAAA,4DAiM20B;IAjM30BA,wDAiM48B;MAjM58BA,2DAiM48B;MAAA,eAjM58BA,2DAiM48B;MAAA,OAjM58BA,yDAiMs9B,iCAAV;IAAA;IAjM58BA,uDAiMy/B;IAjMz/BA,4DAiMyjC;IAjMzjCA,oDAiMilC;IAjMjlCA,0DAiMqmC;;;;mBAjMrmCA;IAAAA,wDAiMy2B;IAjMz2BA,uDAiMs6B;IAjMt6BA,wDAiMs6B;IAjMt6BA,uDAiM+/B;IAjM//BA,wDAiM+/B;;;;;;;;;IAjM//BA,4DAmV2Z;IAnV3ZA,oDAmVkd;IAnVldA,0DAmVge;;;;mBAnVheA;IAAAA,uDAmVkd;IAnVldA,+DAmVkd;;;;;;IAnVldA,4DAmVuN;IAnVvNA,uDAmVqV;IAnVrVA,wDAmV2Z;IAnV3ZA,0DAmV8e;;;;mBAnV9eA;IAAAA,wDAmViP;IAnVjPA,uDAmVkX;IAnVlXA,wDAmVkX;IAnVlXA,uDAmVwb;IAnVxbA,wDAmVwb;;;;;;gBAnVxbA;;IAAAA,4DA+Xqa;IA/XraA,wDA+XyiB;MA/XziBA,2DA+XyiB;MAAA,eA/XziBA,2DA+XyiB;MAAA,OA/XziBA,yDA+XmjB,qBAAV;IAAA;IA/XziBA,oDA+XkkB;IA/XlkBA,0DA+XykB;;;;;;IA/XzkBA,4DA+X4mB;IA/X5mBA,oDA+XurB;IA/XvrBA,0DA+XqsB;;;;mBA/XrsBA;IAAAA,uDA+XurB;IA/XvrBA,+DA+XurB;;;;;;;;;;;;;;;;;;;;;;;gBA/XvrBA;;IAAAA,4DA+fyb;IA/fzbA,wDA+fwhB;MA/fxhBA,2DA+fwhB;MAAA,mBA/fxhBA,2DA+fwhB;MAAA,eA/fxhBA,2DA+fwhB;MAAA,OA/fxhBA,yDA+fkiB,gCAAV;IAAA;IA/fxhBA,4DA+fyjB;IA/fzjBA,oDA+filB;IA/fjlBA,0DA+f4lB;IA/f5lBA,oDA+fmmB;IA/fnmBA,0DA+f0mB;;;;;;IA/f1mBA,4DA+f8L;IA/f9LA,oDA+fwZ;IA/fxZA,0DA+f6a;IA/f7aA,wDA+fyb;IA/fzbA,0DA+fynB;;;;;IA/fznBA,wDA+fqR;IA/frRA,uDA+fwZ;IA/fxZA,+DA+fwZ;IA/fxZA,uDA+fkc;IA/flcA,wDA+fkc;;;;;;;;;;AA/lB3iB,IAAIooxB,UAAJ;;AACA,CAAC,UAAUA,UAAV,EAAsB;EACnBA,UAAU,CAAC,QAAD,CAAV,GAAuB,QAAvB;EACAA,UAAU,CAAC,MAAD,CAAV,GAAqB,MAArB;EACAA,UAAU,CAAC,MAAD,CAAV,GAAqB,MAArB;EACAA,UAAU,CAAC,OAAD,CAAV,GAAsB,OAAtB;AACH,CALD,EAKGA,UAAU,KAAKA,UAAU,GAAG,EAAlB,CALb;;AAMA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,QAAD,CAAX,GAAwB,QAAxB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,MAAtB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,MAAtB;EACAA,WAAW,CAAC,OAAD,CAAX,GAAuB,OAAvB;AACH,CALD,EAKGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CALd;;AAMA,IAAIC,sBAAsB,GAAG,MAAMA,sBAAN,CAA6B;EACtD7xyB,WAAW,CAAC8xyB,GAAD,EAAMC,MAAN,EAAc;IACrB,KAAKD,GAAL,GAAWA,GAAX;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,KAAKC,eAAL,GAAuB,CAAC,GAAD,EAAM,IAAN,EAAY,IAAZ,CAAvB;IACA,KAAKC,aAAL,GAAqB,CAAC,GAAD,EAAM,GAAN,EAAW,IAAX,CAArB;IACA,KAAKt8iB,eAAL,GAAuB,CAAvB;IACA,KAAKu8iB,cAAL,GAAsB,CAAtB;IACA,KAAKC,iBAAL,GAAyBR,UAAU,CAACS,MAApC;IACA,KAAKC,kBAAL,GAA0BT,WAAW,CAACU,MAAtC;IACA,KAAKC,OAAL,GAAe,EAAf;IACA,KAAKC,OAAL,GAAe,EAAf;EACH;;EACS,IAANC,MAAM,GAAG;IACT,OAAO,KAAKF,OAAZ;EACH;;EACS,IAANE,MAAM,CAACC,IAAD,EAAO;IACb,KAAKH,OAAL,GAAeG,IAAf;;IACA,IAAIA,IAAI,IAAIA,IAAI,CAAC9wyB,MAAL,GAAc,CAA1B,EAA6B;MACzB,KAAKowyB,eAAL,GAAuB,KAAKO,OAA5B;IACH;EACJ;;EACS,IAANI,MAAM,GAAG;IACT,OAAO,KAAKH,OAAZ;EACH;;EACS,IAANG,MAAM,CAACC,IAAD,EAAO;IACb,KAAKJ,OAAL,GAAeI,IAAf;;IACA,IAAIA,IAAI,IAAIA,IAAI,CAAChxyB,MAAL,GAAc,CAA1B,EAA6B;MACzB,KAAKqwyB,aAAL,GAAqB,KAAKO,OAA1B;IACH;EACJ;;EACDhuJ,qBAAqB,GAAG;IACpB,KAAKnzZ,QAAL;;IACA,KAAK0gjB,MAAL,CAAYh9wB,aAAZ;EACH;;EACDs8N,QAAQ,GAAG;IACP,KAAKsE,eAAL,GAAuB,KAAKm8iB,GAAL,CAAS97wB,aAAT,CAAuB7iB,YAA9C;IACA,KAAK++xB,cAAL,GAAsB,KAAKJ,GAAL,CAAS97wB,aAAT,CAAuB/iB,WAA7C;IACA,KAAK4/xB,YAAL;EACH;;EACDA,YAAY,GAAG;IACX,KAAKC,SAAL;IACA,KAAKC,SAAL;EACH,CA3CqD,CA4CtD;;;EACAD,SAAS,GAAG;IACR,IAAIE,WAAW,GAAG,KAAKX,kBAAvB;;IACA,QAAQ,IAAR;MACI,KAAK,KAAK18iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAA5B;QACIe,WAAW,GAAGpB,WAAW,CAACU,MAA1B;QACA;;MACJ,KAAK,KAAK38iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAAvB,IAAgD,KAAKt8iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAA5E;QACIe,WAAW,GAAGpB,WAAW,CAACqB,IAA1B;QACA;;MACJ,KAAK,KAAKt9iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAAvB,IAAgD,KAAKt8iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAA5E;QACIe,WAAW,GAAGpB,WAAW,CAACsB,IAA1B;QACA;;MACJ,KAAK,KAAKv9iB,eAAL,GAAuB,KAAKs8iB,aAAL,CAAmB,CAAnB,CAA5B;QACIe,WAAW,GAAGpB,WAAW,CAACuB,KAA1B;QACA;IAZR;;IAcA,KAAKd,kBAAL,GAA0BW,WAA1B;EACH;;EACDD,SAAS,GAAG;IACR,IAAIK,UAAU,GAAG,KAAKjB,iBAAtB;;IACA,QAAQ,IAAR;MACI,KAAK,KAAKD,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAA3B;QACIoB,UAAU,GAAGzB,UAAU,CAACS,MAAxB;QACA;;MACJ,KAAK,KAAKF,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAAtB,IAAiD,KAAKE,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAA5E;QACIoB,UAAU,GAAGzB,UAAU,CAAC0B,IAAxB;QACA;;MACJ,KAAK,KAAKnB,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAAtB,IAAiD,KAAKE,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAA5E;QACIoB,UAAU,GAAGzB,UAAU,CAAC2B,IAAxB;QACA;;MACJ,KAAK,KAAKpB,cAAL,GAAsB,KAAKF,eAAL,CAAqB,CAArB,CAA3B;QACIoB,UAAU,GAAGzB,UAAU,CAAC4B,KAAxB;QACA;IAZR;;IAcA,KAAKpB,iBAAL,GAAyBiB,UAAzB;EACH;;AAhFqD,CAA1D;;AAkFAvB,sBAAsB,CAAChvyB,IAAvB;EAAA,iBAAmHgvyB,sBAAnH,EAAyGtoxB,+DAAzG,CAA2JA,qDAA3J,GAAyGA,+DAAzG,CAAqLA,4DAArL;AAAA;;AACAsoxB,sBAAsB,CAACjnxB,IAAvB,kBADyGrB,+DACzG;EAAA,MAAuGsoxB,sBAAvG;EAAA;EAAA;IAAA;MADyGtoxB,wDACzG;QAAA,OAAuG,oBAAvG;MAAA,UADyGA,6DACzG;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AACAsoxB,sBAAsB,GAAG/zvB,iDAAU,CAAC,CAChCujqB,2DAAY,CAAC,eAAD,EAAkB,EAAlB,CADoB,EAEhCqwF,iDAAU,CAAC,mBAAD,EAAsB,CAAC/hwB,qDAAD,EAC5B2mkB,4DAD4B,CAAtB,CAFsB,CAAD,EAIhCu7L,sBAJgC,CAAnC;;AAKA;EAAA,mDAPyGtoxB,+DAOzG,CAA2FsoxB,sBAA3F,EAA+H,CAAC;IACpHtuyB,IAAI,EAAEimB,oDAD8G;IAEpHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,qBAAZ;MAAmCC,QAAQ,EAAG,EAA9C;MAAiDvY,IAAI,EAAE;QAClD,mBAAmB;MAD+B;IAAvD,CAAD;EAF8G,CAAD,EAKpH;IACChP,IAAI,EAAE89sB,uDADP;IAECn7sB,IAAI,EAAE,CAAC,eAAD,EAAkB,EAAlB;EAFP,CALoH,CAA/H,EAQ4B,YAAY;IAAE,OAAO,CAAC;MAAE3C,IAAI,EAAEgmB,qDAAaomB;IAArB,CAAD,EAA0B;MAAEpsC,IAAI,EAAEgmB,4DAAoB+slB;IAA5B,CAA1B,CAAP;EAAmE,CAR7G,EAQ+H;IAAEm8L,MAAM,EAAE,CAAC;MAC1HlvyB,IAAI,EAAEmmB,gDAAKA;IAD+G,CAAD,CAAV;IAE/GipxB,MAAM,EAAE,CAAC;MACTpvyB,IAAI,EAAEmmB,gDAAKA;IADF,CAAD;EAFuG,CAR/H;AAAA;;AAcA,IAAI8pxB,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAAC,SAAD,CAAT,GAAuB,WAAvB;EACAA,SAAS,CAAC,MAAD,CAAT,GAAoB,WAApB;EACAA,SAAS,CAAC,QAAD,CAAT,GAAsB,aAAtB;EACAA,SAAS,CAAC,OAAD,CAAT,GAAqB,YAArB;AACH,CALD,EAKGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CALZ;;AAOA,IAAIC,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAAC,SAAD,CAAT,GAAuB,aAAvB;EACAA,SAAS,CAAC,SAAD,CAAT,GAAuB,aAAvB;EACAA,SAAS,CAAC,WAAD,CAAT,GAAyB,eAAzB;EACAA,SAAS,CAAC,UAAD,CAAT,GAAwB,cAAxB;EACAA,SAAS,CAAC,WAAD,CAAT,GAAyB,eAAzB;EACAA,SAAS,CAAC,WAAD,CAAT,GAAyB,eAAzB;EACAA,SAAS,CAAC,SAAD,CAAT,GAAuB,aAAvB;EACAA,SAAS,CAAC,MAAD,CAAT,GAAoB,UAApB;EACAA,SAAS,CAAC,SAAD,CAAT,GAAuB,aAAvB;EACAA,SAAS,CAAC,QAAD,CAAT,GAAsB,YAAtB;AACH,CAXD,EAWGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CAXZ;;AAaA,IAAIC,aAAJ;;AACA,CAAC,UAAUA,aAAV,EAAyB;EACtBA,aAAa,CAAC,OAAD,CAAb,GAAyB,gBAAzB;EACAA,aAAa,CAAC,OAAD,CAAb,GAAyB,gBAAzB;EACAA,aAAa,CAAC,YAAD,CAAb,GAA8B,qBAA9B;EACAA,aAAa,CAAC,SAAD,CAAb,GAA2B,kBAA3B;AACH,CALD,EAKGA,aAAa,KAAKA,aAAa,GAAG,EAArB,CALhB;;AAOA,IAAIC,OAAJ;;AACA,CAAC,UAAUA,OAAV,EAAmB;EAChBA,OAAO,CAAC,OAAD,CAAP,GAAmB,aAAnB;EACAA,OAAO,CAAC,MAAD,CAAP,GAAkB,YAAlB;EACAA,OAAO,CAAC,MAAD,CAAP,GAAkB,YAAlB;EACAA,OAAO,CAAC,QAAD,CAAP,GAAoB,cAApB;EACAA,OAAO,CAAC,aAAD,CAAP,GAAyB,oBAAzB;EACAA,OAAO,CAAC,YAAD,CAAP,GAAwB,mBAAxB;EACAA,OAAO,CAAC,MAAD,CAAP,GAAkB,YAAlB;EACAA,OAAO,CAAC,SAAD,CAAP,GAAqB,eAArB;AACH,CATD,EASGA,OAAO,KAAKA,OAAO,GAAG,EAAf,CATV;;AAWA,IAAIC,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAAC,SAAD,CAAf,GAA6B,gBAA7B;EACAA,eAAe,CAAC,SAAD,CAAf,GAA6B,gBAA7B;EACAA,eAAe,CAAC,WAAD,CAAf,GAA+B,kBAA/B;EACAA,eAAe,CAAC,UAAD,CAAf,GAA8B,iBAA9B;EACAA,eAAe,CAAC,WAAD,CAAf,GAA+B,kBAA/B;EACAA,eAAe,CAAC,WAAD,CAAf,GAA+B,kBAA/B;EACAA,eAAe,CAAC,SAAD,CAAf,GAA6B,gBAA7B;EACAA,eAAe,CAAC,MAAD,CAAf,GAA0B,aAA1B;EACAA,eAAe,CAAC,SAAD,CAAf,GAA6B,gBAA7B;EACAA,eAAe,CAAC,QAAD,CAAf,GAA4B,eAA5B;EACAA,eAAe,CAAC,aAAD,CAAf,GAAiC,oBAAjC;EACAA,eAAe,CAAC,OAAD,CAAf,GAA2B,cAA3B;EACAA,eAAe,CAAC,OAAD,CAAf,GAA2B,cAA3B;AACH,CAdD,EAcGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CAdlB;;AAgBA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,oBAA3B;EACAA,WAAW,CAAC,UAAD,CAAX,GAA0B,mBAA1B;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,oBAA3B;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,oBAA3B;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,eAAtB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,QAAD,CAAX,GAAwB,iBAAxB;EACAA,WAAW,CAAC,aAAD,CAAX,GAA6B,sBAA7B;AACH,CAZD,EAYGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAZd;;AAcA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,QAAD,CAAX,GAAwB,cAAxB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,iBAAtB;AACH,CAHD,EAGGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAHd;;AAKA,MAAMC,kBAAN,CAAyB;EACrB/zyB,WAAW,GAAG;IACV,KAAKg0yB,cAAL,GAAsB,KAAtB,CADU,CAEV;;IACA,KAAKC,WAAL,GAAmBJ,WAAW,CAACK,OAA/B;IACA,KAAKC,WAAL,GAAmBL,WAAW,CAACM,MAA/B,CAJU,CAKV;;IACA,KAAK1pf,MAAL,GAAc,EAAd;IACA,KAAK2pf,eAAL,GAAuBb,SAAS,CAACt7qB,IAAjC;IACA,KAAKo8qB,eAAL,GAAuBb,SAAS,CAACS,OAAjC;IACA,KAAKK,mBAAL,GAA2Bb,aAAa,CAACQ,OAAzC;IACA,KAAKM,aAAL,GAAqBb,OAAO,CAACO,OAA7B;IACA,KAAKO,gBAAL,GAAwBb,eAAe,CAACM,OAAxC;IACA,KAAKQ,YAAL,GAAoBb,WAAW,CAACK,OAAhC,CAZU,CAaV;;IACA,KAAKS,cAAL,GAAsB,KAAtB;IACA,KAAKC,sBAAL,GAA8Bf,WAAW,CAACK,OAA1C;IACA,KAAKW,0BAAL,GAAkCjB,eAAe,CAACM,OAAlD;EACH,CAlBoB,CAmBrB;EACA;EACA;EACA;;;EACAY,mBAAmB,GAAG;IAClB,IAAIC,gBAAgB,GAAG,EAAvB;;IACA,QAAQ,KAAKZ,WAAb;MACI,KAAKL,WAAW,CAACnkY,IAAjB;QACIolY,gBAAgB,CAACzuyB,IAAjB,CAAuB,oCAAvB;QACA;;MACJ,KAAKwtyB,WAAW,CAACM,MAAjB;QACIW,gBAAgB,CAACzuyB,IAAjB,CAAuB,sCAAvB;QACA;;MACJ;QACIyuyB,gBAAgB,CAACzuyB,IAAjB,CAAuB,sCAAvB;IARR;;IAUA;IACAyuyB,gBAAgB,CAACzuyB,IAAjB,CAAsB,mBAAtB;IACAyuyB,gBAAgB,CAACzuyB,IAAjB,CAAsB,KAAK2tyB,WAA3B;IACA,OAAOc,gBAAgB,CAAC5rxB,IAAjB,CAAsB,GAAtB,CAAP;EACH;;EACD6rxB,sBAAsB,GAAG;IACrB,KAAKhB,cAAL,GAAsB,CAAC,KAAKA,cAA5B;EACH;;EACDiB,gBAAgB,GAAG;IACf,OAAQ;AAChB,QAAQ,KAAKZ,eAAgB;AAC7B,QAAQ,KAAKC,eAAgB;AAC7B,QAAQ,KAAKC,mBAAoB;AACjC,QAAQ,KAAKC,aAAc;AAC3B,QAAQ,KAAKC,gBAAiB;AAC9B,QAAQ,KAAKC,YAAa;AAC1B,OAPQ;EAQH;;EACDQ,qBAAqB,GAAG;IACpB,IAAIC,SAAS,GAAG,EAAhB;;IACA,IAAI,KAAKnB,cAAL,KAAwB,IAA5B,EAAkC;MAC9BmB,SAAS,GAAG,MAAZ;IACH;;IACD,OAAQ;AAChB;AACA,MAAM,KAAKP,sBAAuB;AAClC,MAAM,KAAKC,0BAA2B;AACtC,MAAMM,SAAU;AAChB,KALQ;EAMH;;EACDC,0BAA0B,GAAG;IACzB,IAAID,SAAS,GAAG,EAAhB;;IACA,IAAI,KAAKnB,cAAL,KAAwB,IAA5B,EAAkC;MAC9BmB,SAAS,GAAG,MAAZ;IACH;;IACD,OAAQ;AAChB;AACA,MAAMA,SAAU;AAChB,KAHQ;EAIH;;EACDE,iBAAiB,GAAG;IAChB,IAAIC,GAAG,GAAG,EAAV;;IACA,IAAI,KAAKtB,cAAT,EAAyB;MACrBsB,GAAG,GAAG,SAAN;IACH;;IACD,OAAQ;AAChB;AACA,QAAQA,GAAI;AACZ,KAHQ;EAIH;;EACDC,8BAA8B,GAAG;IAC7B,OAAQ;AAChB;AACA,KAFQ;EAGH;;AAzFoB;;AA2FzBxB,kBAAkB,CAAClxyB,IAAnB;EAAA,iBAA+GkxyB,kBAA/G;AAAA;;AACAA,kBAAkB,CAACnpxB,IAAnB,kBAjMyGrB,+DAiMzG;EAAA,MAAmGwqxB,kBAAnG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAjMyGxqxB,6DAiMzG;MAjMyGA,4DAiMmiB,6BAA5oB;MAjMyGA,wDAiM2nB;QAAA,OAAU,4BAAV;MAAA,EAApuB;MAjMyGA,4DAiMgqB,WAAzwB;MAjMyGA,oDAiMsqB,GAA/wB;MAjMyGA,0DAiMgrB,IAAzxB;MAjMyGA,4DAiMssB,iBAA/yB;MAjMyGA,0DAiMoxB,GAA73B;MAjMyGA,0DAiMmzB,IAA55B;MAjMyGA,wDAiM20B,sDAAp7B;IAAA;;IAAA;MAjMyGA,wDAiMwiB,sCAAjpB;MAjMyGA,uDAiM0lB,GAAnsB;MAjMyGA,wDAiM0lB,mCAAnsB;MAjMyGA,uDAiMsqB,GAA/wB;MAjMyGA,+DAiMsqB,YAA/wB;MAjMyGA,uDAiM0uB,GAAn1B;MAjMyGA,wDAiM0uB,oCAAn1B;MAjMyGA,uDAiMi1B,GAA17B;MAjMyGA,wDAiMi1B,4BAA17B;IAAA;EAAA;EAAA,eAA61IovW,oDAA71I,EAA27IA,iDAA37I;EAAA;AAAA;;AACA;EAAA,mDAlMyGpvW,+DAkMzG,CAA2FwqxB,kBAA3F,EAA2H,CAAC;IAChHxwyB,IAAI,EAAEimB,oDAD0G;IAEhHtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,kBAAZ;MAAgCC,QAAQ,EAAE,wmBAA1C;MAAopBjb,MAAM,EAAE,CAAC,kjGAAD;IAA5pB,CAAD;EAF0G,CAAD,CAA3H,EAG4B,YAAY;IAAE,OAAO,EAAP;EAAY,CAHtD,EAGwE;IAAEokyB,WAAW,EAAE,CAAC;MACxE1wyB,IAAI,EAAEmmB,gDAAKA;IAD6D,CAAD,CAAf;IAExDyqxB,WAAW,EAAE,CAAC;MACd5wyB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAF2C;IAIxDghS,MAAM,EAAE,CAAC;MACTnnT,IAAI,EAAEmmB,gDAAKA;IADF,CAAD,CAJgD;IAMxD2qxB,eAAe,EAAE,CAAC;MAClB9wyB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CANuC;IAQxD4qxB,eAAe,EAAE,CAAC;MAClB/wyB,IAAI,EAAEmmB,gDAAKA;IADO,CAAD,CARuC;IAUxD6qxB,mBAAmB,EAAE,CAAC;MACtBhxyB,IAAI,EAAEmmB,gDAAKA;IADW,CAAD,CAVmC;IAYxD8qxB,aAAa,EAAE,CAAC;MAChBjxyB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CAZyC;IAcxD+qxB,gBAAgB,EAAE,CAAC;MACnBlxyB,IAAI,EAAEmmB,gDAAKA;IADQ,CAAD,CAdsC;IAgBxDgrxB,YAAY,EAAE,CAAC;MACfnxyB,IAAI,EAAEmmB,gDAAKA;IADI,CAAD,CAhB0C;IAkBxDirxB,cAAc,EAAE,CAAC;MACjBpxyB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD,CAlBwC;IAoBxDkrxB,sBAAsB,EAAE,CAAC;MACzBrxyB,IAAI,EAAEmmB,gDAAKA;IADc,CAAD,CApBgC;IAsBxDmrxB,0BAA0B,EAAE,CAAC;MAC7BtxyB,IAAI,EAAEmmB,gDAAKA;IADkB,CAAD,CAtB4B;IAwBxDsqxB,cAAc,EAAE,CAAC;MACjBzwyB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD;EAxBwC,CAHxE;AAAA;;AA+BA,IAAI8rxB,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,OAAD,CAAX,GAAuB,iBAAvB;EACAA,WAAW,CAAC,UAAD,CAAX,GAA0B,oBAA1B;AACH,CAHD,EAGGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAHd;;AAKA,IAAIC,UAAJ;;AACA,CAAC,UAAUA,UAAV,EAAsB;EACnBA,UAAU,CAAC,OAAD,CAAV,GAAsB,SAAtB;EACAA,UAAU,CAAC,QAAD,CAAV,GAAuB,QAAvB;EACAA,UAAU,CAAC,OAAD,CAAV,GAAsB,SAAtB;AACH,CAJD,EAIGA,UAAU,KAAKA,UAAU,GAAG,EAAlB,CAJb;;AAMA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,SAAD,CAAX,GAAyB,mBAAzB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,mBAAzB;EACAA,WAAW,CAAC,QAAD,CAAX,GAAwB,kBAAxB;AACH,CAJD,EAIGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAJd;;AAMA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,SAAD,CAAX,GAAyB,iBAAzB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,iBAAzB;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,mBAA3B;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,iBAAzB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,cAAtB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,iBAAzB;EACAA,WAAW,CAAC,QAAD,CAAX,GAAwB,gBAAxB;AACH,CARD,EAQGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CARd;;AAUA,MAAMC,eAAN,CAAsB;EAClB51yB,WAAW,GAAG;IACV,KAAK4a,KAAL,GAAa46xB,WAAW,CAACK,KAAzB;IACA,KAAKh2vB,IAAL,GAAY41vB,UAAU,CAACK,MAAvB;IACA,KAAKlsb,KAAL,GAAa8rb,WAAW,CAACK,OAAzB;IACA,KAAKpkiB,KAAL,GAAagkiB,WAAW,CAACzB,OAAzB;IACA,KAAK3srB,QAAL,GAAgB,KAAhB;EACH;;EACQ,IAALh4G,KAAK,CAACymyB,GAAD,EAAM;IACX,KAAKzurB,QAAL,GAAgByurB,GAAhB;EACH;;EACU,IAAP56jB,OAAO,GAAG;IACV,OAAQ,GAAE,KAAKxgO,KAAM,IAAG,KAAKilC,IAAK,IAAG,KAAK+pU,KAAM,IAAG,KAAKj4G,KAAM,EAA9D;EACH;;AAbiB;;AAetBikiB,eAAe,CAAC/yyB,IAAhB;EAAA,iBAA4G+yyB,eAA5G;AAAA;;AACAA,eAAe,CAAChrxB,IAAhB,kBAhRyGrB,+DAgRzG;EAAA,MAAgGqsxB,eAAhG;EAAA;EAAA;EAAA;IAAA;MAhRyGrsxB,yDAgRzG;MAhRyGA,wDAgRzG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAhRyGA,6DAgRzG;MAhRyGA,0DAgR6R,GAAtY;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDAjRyGA,+DAiRzG,CAA2FqsxB,eAA3F,EAAwH,CAAC;IAC7GryyB,IAAI,EAAEimB,oDADuG;IAE7GtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,wDAAZ;MAAsEC,QAAQ,EAAG,2BAAjF;MAA6GvY,IAAI,EAAE;QAC9G,mBAAmB;MAD2F,CAAnH;MAEI1C,MAAM,EAAE,CAAC,y8RAAD;IAFZ,CAAD;EAFuG,CAAD,CAAxH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD,EAKwE;IAAE+K,KAAK,EAAE,CAAC;MAClErX,IAAI,EAAEmmB,gDAAKA;IADuD,CAAD,CAAT;IAExDm2B,IAAI,EAAE,CAAC;MACPt8C,IAAI,EAAEmmB,gDAAKA;IADJ,CAAD,CAFkD;IAIxDkgW,KAAK,EAAE,CAAC;MACRrmX,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CAJiD;IAMxDioP,KAAK,EAAE,CAAC;MACRpuQ,IAAI,EAAEmmB,gDAAKA;IADH,CAAD,CANiD;IAQxD69F,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAEmmB,gDAAKA;IADA,CAAD,CAR8C;IAUxD0xN,OAAO,EAAE,CAAC;MACV73O,IAAI,EAAE49sB,sDADI;MAEVj7sB,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAV+C,CALxE;AAAA;;AAoBA,IAAI+vyB,UAAJ;;AACA,CAAC,UAAUA,UAAV,EAAsB;EACnBA,UAAU,CAAC,OAAD,CAAV,GAAsB,iBAAtB;EACAA,UAAU,CAAC,QAAD,CAAV,GAAuB,iBAAvB;EACAA,UAAU,CAAC,OAAD,CAAV,GAAsB,iBAAtB;EACAA,UAAU,CAAC,SAAD,CAAV,GAAwB,kBAAxB;AACH,CALD,EAKGA,UAAU,KAAKA,UAAU,GAAG,EAAlB,CALb;;AAOA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,aAAD,CAAX,GAA6B,kCAA7B;EACAA,WAAW,CAAC,UAAD,CAAX,GAA0B,+BAA1B;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,gCAA3B;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,8BAAzB;EACAA,WAAW,CAAC,WAAD,CAAX,GAA2B,gCAA3B;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,8BAAzB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,2BAAtB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,8BAAzB;EACAA,WAAW,CAAC,QAAD,CAAX,GAAwB,6BAAxB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,8BAAzB;AACH,CAXD,EAWGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CAXd;;AAaA,MAAMC,WAAW,GAAG79O,4DAAO,CAAC,WAAD,EAAc,CACrChwX,+DAAU,CAAC,QAAD,EAAW,CACjB1tL,0DAAK,CAAC;EAAEmzD,OAAO,EAAE;AAAX,CAAD,CADY,EAEjB22I,4DAAO,CAAC,MAAD,EAAS9pM,0DAAK,CAAC;EAAEmzD,OAAO,EAAE;AAAX,CAAD,CAAd,CAFU,CAAX,CAD2B,EAKrCu6H,+DAAU,CAAC,QAAD,EAAW,CACjB1tL,0DAAK,CAAC;EAAEmzD,OAAO,EAAE;AAAX,CAAD,CADY,EAEjB22I,4DAAO,CAAC,MAAD,EAAS9pM,0DAAK,CAAC;EAAEmzD,OAAO,EAAE;AAAX,CAAD,CAAd,CAFU,CAAX,CAL2B,CAAd,CAA3B;;AAWA,MAAMqouB,eAAN,CAAsB;EAClBp2yB,WAAW,GAAG;IACV,KAAK8mQ,SAAL,GAAiB,KAAjB;IACA,KAAKuviB,WAAL,GAAmBH,WAAW,CAAChC,OAA/B;IACA,KAAKoC,UAAL,GAAkBL,UAAU,CAAC/B,OAA7B;IACA,KAAKqC,UAAL,GAAkB,EAAlB;EACH;;EACDnoM,QAAQ,GAAG,CACV;;EACDjgkB,eAAe,GAAG,CACjB;;AAViB;;AAYtBiowB,eAAe,CAACvzyB,IAAhB;EAAA,iBAA4GuzyB,eAA5G;AAAA;;AACAA,eAAe,CAACxrxB,IAAhB,kBAnVyGrB,+DAmVzG;EAAA,MAAgG6sxB,eAAhG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAnVyG7sxB,4DAmVgL,aAAzR;MAnVyGA,wDAmVuN,mDAAhU;MAnVyGA,0DAmVogB,EAA7mB;IAAA;;IAAA;MAnVyGA,uDAmV+P,GAAxW;MAnVyGA,wDAmV+P,uBAAxW;IAAA;EAAA;EAAA,eAA2zKovW,oDAA3zK,EAAy5KA,iDAAz5K;EAAA;EAAA;IAAA,WAA++K,CAACw9a,WAAD;EAA/+K;AAAA;;AACA;EAAA,mDApVyG5sxB,+DAoVzG,CAA2F6sxB,eAA3F,EAAwH,CAAC;IAC7G7yyB,IAAI,EAAEimB,oDADuG;IAE7GtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,eAAZ;MAA6B6zrB,UAAU,EAAE,CAACy3F,WAAD,CAAzC;MAAwDrrxB,QAAQ,EAAE,gWAAlE;MAAoajb,MAAM,EAAE,CAAC,2oJAAD;IAA5a,CAAD;EAFuG,CAAD,CAAxH,EAG4B,YAAY;IAAE,OAAO,EAAP;EAAY,CAHtD,EAGwE;IAAEi3P,SAAS,EAAE,CAAC;MACtEvjQ,IAAI,EAAEmmB,gDAAKA;IAD2D,CAAD,CAAb;IAExD2sxB,WAAW,EAAE,CAAC;MACd9yyB,IAAI,EAAEmmB,gDAAKA;IADG,CAAD,CAF2C;IAIxD4sxB,UAAU,EAAE,CAAC;MACb/yyB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD,CAJ4C;IAMxD6sxB,UAAU,EAAE,CAAC;MACbhzyB,IAAI,EAAEmmB,gDAAKA;IADE,CAAD;EAN4C,CAHxE;AAAA;;AAaA,IAAI8sxB,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAAC,OAAD,CAAT,GAAqB,kBAArB;EACAA,SAAS,CAAC,QAAD,CAAT,GAAsB,kBAAtB;EACAA,SAAS,CAAC,OAAD,CAAT,GAAqB,kBAArB;EACAA,SAAS,CAAC,SAAD,CAAT,GAAuB,mBAAvB;AACH,CALD,EAKGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CALZ;;AAOA,MAAMC,cAAN,CAAqB;EACjBz2yB,WAAW,GAAG;IACV,KAAK02yB,UAAL,GAAkB,EAAlB;IACA,KAAKzrvB,SAAL,GAAiB,IAAjB;IACA,KAAK0rvB,aAAL,GAAqB,IAArB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,cAAL,GAAsB,KAAtB;IACA,KAAKC,SAAL,GAAiBN,SAAS,CAACtC,OAA3B;IACA,KAAK9zyB,EAAL,GAAU,EAAV;IACA,KAAK2hjB,MAAL,GAAc,IAAI7ijB,uDAAJ,EAAd;EACH;;EACDkvmB,QAAQ,GAAG,CACV;;EACDn9K,QAAQ,GAAG;IACP,OAAO,KAAKylX,UAAL,KAAoB,EAA3B;EACH;;EACDK,UAAU,GAAG;IACT,KAAK9rvB,SAAL,GAAiB,KAAjB;IACA,KAAK82f,MAAL,CAAYl6iB,IAAZ,CAAiB,KAAKzH,EAAtB;EACH;;AAnBgB;;AAqBrBq2yB,cAAc,CAAC5zyB,IAAf;EAAA,iBAA2G4zyB,cAA3G;AAAA;;AACAA,cAAc,CAAC7rxB,IAAf,kBA/XyGrB,+DA+XzG;EAAA,MAA+FktxB,cAA/F;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MA/XyGltxB,6DA+XzG;MA/XyGA,4DA+XwR,0BAAjY;MA/XyGA,wDA+Xqa,kDAA9gB;MA/XyGA,wDA+X4mB,kDAArtB;MA/XyGA,4DA+XouB,aAA70B;MA/XyGA,0DA+Xy1B,GAAl8B;MA/XyGA,0DA+Xs5B,EAA//B;MA/XyGA,uDA+Xs6B,aAA/gC;MA/XyGA,0DA+X88B,IAAvjC;IAAA;;IAAA;MA/XyGA,wDA+XmT,YA/XnTA,6DA+XmT,wBAA5Z;MA/XyGA,uDA+XmY,GAA5e;MA/XyGA,wDA+XmY,0BAA5e;MA/XyGA,uDA+X2a,GAAphB;MA/XyGA,wDA+X2a,4BAAphB;MA/XyGA,uDA+XknB,GAA3tB;MA/XyGA,wDA+XknB,sBAA3tB;MA/XyGA,uDA+X2wB,GAAp3B;MA/XyGA,wDA+X2wB,YA/X3wBA,6DA+X2wB,+CAAp3B;IAAA;EAAA;EAAA,eAA0tJovW,oDAA1tJ,EAAwzJA,iDAAxzJ;EAAA;AAAA;;AACA;EAAA,mDAhYyGpvW,+DAgYzG,CAA2FktxB,cAA3F,EAAuH,CAAC;IAC5GlzyB,IAAI,EAAEimB,oDADsG;IAE5GtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,UAAZ;MAAwBC,QAAQ,EAAE,gtBAAlC;MAAovBjb,MAAM,EAAE,CAAC,olHAAD;IAA5vB,CAAD;EAFsG,CAAD,CAAvH,EAG4B,YAAY;IAAE,OAAO,EAAP;EAAY,CAHtD,EAGwE;IAAE6myB,UAAU,EAAE,CAAC;MACvEnzyB,IAAI,EAAEmmB,gDAAKA;IAD4D,CAAD,CAAd;IAExDuhC,SAAS,EAAE,CAAC;MACZ1nD,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAF6C;IAIxDitxB,aAAa,EAAE,CAAC;MAChBpzyB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CAJyC;IAMxDktxB,aAAa,EAAE,CAAC;MAChBrzyB,IAAI,EAAEmmB,gDAAKA;IADK,CAAD,CANyC;IAQxDmtxB,cAAc,EAAE,CAAC;MACjBtzyB,IAAI,EAAEmmB,gDAAKA;IADM,CAAD,CARwC;IAUxDotxB,SAAS,EAAE,CAAC;MACZvzyB,IAAI,EAAEmmB,gDAAKA;IADC,CAAD,CAV6C;IAYxDtpB,EAAE,EAAE,CAAC;MACLmD,IAAI,EAAEmmB,gDAAKA;IADN,CAAD,CAZoD;IAcxDq4hB,MAAM,EAAE,CAAC;MACTx+iB,IAAI,EAAEqmB,iDAAMA;IADH,CAAD;EAdgD,CAHxE;AAAA;;AAqBA,IAAIotxB,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAAC,UAAD,CAAf,GAA8B,qBAA9B;EACAA,eAAe,CAAC,YAAD,CAAf,GAAgC,uBAAhC;EACAA,eAAe,CAAC,WAAD,CAAf,GAA+B,sBAA/B;EACAA,eAAe,CAAC,aAAD,CAAf,GAAiC,wBAAjC;EACAA,eAAe,CAAC,eAAD,CAAf,GAAmC,0BAAnC;EACAA,eAAe,CAAC,cAAD,CAAf,GAAkC,yBAAlC;AACH,CAPD,EAOGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CAPlB;;AASA,MAAMC,cAAN,CAAqB;EACjBj3yB,WAAW,CAAC6tH,OAAD,EAAUtqH,IAAV,EAAgBi7H,QAAQ,GAAG,IAA3B,EAAiC82d,SAAjC,EAA4C;IACnD,KAAKzne,OAAL,GAAeA,OAAf;IACA,KAAKtqH,IAAL,GAAYA,IAAZ;IACA,KAAKi7H,QAAL,GAAgBA,QAAhB;IACA,KAAK82d,SAAL,GAAiBA,SAAjB;IACA,KAAKl1lB,EAAL,GAAU,IAAIF,IAAJ,GAAW+D,OAAX,EAAV;EACH;;AAPgB;;AAUrB,IAAIizyB,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpBA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,MAAD,CAAX,GAAsB,eAAtB;EACAA,WAAW,CAAC,SAAD,CAAX,GAAyB,kBAAzB;EACAA,WAAW,CAAC,OAAD,CAAX,GAAuB,gBAAvB;AACH,CALD,EAKGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CALd;;AAOA,MAAMC,cAAN,CAAqB;EACjBn3yB,WAAW,GAAG;IACV,KAAKo3yB,gBAAL,GAAwB,IAAxB;IACA,KAAKC,UAAL,GAAkB,IAAlB;IACA,KAAKC,mBAAL,GAA2B,IAAI1zP,yCAAJ,EAA3B;EACH;;EACD2zP,KAAK,CAAC1prB,OAAD,EAAUtqH,IAAV,EAAgBi7H,QAAQ,GAAG,KAAK44qB,gBAAhC,EAAkD9hN,SAAS,GAAG,KAAK+hN,UAAnE,EAA+E;IAChF,KAAKC,mBAAL,CAAyBllyB,IAAzB,CAA8B,IAAI6kyB,cAAJ,CAAmBpprB,OAAnB,EAA4BtqH,IAA5B,EAAkCi7H,QAAlC,EAA4C82d,SAA5C,CAA9B;EACH;;EACDrwV,OAAO,CAACp3I,OAAD,EAAU2Q,QAAQ,GAAG,KAAK44qB,gBAA1B,EAA4C9hN,SAAS,GAAG,KAAK+hN,UAA7D,EAAyE;IAC5E,KAAKE,KAAL,CAAW1prB,OAAX,EAAoBqprB,WAAW,CAACM,OAAhC,EAAyCh5qB,QAAzC,EAAmD82d,SAAnD;EACH;;EACD72d,IAAI,CAAC5Q,OAAD,EAAU2Q,QAAQ,GAAG,KAAK44qB,gBAA1B,EAA4C9hN,SAAS,GAAG,KAAK+hN,UAA7D,EAAyE;IACzE,KAAKE,KAAL,CAAW1prB,OAAX,EAAoBqprB,WAAW,CAACO,IAAhC,EAAsCj5qB,QAAtC,EAAgD82d,SAAhD;EACH;;EACDxvB,OAAO,CAACj4c,OAAD,EAAU2Q,QAAQ,GAAG,KAAK44qB,gBAA1B,EAA4C9hN,SAAS,GAAG,KAAK+hN,UAA7D,EAAyE;IAC5E,KAAKE,KAAL,CAAW1prB,OAAX,EAAoBqprB,WAAW,CAACQ,OAAhC,EAAyCl5qB,QAAzC,EAAmD82d,SAAnD;EACH;;EACDtolB,KAAK,CAAC6gH,OAAD,EAAU2Q,QAAQ,GAAG,KAAK44qB,gBAA1B,EAA4C9hN,SAAS,GAAG,KAAK+hN,UAA7D,EAAyE;IAC1E,KAAKE,KAAL,CAAW1prB,OAAX,EAAoBqprB,WAAW,CAACS,KAAhC,EAAuCn5qB,QAAvC,EAAiD82d,SAAjD;EACH;;EACDsiN,cAAc,GAAG;IACb,OAAO,KAAKN,mBAAL,CAAyBrwP,YAAzB,EAAP;EACH;;AAvBgB;;AAyBrBkwP,cAAc,CAACt0yB,IAAf;EAAA,iBAA2Gs0yB,cAA3G;AAAA;;AACAA,cAAc,CAACn0yB,KAAf,kBA3cyGumB,gEA2czG;EAAA,OAA+G4txB,cAA/G;EAAA,SAA+GA,cAA/G;EAAA,YAA2I;AAA3I;;AACA;EAAA,mDA5cyG5txB,+DA4czG,CAA2F4txB,cAA3F,EAAuH,CAAC;IAC5G5zyB,IAAI,EAAEtE,qDADsG;IAE5GiH,IAAI,EAAE,CAAC;MACCohlB,UAAU,EAAE;IADb,CAAD;EAFsG,CAAD,CAAvH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMuwN,gBAAN,CAAuB;EACnB73yB,WAAW,CAAC83yB,eAAD,EAAkB;IACzB,KAAKA,eAAL,GAAuBA,eAAvB;IACA,KAAK1iyB,QAAL,GAAgB4hyB,eAAe,CAACz2lB,YAAhC;IACA,KAAKw3lB,gBAAL,GAAwB,IAAIn0P,yCAAJ,EAAxB;IACA,KAAKo0P,QAAL,GAAgB,EAAhB;EACH;;EACD5pM,QAAQ,GAAG;IACP,KAAK0pM,eAAL,CAAqBF,cAArB,GACKxtyB,IADL,CACU4ojB,yDAAS,CAAC,KAAK+kP,gBAAN,CADnB,EAEK/2yB,SAFL,CAEe6sH,OAAO,IAAI,KAAKoqrB,mBAAL,CAAyBpqrB,OAAzB,CAF1B;EAGH;;EACDoqrB,mBAAmB,CAACpqrB,OAAD,EAAU;IACzB,IAAI,KAAKqqrB,qBAAL,EAAJ,EAAkC;MAC9B,KAAKF,QAAL,CAAc3ie,OAAd,CAAsBxnN,OAAtB;IACH,CAFD,MAGK;MACD,KAAKmqrB,QAAL,CAAc1xyB,IAAd,CAAmBunH,OAAnB;IACH;;IACDj4E,OAAO,CAACmD,GAAR,CAAY80E,OAAO,CAACtqH,IAAR,GAAe,KAAf,GAAuBsqH,OAAO,CAACyne,SAA3C;;IACA,IAAIzne,OAAO,CAACyne,SAAZ,EAAuB;MACnB9vlB,UAAU,CAAC,MAAM,KAAK2yyB,cAAL,CAAoBtqrB,OAApB,CAAP,EAAqCA,OAAO,CAAC2Q,QAA7C,CAAV;IACH;EACJ;;EACD05qB,qBAAqB,GAAG;IACpB,OAAO,KAAK9iyB,QAAL,KAAkB4hyB,eAAe,CAAC92lB,QAAlC,IACH,KAAK9qM,QAAL,KAAkB4hyB,eAAe,CAACj3lB,UAD/B,IAEH,KAAK3qM,QAAL,KAAkB4hyB,eAAe,CAAC32lB,SAFtC;EAGH;;EACD83lB,cAAc,CAACtqrB,OAAD,EAAU;IACpB,MAAM3rH,KAAK,GAAG,KAAK81yB,QAAL,CAAczjqB,SAAd,CAAwBziG,CAAC,IAAIA,CAAC,CAAC1xC,EAAF,KAASytH,OAAO,CAACztH,EAA9C,CAAd;;IACA,IAAI8B,KAAK,GAAG,CAAC,CAAb,EAAgB;MACZ,KAAK81yB,QAAL,CAActpvB,MAAd,CAAqBxsD,KAArB,EAA4B,CAA5B;IACH;EACJ;;EACDk2yB,WAAW,CAACvqrB,OAAD,EAAU;IACjB,KAAKsqrB,cAAL,CAAoBtqrB,OAApB;EACH;;EACDnlH,WAAW,GAAG;IACV,KAAKqvyB,gBAAL,CAAsB3lyB,IAAtB;;IACA,KAAK2lyB,gBAAL,CAAsB5yP,QAAtB;EACH;;AAzCkB;;AA2CvB0yP,gBAAgB,CAACh1yB,IAAjB;EAAA,iBAA6Gg1yB,gBAA7G,EA9fyGtuxB,+DA8fzG,CAA+I4txB,cAA/I;AAAA;;AACAU,gBAAgB,CAACjtxB,IAAjB,kBA/fyGrB,+DA+fzG;EAAA,MAAiGsuxB,gBAAjG;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MA/fyGtuxB,4DA+f6F,aAAtM;MA/fyGA,wDA+f8L,oDAAvS;MA/fyGA,0DA+fmoB,EAA5uB;IAAA;;IAAA;MA/fyGA,wDA+fiK,yBAA1Q;MA/fyGA,uDA+f6P,GAAtW;MA/fyGA,wDA+f6P,yBAAtW;IAAA;EAAA;EAAA,eAA8pIovW,oDAA9pI,EAA4vIA,oDAA5vI,EAAy3IA,iDAAz3I;EAAA;EAAA;IAAA,WAA+8I,CAACw9a,WAAD;EAA/8I;AAAA;;AACA;EAAA,mDAhgByG5sxB,+DAggBzG,CAA2FsuxB,gBAA3F,EAAyH,CAAC;IAC9Gt0yB,IAAI,EAAEimB,oDADwG;IAE9GtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,YAAZ;MAA0B6zrB,UAAU,EAAE,CAACy3F,WAAD,CAAtC;MAAqDrrxB,QAAQ,EAAE,kjBAA/D;MAAmnBjb,MAAM,EAAE,CAAC,+2GAAD;IAA3nB,CAAD;EAFwG,CAAD,CAAzH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEtM,IAAI,EAAE4zyB;IAAR,CAAD,CAAP;EAAoC,CAH9E,EAGgG;IAAE/hyB,QAAQ,EAAE,CAAC;MAC7F7R,IAAI,EAAEmmB,gDAAKA;IADkF,CAAD;EAAZ,CAHhG;AAAA;;AAOA,MAAM2uxB,iBAAN,CAAwB;EACpBr4yB,WAAW,GAAG;IACV,KAAKs4yB,aAAL,GAAqB,EAArB;IACA,KAAK/wrB,QAAL,GAAgB,KAAhB;IACA,KAAK+E,OAAL,GAAe,KAAf;;IACA,KAAKq+I,QAAL,GAAgB,MAAM,CAAG,CAAzB;;IACA,KAAK4tiB,OAAL,GAAe,MAAM,CAAG,CAAxB;EACH;;EACDh6E,gBAAgB,CAACt9tB,EAAD,EAAK;IACjB,KAAK0pQ,QAAL,GAAgB1pQ,EAAhB;EACH;;EACDq9tB,iBAAiB,CAACr9tB,EAAD,EAAK;IAClB,KAAKs3yB,OAAL,GAAet3yB,EAAf;EACH;;EACDmtmB,QAAQ,GAAG,CAAG;;EACdywH,UAAU,CAACvymB,OAAD,EAAU;IAChB,KAAKA,OAAL,GAAeA,OAAf;EACH;;EACDksrB,aAAa,CAAC1mwB,CAAD,EAAI;IACb,MAAM2mwB,KAAK,GAAG3mwB,CAAC,CAACtoC,MAAhB;IACA,MAAMitC,GAAG,GAAGgiwB,KAAK,CAACnsrB,OAAlB;;IACA,IAAI71E,GAAG,KAAK,IAAZ,EAAkB;MACd;MACA,KAAK61E,OAAL,GAAe71E,GAAf,CAFc,CAGd;;MACA,KAAKk0N,QAAL,CAAcl0N,GAAd;IACH;EACJ;;AA3BmB;;AA6BxB4hwB,iBAAiB,CAACx1yB,IAAlB;EAAA,iBAA8Gw1yB,iBAA9G;AAAA;;AACAA,iBAAiB,CAACztxB,IAAlB,kBAriByGrB,+DAqiBzG;EAAA,MAAkG8uxB,iBAAlG;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA,WAriByG9uxB,gEAqiBzG,CAA2N,CACnN;IACI/d,OAAO,EAAEkztB,6DADb;IAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM0pM,iBAAP,CAF3B;IAGIzjoB,KAAK,EAAE;EAHX,CADmN,CAA3N;EAAA;EAAA;EAAA;EAAA;IAAA;MAriByGrrJ,4DA2iBzE,8BANhC;MAriByGA,wDA2iBgG;QAAA,OAAkB,yBAAlB;MAAA,EANzM;MAriByGA,0DA2iBvB,EANlF;MAriByGA,oDA2iBiJ,GAN1P;MAriByGA,0DA2iBsK,EAN/Q;IAAA;;IAAA;MAriByGA,wDA2iBlE,YA3iBkEA,6DA2iBlE,uBANvC;MAriByGA,uDA2iB0B,GANnI;MAriByGA,wDA2iB0B,kDANnI;MAriByGA,uDA2iBiJ,GAN1P;MAriByGA,gEA2iBiJ,8BAN1P;IAAA;EAAA;EAAA,eAM22FovW,oDAN32F,EAMy8Fo2O,wEANz8F,EAM0nGA,2DAN1nG,EAMkuGA,mDANluG;EAAA;AAAA;;AAOA;EAAA,mDA5iByGxllB,+DA4iBzG,CAA2F8uxB,iBAA3F,EAA0H,CAAC;IAC/G90yB,IAAI,EAAEimB,oDADyG;IAE/GtjB,IAAI,EAAE,CAAC;MAAE2kB,QAAQ,EAAE,aAAZ;MAA2Btf,SAAS,EAAE,CACjC;QACIC,OAAO,EAAEkztB,6DADb;QAEIjztB,WAAW,EAAEkjmB,yDAAU,CAAC,MAAM0pM,iBAAP,CAF3B;QAGIzjoB,KAAK,EAAE;MAHX,CADiC,CAAtC;MAMI9pJ,QAAQ,EAAE,iQANd;MAMiRjb,MAAM,EAAE,CAAC,mhFAAD;IANzR,CAAD;EAFyG,CAAD,CAA1H,EAS4B,YAAY;IAAE,OAAO,EAAP;EAAY,CATtD,EASwE;IAAEyoyB,aAAa,EAAE,CAAC;MAC1E/0yB,IAAI,EAAEmmB,gDAAKA;IAD+D,CAAD,CAAjB;IAExD69F,QAAQ,EAAE,CAAC;MACXhkH,IAAI,EAAEmmB,gDAAKA;IADA,CAAD;EAF8C,CATxE;AAAA;;AAeA,MAAMgvxB,YAAN,CAAmB;EACf14yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,MAAL;QACI,OAAOmzyB,SAAS,CAACt7qB,IAAjB;;MACJ,KAAK,QAAL;QACI,OAAOs7qB,SAAS,CAAC1zlB,MAAjB;;MACJ,KAAK,OAAL;QACI,OAAO0zlB,SAAS,CAACp7qB,KAAjB;;MACJ;QACI,OAAOo7qB,SAAS,CAACU,OAAjB;IARR;EAUH;;AAbc;;AAenBwE,YAAY,CAAC71yB,IAAb;EAAA,iBAAyG61yB,YAAzG;AAAA;;AACAA,YAAY,CAAChkL,KAAb,kBA3kByGnrmB,0DA2kBzG;EAAA;EAAA,MAAuGmvxB,YAAvG;EAAA;AAAA;;AACA;EAAA,mDA5kByGnvxB,+DA4kBzG,CAA2FmvxB,YAA3F,EAAqH,CAAC;IAC1Gn1yB,IAAI,EAAEu2mB,+CADoG;IAE1G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFoG,CAAD,CAArH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAM0nyB,aAAN,CAAoB;EAChB34yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,SAAL;QACI,OAAOozyB,SAAS,CAACmF,OAAjB;;MACJ,KAAK,WAAL;QACI,OAAOnF,SAAS,CAACoF,SAAjB;;MACJ,KAAK,UAAL;QACI,OAAOpF,SAAS,CAACqF,QAAjB;;MACJ,KAAK,WAAL;QACI,OAAOrF,SAAS,CAACsF,SAAjB;;MACJ,KAAK,WAAL;QACI,OAAOtF,SAAS,CAACuF,SAAjB;;MACJ,KAAK,SAAL;QACI,OAAOvF,SAAS,CAAC+D,OAAjB;;MACJ,KAAK,MAAL;QACI,OAAO/D,SAAS,CAACgE,IAAjB;;MACJ,KAAK,SAAL;QACI,OAAOhE,SAAS,CAACiE,OAAjB;;MACJ,KAAK,QAAL;QACI,OAAOjE,SAAS,CAACwF,MAAjB;;MACJ;QACI,OAAOxF,SAAS,CAACS,OAAjB;IApBR;EAsBH;;AAzBe;;AA2BpByE,aAAa,CAAC91yB,IAAd;EAAA,iBAA0G81yB,aAA1G;AAAA;;AACAA,aAAa,CAACjkL,KAAd,kBA/mByGnrmB,0DA+mBzG;EAAA;EAAA,MAAwGovxB,aAAxG;EAAA;AAAA;;AACA;EAAA,mDAhnByGpvxB,+DAgnBzG,CAA2FovxB,aAA3F,EAAsH,CAAC;IAC3Gp1yB,IAAI,EAAEu2mB,+CADqG;IAE3G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFqG,CAAD,CAAtH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMioyB,iBAAN,CAAwB;EACpBl5yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAOqzyB,aAAa,CAACyF,KAArB;;MACJ,KAAK,OAAL;QACI,OAAOzF,aAAa,CAAC0F,KAArB;;MACJ,KAAK,YAAL;QACI,OAAO1F,aAAa,CAAC2F,UAArB;;MACJ;QACI,OAAO3F,aAAa,CAACQ,OAArB;IARR;EAUH;;AAbmB;;AAexBgF,iBAAiB,CAACr2yB,IAAlB;EAAA,iBAA8Gq2yB,iBAA9G;AAAA;;AACAA,iBAAiB,CAACxkL,KAAlB,kBAvoByGnrmB,0DAuoBzG;EAAA;EAAA,MAA4G2vxB,iBAA5G;EAAA;AAAA;;AACA;EAAA,mDAxoByG3vxB,+DAwoBzG,CAA2F2vxB,iBAA3F,EAA0H,CAAC;IAC/G31yB,IAAI,EAAEu2mB,+CADyG;IAE/G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMqoyB,WAAN,CAAkB;EACdt5yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAOszyB,OAAO,CAAC4F,KAAf;;MACJ,KAAK,MAAL;QACI,OAAO5F,OAAO,CAAC6F,IAAf;;MACJ,KAAK,MAAL;QACI,OAAO7F,OAAO,CAAC8F,IAAf;;MACJ,KAAK,QAAL;QACI,OAAO9F,OAAO,CAAC+F,MAAf;;MACJ,KAAK,aAAL;QACI,OAAO/F,OAAO,CAACgG,WAAf;;MACJ,KAAK,YAAL;QACI,OAAOhG,OAAO,CAACiG,UAAf;;MACJ,KAAK,MAAL;QACI,OAAOjG,OAAO,CAAClwb,IAAf;;MACJ,KAAK,SAAL;QACI,OAAOkwb,OAAO,CAACO,OAAf;;MACJ;QACI,OAAOP,OAAO,CAACO,OAAf;IAlBR;EAoBH;;AAvBa;;AAyBlBoF,WAAW,CAACz2yB,IAAZ;EAAA,iBAAwGy2yB,WAAxG;AAAA;;AACAA,WAAW,CAAC5kL,KAAZ,kBAzqByGnrmB,0DAyqBzG;EAAA;EAAA,MAAsG+vxB,WAAtG;EAAA;AAAA;;AACA;EAAA,mDA1qByG/vxB,+DA0qBzG,CAA2F+vxB,WAA3F,EAAoH,CAAC;IACzG/1yB,IAAI,EAAEu2mB,+CADmG;IAEzG5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFmG,CAAD,CAApH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAM4oyB,mBAAN,CAA0B;EACtB75yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,SAAL;QACI,OAAOuzyB,eAAe,CAACgF,OAAvB;;MACJ,KAAK,WAAL;QACI,OAAOhF,eAAe,CAACiF,SAAvB;;MACJ,KAAK,UAAL;QACI,OAAOjF,eAAe,CAACkF,QAAvB;;MACJ,KAAK,WAAL;QACI,OAAOlF,eAAe,CAACmF,SAAvB;;MACJ,KAAK,WAAL;QACI,OAAOnF,eAAe,CAACoF,SAAvB;;MACJ,KAAK,SAAL;QACI,OAAOpF,eAAe,CAAC4D,OAAvB;;MACJ,KAAK,MAAL;QACI,OAAO5D,eAAe,CAAC6D,IAAvB;;MACJ,KAAK,SAAL;QACI,OAAO7D,eAAe,CAAC8D,OAAvB;;MACJ,KAAK,QAAL;QACI,OAAO9D,eAAe,CAACqF,MAAvB;;MACJ,KAAK,aAAL;QACI,OAAOrF,eAAe,CAACkG,WAAvB;;MACJ,KAAK,SAAL;QACI,OAAOlG,eAAe,CAACM,OAAvB;;MACJ,KAAK,OAAL;QACI,OAAON,eAAe,CAACmG,KAAvB;;MACJ,KAAK,OAAL;QACI,OAAOnG,eAAe,CAACoG,KAAvB;;MACJ;QACI,OAAOpG,eAAe,CAACM,OAAvB;IA5BR;EA8BH;;AAjCqB;;AAmC1B2F,mBAAmB,CAACh3yB,IAApB;EAAA,iBAAgHg3yB,mBAAhH;AAAA;;AACAA,mBAAmB,CAACnlL,KAApB,kBArtByGnrmB,0DAqtBzG;EAAA;EAAA,MAA8GswxB,mBAA9G;EAAA;AAAA;;AACA;EAAA,mDAttByGtwxB,+DAstBzG,CAA2FswxB,mBAA3F,EAA4H,CAAC;IACjHt2yB,IAAI,EAAEu2mB,+CAD2G;IAEjH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMgpyB,eAAN,CAAsB;EAClBj6yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,SAAL;QACI,OAAOwzyB,WAAW,CAAC+E,OAAnB;;MACJ,KAAK,WAAL;QACI,OAAO/E,WAAW,CAACgF,SAAnB;;MACJ,KAAK,UAAL;QACI,OAAOhF,WAAW,CAACiF,QAAnB;;MACJ,KAAK,WAAL;QACI,OAAOjF,WAAW,CAACkF,SAAnB;;MACJ,KAAK,WAAL;QACI,OAAOlF,WAAW,CAACmF,SAAnB;;MACJ,KAAK,SAAL;QACI,OAAOnF,WAAW,CAAC2D,OAAnB;;MACJ,KAAK,MAAL;QACI,OAAO3D,WAAW,CAAC4D,IAAnB;;MACJ,KAAK,SAAL;QACI,OAAO5D,WAAW,CAAC6D,OAAnB;;MACJ,KAAK,QAAL;QACI,OAAO7D,WAAW,CAACoF,MAAnB;;MACJ,KAAK,aAAL;QACI,OAAOpF,WAAW,CAACiG,WAAnB;;MACJ,KAAK,SAAL;QACI,OAAOjG,WAAW,CAACK,OAAnB;;MACJ;QACI,OAAOL,WAAW,CAACK,OAAnB;IAxBR;EA0BH;;AA7BiB;;AA+BtB+F,eAAe,CAACp3yB,IAAhB;EAAA,iBAA4Go3yB,eAA5G;AAAA;;AACAA,eAAe,CAACvlL,KAAhB,kBA7vByGnrmB,0DA6vBzG;EAAA;EAAA,MAA0G0wxB,eAA1G;EAAA;AAAA;;AACA;EAAA,mDA9vByG1wxB,+DA8vBzG,CAA2F0wxB,eAA3F,EAAwH,CAAC;IAC7G12yB,IAAI,EAAEu2mB,+CADuG;IAE7G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFuG,CAAD,CAAxH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMipyB,eAAN,CAAsB;EAClBl6yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,MAAL;QACI,OAAOyzyB,WAAW,CAACnkY,IAAnB;;MACJ,KAAK,QAAL;QACI,OAAOmkY,WAAW,CAACM,MAAnB;;MACJ;QACI,OAAON,WAAW,CAACM,MAAnB;IANR;EAQH;;AAXiB;;AAatB8F,eAAe,CAACr3yB,IAAhB;EAAA,iBAA4Gq3yB,eAA5G;AAAA;;AACAA,eAAe,CAACxlL,KAAhB,kBAnxByGnrmB,0DAmxBzG;EAAA;EAAA,MAA0G2wxB,eAA1G;EAAA;AAAA;;AACA;EAAA,mDApxByG3wxB,+DAoxBzG,CAA2F2wxB,eAA3F,EAAwH,CAAC;IAC7G32yB,IAAI,EAAEu2mB,+CADuG;IAE7G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFuG,CAAD,CAAxH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMkpyB,mBAAN,CAA0B;EACtBn6yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,SAAL;QACI,OAAOs1yB,WAAW,CAACiD,OAAnB;;MACJ,KAAK,SAAL;QACI,OAAOjD,WAAW,CAACzB,OAAnB;;MACJ,KAAK,WAAL;QACI,OAAOyB,WAAW,CAACkD,SAAnB;;MACJ,KAAK,SAAL;QACI,OAAOlD,WAAW,CAAC6B,OAAnB;;MACJ,KAAK,MAAL;QACI,OAAO7B,WAAW,CAAC8B,IAAnB;;MACJ,KAAK,SAAL;QACI,OAAO9B,WAAW,CAAC+B,OAAnB;;MACJ,KAAK,QAAL;QACI,OAAO/B,WAAW,CAACsD,MAAnB;;MACJ;QACI,OAAOtD,WAAW,CAACzB,OAAnB;IAhBR;EAkBH;;AArBqB;;AAuB1BiG,mBAAmB,CAACt3yB,IAApB;EAAA,iBAAgHs3yB,mBAAhH;AAAA;;AACAA,mBAAmB,CAACzlL,KAApB,kBAnzByGnrmB,0DAmzBzG;EAAA;EAAA,MAA8G4wxB,mBAA9G;EAAA;AAAA;;AACA;EAAA,mDApzByG5wxB,+DAozBzG,CAA2F4wxB,mBAA3F,EAA4H,CAAC;IACjH52yB,IAAI,EAAEu2mB,+CAD2G;IAEjH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMmpyB,mBAAN,CAA0B;EACtBp6yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,SAAL;QACI,OAAOq1yB,WAAW,CAAC2E,OAAnB;;MACJ,KAAK,SAAL;QACI,OAAO3E,WAAW,CAACK,OAAnB;;MACJ,KAAK,QAAL;QACI,OAAOL,WAAW,CAAC4E,MAAnB;;MACJ;QACI,OAAO5E,WAAW,CAAC2E,OAAnB;IARR;EAUH;;AAbqB;;AAe1BD,mBAAmB,CAACv3yB,IAApB;EAAA,iBAAgHu3yB,mBAAhH;AAAA;;AACAA,mBAAmB,CAAC1lL,KAApB,kBA30ByGnrmB,0DA20BzG;EAAA;EAAA,MAA8G6wxB,mBAA9G;EAAA;AAAA;;AACA;EAAA,mDA50ByG7wxB,+DA40BzG,CAA2F6wxB,mBAA3F,EAA4H,CAAC;IACjH72yB,IAAI,EAAEu2mB,+CAD2G;IAEjH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMspyB,kBAAN,CAAyB;EACrBv6yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAOo1yB,UAAU,CAAC+E,KAAlB;;MACJ,KAAK,QAAL;QACI,OAAO/E,UAAU,CAACK,MAAlB;;MACJ,KAAK,OAAL;QACI,OAAOL,UAAU,CAACgF,KAAlB;;MACJ;QACI,OAAOhF,UAAU,CAACK,MAAlB;IARR;EAUH;;AAboB;;AAezByE,kBAAkB,CAAC13yB,IAAnB;EAAA,iBAA+G03yB,kBAA/G;AAAA;;AACAA,kBAAkB,CAAC7lL,KAAnB,kBAn2ByGnrmB,0DAm2BzG;EAAA;EAAA,MAA6GgxxB,kBAA7G;EAAA;AAAA;;AACA;EAAA,mDAp2ByGhxxB,+DAo2BzG,CAA2FgxxB,kBAA3F,EAA2H,CAAC;IAChHh3yB,IAAI,EAAEu2mB,+CAD0G;IAEhH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF0G,CAAD,CAA3H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMypyB,mBAAN,CAA0B;EACtB16yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAOm1yB,WAAW,CAACK,KAAnB;;MACJ,KAAK,UAAL;QACI,OAAOL,WAAW,CAACmF,QAAnB;;MACJ;QACI,OAAOnF,WAAW,CAACK,KAAnB;IANR;EAQH;;AAXqB;;AAa1B6E,mBAAmB,CAAC73yB,IAApB;EAAA,iBAAgH63yB,mBAAhH;AAAA;;AACAA,mBAAmB,CAAChmL,KAApB,kBAz3ByGnrmB,0DAy3BzG;EAAA;EAAA,MAA8GmxxB,mBAA9G;EAAA;AAAA;;AACA;EAAA,mDA13ByGnxxB,+DA03BzG,CAA2FmxxB,mBAA3F,EAA4H,CAAC;IACjHn3yB,IAAI,EAAEu2mB,+CAD2G;IAEjH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAM2pyB,kBAAN,CAAyB;EACrB56yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAO41yB,UAAU,CAACuE,KAAlB;;MACJ,KAAK,QAAL;QACI,OAAOvE,UAAU,CAACH,MAAlB;;MACJ,KAAK,OAAL;QACI,OAAOG,UAAU,CAACwE,KAAlB;;MACJ,KAAK,SAAL;QACI,OAAOxE,UAAU,CAAC/B,OAAlB;;MACJ;QACI,OAAO+B,UAAU,CAAC/B,OAAlB;IAVR;EAYH;;AAfoB;;AAiBzB0G,kBAAkB,CAAC/3yB,IAAnB;EAAA,iBAA+G+3yB,kBAA/G;AAAA;;AACAA,kBAAkB,CAAClmL,KAAnB,kBAn5ByGnrmB,0DAm5BzG;EAAA;EAAA,MAA6GqxxB,kBAA7G;EAAA;AAAA;;AACA;EAAA,mDAp5ByGrxxB,+DAo5BzG,CAA2FqxxB,kBAA3F,EAA2H,CAAC;IAChHr3yB,IAAI,EAAEu2mB,+CAD0G;IAEhH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF0G,CAAD,CAA3H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAM4pyB,mBAAN,CAA0B;EACtB76yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,aAAL;QACI,OAAO61yB,WAAW,CAAC4D,WAAnB;;MACJ,KAAK,UAAL;QACI,OAAO5D,WAAW,CAAC4E,QAAnB;;MACJ,KAAK,WAAL;QACI,OAAO5E,WAAW,CAAC6E,SAAnB;;MACJ,KAAK,SAAL;QACI,OAAO7E,WAAW,CAAC0C,OAAnB;;MACJ,KAAK,WAAL;QACI,OAAO1C,WAAW,CAAC2C,SAAnB;;MACJ,KAAK,SAAL;QACI,OAAO3C,WAAW,CAACsB,OAAnB;;MACJ,KAAK,MAAL;QACI,OAAOtB,WAAW,CAACuB,IAAnB;;MACJ,KAAK,SAAL;QACI,OAAOvB,WAAW,CAACwB,OAAnB;;MACJ,KAAK,QAAL;QACI,OAAOxB,WAAW,CAAC+C,MAAnB;;MACJ,KAAK,SAAL;QACI,OAAO/C,WAAW,CAAChC,OAAnB;;MACJ;QACI,OAAOgC,WAAW,CAAChC,OAAnB;IAtBR;EAwBH;;AA3BqB;;AA6B1B2G,mBAAmB,CAACh4yB,IAApB;EAAA,iBAAgHg4yB,mBAAhH;AAAA;;AACAA,mBAAmB,CAACnmL,KAApB,kBAz7ByGnrmB,0DAy7BzG;EAAA;EAAA,MAA8GsxxB,mBAA9G;EAAA;AAAA;;AACA;EAAA,mDA17ByGtxxB,+DA07BzG,CAA2FsxxB,mBAA3F,EAA4H,CAAC;IACjHt3yB,IAAI,EAAEu2mB,+CAD2G;IAEjH5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAF2G,CAAD,CAA5H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAM+pyB,iBAAN,CAAwB;EACpBh7yB,WAAW,GAAG,CAAG;;EACjBoY,SAAS,CAAC/X,KAAD,EAAQ;IACb,QAAQA,KAAR;MACI,KAAK,OAAL;QACI,OAAOm2yB,SAAS,CAACgE,KAAjB;;MACJ,KAAK,QAAL;QACI,OAAOhE,SAAS,CAACV,MAAjB;;MACJ,KAAK,OAAL;QACI,OAAOU,SAAS,CAACiE,KAAjB;;MACJ;QACI,OAAOjE,SAAS,CAACtC,OAAjB;IARR;EAUH;;AAbmB;;AAexB8G,iBAAiB,CAACn4yB,IAAlB;EAAA,iBAA8Gm4yB,iBAA9G;AAAA;;AACAA,iBAAiB,CAACtmL,KAAlB,kBAj9ByGnrmB,0DAi9BzG;EAAA;EAAA,MAA4GyxxB,iBAA5G;EAAA;AAAA;;AACA;EAAA,mDAl9ByGzxxB,+DAk9BzG,CAA2FyxxB,iBAA3F,EAA0H,CAAC;IAC/Gz3yB,IAAI,EAAEu2mB,+CADyG;IAE/G5zmB,IAAI,EAAE,CAAC;MACC+K,IAAI,EAAE;IADP,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMgqyB,qBAAN,CAA4B;;AAE5BA,qBAAqB,CAACp4yB,IAAtB;EAAA,iBAAkHo4yB,qBAAlH;AAAA;;AACAA,qBAAqB,CAACtvyB,IAAtB,kBA59ByG4d,8DA49BzG;EAAA,MAAmH0xxB;AAAnH;AA0CAA,qBAAqB,CAACpvyB,IAAtB,kBAtgCyG0d,8DAsgCzG;EAAA,UAAoJutmB,yDAApJ,EACQ8/G,uDADR;AAAA;;AAEA;EAAA,mDAxgCyGrttB,+DAwgCzG,CAA2F0xxB,qBAA3F,EAA8H,CAAC;IACnH13yB,IAAI,EAAEhE,mDAD6G;IAEnH2G,IAAI,EAAE,CAAC;MACC+pC,YAAY,EAAE,CACV8jwB,kBADU,EAEV6B,eAFU,EAGVQ,eAHU,EAIVK,cAJU,EAKVoB,gBALU,EAMVa,YANU,EAOVC,aAPU,EAQVO,iBARU,EASVI,WATU,EAUVO,mBAVU,EAWVI,eAXU,EAYVC,eAZU,EAaVC,mBAbU,EAcVC,mBAdU,EAeVG,kBAfU,EAgBVG,mBAhBU,EAiBV7I,sBAjBU,EAkBV+I,kBAlBU,EAmBVC,mBAnBU,EAoBVG,iBApBU,EAqBV3C,iBArBU,CADf;MAwBC/qyB,OAAO,EAAE,CACLwpnB,yDADK,EAEL8/G,uDAFK,CAxBV;MA4BC1msB,OAAO,EAAE,CACL6jwB,kBADK,EAEL6B,eAFK,EAGLQ,eAHK,EAILK,cAJK,EAKLoB,gBALK,EAMLQ,iBANK,EAOLK,YAPK,EAQLC,aARK,EASLO,iBATK,EAULI,WAVK,EAWLO,mBAXK,EAYLI,eAZK,EAaLC,eAbK,EAcLC,mBAdK,EAeLC,mBAfK,EAgBLG,kBAhBK,EAiBLG,mBAjBK,EAkBL7I,sBAlBK,EAmBL+I,kBAnBK,EAoBLC,mBApBK,EAqBLG,iBArBK,CA5BV;MAmDCzvyB,SAAS,EAAE;IAnDZ,CAAD;EAF6G,CAAD,CAA9H;AAAA;AAyDA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AClrCA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,gBAAgB,sCAAsC,kBAAkB;AACjF,wBAAwB;AACxB;AACA;;AAEO;AACP;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEO;AACP;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;;AAEO;AACP,kCAAkC;AAClC;;AAEO;AACP,uBAAuB,uFAAuF;AAC9G;AACA;AACA,yGAAyG;AACzG;AACA,sCAAsC,QAAQ;AAC9C;AACA,gEAAgE;AAChE;AACA,8CAA8C,yFAAyF;AACvI,8DAA8D,2CAA2C;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA,4CAA4C,yEAAyE;AACrH;;AAEO;AACP;AACA;;AAEO;AACP,0BAA0B,+DAA+D,iBAAiB;AAC1G;AACA,kCAAkC,MAAM,+BAA+B,YAAY;AACnF,iCAAiC,MAAM,mCAAmC,YAAY;AACtF,8BAA8B;AAC9B;AACA,GAAG;AACH;;AAEO;AACP,YAAY,6BAA6B,0BAA0B,cAAc,qBAAqB;AACtG,eAAe,oDAAoD,qEAAqE,cAAc;AACtJ,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iCAAiC,SAAS;AAC1C,iCAAiC,WAAW,UAAU;AACtD,wCAAwC,cAAc;AACtD;AACA,4GAA4G,OAAO;AACnH,+EAA+E,iBAAiB;AAChG,uDAAuD,gBAAgB,QAAQ;AAC/E,6CAA6C,gBAAgB,gBAAgB;AAC7E;AACA,gCAAgC;AAChC;AACA;AACA,QAAQ,YAAY,aAAa,SAAS,UAAU;AACpD,kCAAkC,SAAS;AAC3C;AACA;;AAEO;AACP;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACO;AACP,2BAA2B,sBAAsB;AACjD;AACA;AACA;;AAEA;AACO;AACP,gDAAgD,QAAQ;AACxD,uCAAuC,QAAQ;AAC/C,uDAAuD,QAAQ;AAC/D;AACA;AACA;;AAEO;AACP,2EAA2E,OAAO;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,eAAe,uFAAuF,cAAc;AACpH,qBAAqB,gCAAgC,qCAAqC,2CAA2C;AACrI,0BAA0B,MAAM,iBAAiB,YAAY;AAC7D,qBAAqB;AACrB,4BAA4B;AAC5B,2BAA2B;AAC3B,0BAA0B;AAC1B;;AAEO;AACP;AACA,eAAe,6CAA6C,UAAU,sDAAsD,cAAc;AAC1I,wBAAwB,6BAA6B,oBAAoB,uCAAuC,kBAAkB;AAClI;;AAEO;AACP;AACA;AACA,yGAAyG,uFAAuF,cAAc;AAC9M,qBAAqB,8BAA8B,gDAAgD,wDAAwD;AAC3J,2CAA2C,sCAAsC,UAAU,mBAAmB,IAAI;AAClH;;AAEO;AACP,+BAA+B,uCAAuC,YAAY,KAAK,OAAO;AAC9F;AACA;;AAEA;AACA,wCAAwC,4BAA4B;AACpE,CAAC;AACD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,2CAA2C;AAC3C;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8CAA8C;AACnE;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,SAAS,gBAAgB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC","sources":["./node_modules/@ng-idle/core/__ivy_ngcc__/fesm2015/ng-idle-core.js","./node_modules/@ng-idle/keepalive/__ivy_ngcc__/fesm2015/ng-idle-keepalive.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/modifiers/hide.js","./node_modules/@popperjs/core/lib/modifiers/index.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/popper.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/ag-grid-angular/fesm2015/ag-grid-angular.js","./node_modules/ag-grid-community/dist/ag-grid-community.auto.esm.js","./node_modules/ag-grid-enterprise/dist/ag-grid-enterprise.auto.esm.js","./node_modules/dayjs/dayjs.min.js","./node_modules/dayjs/plugin/customParseFormat.js","./node_modules/dayjs/plugin/isBetween.js","./node_modules/dayjs/plugin/isSameOrAfter.js","./node_modules/dayjs/plugin/isSameOrBefore.js","./node_modules/dayjs/plugin/isoWeek.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/oidc-client/lib/oidc-client.min.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/cdk/fesm2020/bidi.mjs","./node_modules/@angular/cdk/fesm2020/coercion.mjs","./node_modules/@angular/cdk/fesm2020/collections.mjs","./node_modules/@angular/cdk/fesm2020/keycodes.mjs","./node_modules/@angular/cdk/fesm2020/overlay.mjs","./node_modules/@angular/cdk/fesm2020/platform.mjs","./node_modules/@angular/cdk/fesm2020/portal.mjs","./node_modules/@angular/cdk/fesm2020/scrolling.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/ng-recaptcha/fesm2020/ng-recaptcha.mjs","./node_modules/ng-svg-icon-sprite/fesm2020/ng-svg-icon-sprite.mjs","./node_modules/ng2-date-picker/fesm2020/ng2-date-picker.mjs","./node_modules/ngx-device-detector/fesm2020/ngx-device-detector.mjs","./node_modules/ngx-popperjs/fesm2020/ngx-popperjs.mjs","./node_modules/ui-library-shared/fesm2020/ui-library-shared.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["import { Injectable, EventEmitter, NgZone, Optional, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { Subscription, fromEvent, merge } from 'rxjs';\nimport { filter, throttleTime } from 'rxjs/operators';\n\n/*\n * Represents a base class for types that provide expiry detection for the Idle service.\n */\nimport * as ɵngcc0 from '@angular/core';\nclass IdleExpiry {\n constructor() {\n this.idValue = new Date();\n this.idlingValue = false;\n }\n /*\n * Gets or sets a unique ID for the window\n * @param id - The id.\n * @return The current id.\n */\n id(value) {\n if (value !== void 0) {\n if (!value) {\n throw new Error('A value must be specified for the ID.');\n }\n this.idValue = value;\n }\n return this.idValue;\n }\n /*\n * Gets or sets the idling value.\n * @param value - The value to set.\n * @return The idling value.\n */\n idling(value) {\n if (value !== void 0) {\n this.idlingValue = value;\n }\n return this.idlingValue;\n }\n /*\n * Returns the current Date.\n * @return The current Date.\n */\n now() {\n /* istanbul ignore next */\n return new Date();\n }\n /*\n * Returns whether or not it is expired.\n * @return True if expired; otherwise, false.\n */\n isExpired() {\n const expiry = this.last();\n return expiry != null && expiry <= this.now();\n }\n}\n\n/*\n * A class for managing an interrupt from an interrupt source.\n */\nclass Interrupt {\n constructor(source, options) {\n this.source = source;\n if (source.initialize) {\n source.initialize(options);\n }\n }\n /*\n * Subscribes to the interrupt using the specified function.\n * @param fn - The subscription function.\n */\n subscribe(fn) {\n this.sub = this.source.onInterrupt.subscribe(fn);\n }\n /*\n * Unsubscribes the interrupt.\n */\n unsubscribe() {\n this.sub.unsubscribe();\n this.sub = null;\n }\n /*\n * Keeps the subscription but resumes interrupt events.\n */\n resume() {\n this.source.attach();\n }\n /*\n * Keeps the subscription but pauses interrupt events.\n */\n pause() {\n this.source.detach();\n }\n}\n\nclass KeepaliveSvc {\n}\n\n/*\n * Represents an alternative storage for browser that doesn't support localstorage. (i.e. Safari in\n * private mode)\n * @implements Storage\n */\nclass AlternativeStorage {\n constructor() {\n this.storageMap = {};\n }\n /*\n * Returns an integer representing the number of data items stored in the storageMap object.\n */\n get length() {\n return Object.keys(this.storageMap).length;\n }\n /*\n * Remove all keys out of the storage.\n */\n clear() {\n this.storageMap = {};\n }\n /*\n * Return the key's value\n *\n * @param key - name of the key to retrieve the value of.\n * @return The key's value\n */\n getItem(key) {\n if (typeof this.storageMap[key] !== 'undefined') {\n return this.storageMap[key];\n }\n return null;\n }\n /*\n * Return the nth key in the storage\n *\n * @param index - the number of the key you want to get the name of.\n * @return The name of the key.\n */\n key(index) {\n return Object.keys(this.storageMap)[index] || null;\n }\n /*\n * Remove a key from the storage.\n *\n * @param key - the name of the key you want to remove.\n */\n removeItem(key) {\n this.storageMap[key] = undefined;\n }\n /*\n * Add a key to the storage, or update a key's value if it already exists.\n *\n * @param key - the name of the key.\n * @param value - the value you want to give to the key.\n */\n setItem(key, value) {\n this.storageMap[key] = value;\n }\n}\n\n/*\n * Represents a localStorage store.\n */\nclass LocalStorage {\n constructor() {\n this.storage = this.getStorage();\n }\n /*\n * Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem\n * throw QuotaExceededError. We're going to detect this and just silently drop any calls to\n * setItem\n * to avoid the entire page breaking, without having to do a check at each usage of Storage.\n */\n getStorage() {\n try {\n const storage = localStorage;\n storage.setItem('ng2IdleStorage', '');\n storage.removeItem('ng2IdleStorage');\n return storage;\n }\n catch (err) {\n return new AlternativeStorage();\n }\n }\n /*\n * Gets an item in the storage.\n *\n * @param value - The value to get.\n * @return The current value.\n */\n getItem(key) {\n return this.storage.getItem('ng2Idle.' + key);\n }\n /*\n * Removes an item in the storage.\n *\n * @param value - The value to remove.\n */\n removeItem(key) {\n this.storage.removeItem('ng2Idle.' + key);\n }\n /*\n * Sets an item in the storage.\n *\n * @param key - The key to set the value.\n * @param value - The value to set to the key.\n */\n setItem(key, data) {\n this.storage.setItem('ng2Idle.' + key, data);\n }\n /*\n * Represents the storage, commonly use for testing purposes.\n *\n * @param key - The key to set the value.\n * @param value - The value to set to the key.\n */\n _wrapped() {\n return this.storage;\n }\n}\nLocalStorage.ɵfac = function LocalStorage_Factory(t) { return new (t || LocalStorage)(); };\nLocalStorage.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LocalStorage, factory: LocalStorage.ɵfac });\nLocalStorage.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalStorage, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\n/*\n * Represents a localStorage store of expiry values.\n * @extends IdleExpiry\n */\nclass LocalStorageExpiry extends IdleExpiry {\n constructor(localStorage) {\n super();\n this.localStorage = localStorage;\n this.idleName = 'main';\n }\n /*\n * Gets or sets the last expiry date in localStorage.\n * If localStorage doesn't work correctly (i.e. Safari in private mode), we store the expiry value in memory.\n * @param value - The expiry value to set; omit to only return the value.\n * @return The current expiry value.\n */\n last(value) {\n if (value !== void 0) {\n this.setExpiry(value);\n }\n return this.getExpiry();\n }\n idling(value) {\n if (value !== void 0) {\n this.setIdling(value);\n }\n return this.getIdling();\n }\n /*\n * Gets the idle name.\n * @return The name of the idle.\n */\n getIdleName() {\n return this.idleName;\n }\n /*\n * Sets the idle name.\n * @param The name of the idle.\n */\n setIdleName(key) {\n if (key) {\n this.idleName = key;\n }\n }\n getExpiry() {\n const expiry = this.localStorage.getItem(this.idleName + '.expiry');\n if (expiry) {\n return new Date(parseInt(expiry, 10));\n }\n else {\n return null;\n }\n }\n setExpiry(value) {\n if (value) {\n this.localStorage.setItem(this.idleName + '.expiry', value.getTime().toString());\n }\n else {\n this.localStorage.removeItem(this.idleName + '.expiry');\n }\n }\n getIdling() {\n const idling = this.localStorage.getItem(this.idleName + '.idling');\n if (idling) {\n return idling === 'true';\n }\n else {\n return false;\n }\n }\n setIdling(value) {\n if (value) {\n this.localStorage.setItem(this.idleName + '.idling', value.toString());\n }\n else {\n this.localStorage.setItem(this.idleName + '.idling', 'false');\n }\n }\n}\nLocalStorageExpiry.ɵfac = function LocalStorageExpiry_Factory(t) { return new (t || LocalStorageExpiry)(ɵngcc0.ɵɵinject(LocalStorage)); };\nLocalStorageExpiry.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LocalStorageExpiry, factory: LocalStorageExpiry.ɵfac });\nLocalStorageExpiry.ctorParameters = () => [\n { type: LocalStorage }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalStorageExpiry, [{\n type: Injectable\n }], function () { return [{ type: LocalStorage }]; }, null); })();\n\n/*\n * Indicates the desired auto resume behavior.\n */\nvar AutoResume;\n(function (AutoResume) {\n /*\n * Auto resume functionality will be disabled.\n */\n AutoResume[AutoResume[\"disabled\"] = 0] = \"disabled\";\n /*\n * Can resume automatically even if they are idle.\n */\n AutoResume[AutoResume[\"idle\"] = 1] = \"idle\";\n /*\n * Can only resume automatically if they are not yet idle.\n */\n AutoResume[AutoResume[\"notIdle\"] = 2] = \"notIdle\";\n})(AutoResume || (AutoResume = {}));\n/**\n * A service for detecting and responding to user idleness.\n */\nclass Idle {\n constructor(expiry, zone, keepaliveSvc, \n // tslint:disable-next-line: ban-types platform id injection will fail with any other type\n platformId) {\n this.expiry = expiry;\n this.zone = zone;\n this.platformId = platformId;\n this.idle = 20 * 60; // in seconds\n this.timeoutVal = 30; // in seconds\n this.autoResume = AutoResume.idle;\n this.interrupts = new Array();\n this.running = false;\n this.keepaliveEnabled = false;\n this.onIdleStart = new EventEmitter();\n this.onIdleEnd = new EventEmitter();\n this.onTimeoutWarning = new EventEmitter();\n this.onTimeout = new EventEmitter();\n this.onInterrupt = new EventEmitter();\n if (keepaliveSvc) {\n this.keepaliveSvc = keepaliveSvc;\n this.keepaliveEnabled = true;\n }\n this.setIdling(false);\n }\n /*\n * Sets the idle name for localStorage.\n * Important to set if multiple instances of Idle with LocalStorageExpiry\n * @param The name of the idle.\n */\n setIdleName(key) {\n if (this.expiry instanceof LocalStorageExpiry) {\n this.expiry.setIdleName(key);\n }\n else {\n throw new Error('Cannot set expiry key name because no LocalStorageExpiry has been provided.');\n }\n }\n /*\n * Returns whether or not keepalive integration is enabled.\n * @return True if integration is enabled; otherwise, false.\n */\n getKeepaliveEnabled() {\n return this.keepaliveEnabled;\n }\n /*\n * Sets and returns whether or not keepalive integration is enabled.\n * @param True if the integration is enabled; otherwise, false.\n * @return The current value.\n */\n setKeepaliveEnabled(value) {\n if (!this.keepaliveSvc) {\n throw new Error('Cannot enable keepalive integration because no KeepaliveSvc has been provided.');\n }\n return (this.keepaliveEnabled = value);\n }\n /*\n * Returns the current timeout value.\n * @return The timeout value in seconds.\n */\n getTimeout() {\n return this.timeoutVal;\n }\n /*\n * Sets the timeout value.\n * @param seconds - The timeout value in seconds. 0 or false to disable timeout feature.\n * @return The current value. If disabled, the value will be 0.\n */\n setTimeout(seconds) {\n if (seconds === false) {\n this.timeoutVal = 0;\n }\n else if (typeof seconds === 'number' && seconds >= 0) {\n this.timeoutVal = seconds;\n }\n else {\n throw new Error(\"'seconds' can only be 'false' or a positive number.\");\n }\n return this.timeoutVal;\n }\n /*\n * Returns the current idle value.\n * @return The idle value in seconds.\n */\n getIdle() {\n return this.idle;\n }\n /*\n * Sets the idle value.\n * @param seconds - The idle value in seconds.\n * @return The idle value in seconds.\n */\n setIdle(seconds) {\n if (seconds <= 0) {\n throw new Error(\"'seconds' must be greater zero\");\n }\n return (this.idle = seconds);\n }\n /*\n * Returns the current autoresume value.\n * @return The current value.\n */\n getAutoResume() {\n return this.autoResume;\n }\n setAutoResume(value) {\n return (this.autoResume = value);\n }\n /*\n * Sets interrupts from the specified sources.\n * @param sources - Interrupt sources.\n * @return The resulting interrupts.\n */\n setInterrupts(sources) {\n this.clearInterrupts();\n const self = this;\n for (const source of sources) {\n const options = { platformId: this.platformId };\n const sub = new Interrupt(source, options);\n sub.subscribe((args) => {\n self.interrupt(args.force, args.innerArgs);\n });\n this.interrupts.push(sub);\n }\n return this.interrupts;\n }\n /*\n * Returns the current interrupts.\n * @return The current interrupts.\n */\n getInterrupts() {\n return this.interrupts;\n }\n /*\n * Pauses, unsubscribes, and clears the current interrupt subscriptions.\n */\n clearInterrupts() {\n for (const sub of this.interrupts) {\n sub.pause();\n sub.unsubscribe();\n }\n this.interrupts.length = 0;\n }\n /*\n * Returns whether or not the service is running i.e. watching for idleness.\n * @return True if service is watching; otherwise, false.\n */\n isRunning() {\n return this.running;\n }\n /*\n * Returns whether or not the user is considered idle.\n * @return True if the user is in the idle state; otherwise, false.\n */\n isIdling() {\n return this.idling;\n }\n /*\n * Starts watching for inactivity.\n */\n watch(skipExpiry) {\n this.safeClearInterval('idleHandle');\n this.safeClearInterval('timeoutHandle');\n const timeout = !this.timeoutVal ? 0 : this.timeoutVal;\n if (!skipExpiry) {\n const value = new Date(this.expiry.now().getTime() + (this.idle + timeout) * 1000);\n this.expiry.last(value);\n }\n if (this.idling) {\n this.toggleState();\n }\n if (!this.running) {\n this.startKeepalive();\n this.toggleInterrupts(true);\n }\n this.running = true;\n const watchFn = () => {\n this.zone.run(() => {\n const diff = this.getExpiryDiff(timeout);\n if (diff > 0) {\n this.safeClearInterval('idleHandle');\n this.setIdleIntervalOutsideOfZone(watchFn, diff);\n }\n else {\n this.toggleState();\n }\n });\n };\n this.setIdleIntervalOutsideOfZone(watchFn, this.idle * 1000);\n }\n /*\n * Allows protractor tests to call waitForAngular without hanging\n */\n setIdleIntervalOutsideOfZone(watchFn, frequency) {\n this.zone.runOutsideAngular(() => {\n this.idleHandle = setInterval(watchFn, frequency);\n });\n }\n /*\n * Stops watching for inactivity.\n */\n stop() {\n this.stopKeepalive();\n this.toggleInterrupts(false);\n this.safeClearInterval('idleHandle');\n this.safeClearInterval('timeoutHandle');\n this.setIdling(false);\n this.running = false;\n this.expiry.last(null);\n }\n /*\n * Forces a timeout event and state.\n */\n timeout() {\n this.stopKeepalive();\n this.toggleInterrupts(false);\n this.safeClearInterval('idleHandle');\n this.safeClearInterval('timeoutHandle');\n this.setIdling(true);\n this.running = false;\n this.countdown = 0;\n this.onTimeout.emit(null);\n }\n /*\n * Signals that user activity has occurred.\n * @param force - Forces watch to be called, unless they are timed out.\n * @param eventArgs - Optional source event arguments.\n */\n interrupt(force, eventArgs) {\n if (!this.running) {\n return;\n }\n if (this.timeoutVal && this.expiry.isExpired()) {\n this.timeout();\n return;\n }\n this.onInterrupt.emit(eventArgs);\n if (force === true ||\n this.autoResume === AutoResume.idle ||\n (this.autoResume === AutoResume.notIdle && !this.expiry.idling())) {\n this.watch(force);\n }\n }\n setIdling(value) {\n this.idling = value;\n this.expiry.idling(value);\n }\n toggleState() {\n this.setIdling(!this.idling);\n if (this.idling) {\n this.onIdleStart.emit(null);\n this.stopKeepalive();\n if (this.timeoutVal > 0) {\n this.countdown = this.timeoutVal;\n this.doCountdown();\n this.setTimoutIntervalOutsideZone(() => {\n this.doCountdownInZone();\n }, 1000);\n }\n }\n else {\n this.toggleInterrupts(true);\n this.onIdleEnd.emit(null);\n this.startKeepalive();\n }\n this.safeClearInterval('idleHandle');\n }\n setTimoutIntervalOutsideZone(intervalFn, frequency) {\n this.zone.runOutsideAngular(() => {\n this.timeoutHandle = setInterval(() => {\n intervalFn();\n }, frequency);\n });\n }\n toggleInterrupts(resume) {\n for (const interrupt of this.interrupts) {\n if (resume) {\n interrupt.resume();\n }\n else {\n interrupt.pause();\n }\n }\n }\n getExpiryDiff(timeout) {\n const now = this.expiry.now();\n const last = this.expiry.last() || now;\n return last.getTime() - now.getTime() - timeout * 1000;\n }\n doCountdownInZone() {\n this.zone.run(() => {\n this.doCountdown();\n });\n }\n doCountdown() {\n const diff = this.getExpiryDiff(this.timeoutVal);\n if (diff > 0) {\n this.safeClearInterval('timeoutHandle');\n this.interrupt(true);\n return;\n }\n if (!this.idling) {\n return;\n }\n if (this.countdown <= 0) {\n this.timeout();\n return;\n }\n this.onTimeoutWarning.emit(this.countdown);\n this.countdown--;\n }\n safeClearInterval(handleName) {\n const handle = this[handleName];\n if (handle !== null && typeof handle !== 'undefined') {\n clearInterval(this[handleName]);\n this[handleName] = null;\n }\n }\n startKeepalive() {\n if (!this.keepaliveSvc || !this.keepaliveEnabled) {\n return;\n }\n if (this.running) {\n this.keepaliveSvc.ping();\n }\n this.keepaliveSvc.start();\n }\n stopKeepalive() {\n if (!this.keepaliveSvc || !this.keepaliveEnabled) {\n return;\n }\n this.keepaliveSvc.stop();\n }\n /*\n * Called by Angular when destroying the instance.\n */\n ngOnDestroy() {\n this.stop();\n this.clearInterrupts();\n }\n}\nIdle.ɵfac = function Idle_Factory(t) { return new (t || Idle)(ɵngcc0.ɵɵinject(IdleExpiry), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(KeepaliveSvc, 8), ɵngcc0.ɵɵinject(PLATFORM_ID, 8)); };\nIdle.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: Idle, factory: Idle.ɵfac });\nIdle.ctorParameters = () => [\n { type: IdleExpiry },\n { type: NgZone },\n { type: KeepaliveSvc, decorators: [{ type: Optional }] },\n { type: Object, decorators: [{ type: Optional }, { type: Inject, args: [PLATFORM_ID,] }] }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Idle, [{\n type: Injectable\n }], function () { return [{ type: IdleExpiry }, { type: ɵngcc0.NgZone }, { type: KeepaliveSvc, decorators: [{\n type: Optional\n }] }, { type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, null); })();\n\n/*\n * A class for expressing arguments to interrupt events.\n */\nclass InterruptArgs {\n constructor(source, innerArgs, force = false) {\n this.source = source;\n this.innerArgs = innerArgs;\n this.force = force;\n }\n}\n\n/*\n * A base for classes that act as a source for interrupts.\n */\nclass InterruptSource {\n constructor(attachFn, detachFn) {\n this.attachFn = attachFn;\n this.detachFn = detachFn;\n this.isAttached = false;\n this.onInterrupt = new EventEmitter();\n }\n /*\n * Attaches to the specified events on the specified source.\n */\n attach() {\n // If the current zone is the 'angular' zone (a.k.a. NgZone) then re-enter this method in its parent zone\n // The parent zone is usually the '' zone but it can also be 'long-stack-trace-zone' in debug mode\n // In tests, the current zone is typically a 'ProxyZone' created by async/fakeAsync (from @angular/core/testing)\n if (Zone.current.get('isAngularZone') === true) {\n Zone.current.parent.run(() => this.attach());\n return;\n }\n if (!this.isAttached && this.attachFn) {\n this.attachFn(this);\n }\n this.isAttached = true;\n }\n /*\n * Detaches from the specified events on the specified source.\n */\n detach() {\n if (this.isAttached && this.detachFn) {\n this.detachFn(this);\n }\n this.isAttached = false;\n }\n}\n\nconst defaultThrottleDelay = 500;\n/*\n * An interrupt source on an EventTarget object, such as a Window or HTMLElement.\n */\nclass EventTargetInterruptSource extends InterruptSource {\n constructor(target, events, opts) {\n super(null, null);\n this.target = target;\n this.events = events;\n this.opts = opts;\n this.eventSubscription = new Subscription();\n if (typeof this.opts === 'number') {\n this.opts = { throttleDelay: this.opts, passive: false };\n }\n this.opts = this.opts || {\n passive: false,\n throttleDelay: defaultThrottleDelay\n };\n if (this.opts.throttleDelay === undefined || this.opts.throttleDelay === null) {\n this.opts.throttleDelay = defaultThrottleDelay;\n }\n this.throttleDelay = this.opts.throttleDelay;\n this.passive = !!this.opts.passive;\n }\n initialize(options) {\n if ((options === null || options === void 0 ? void 0 : options.platformId) && isPlatformServer(options.platformId)) {\n return;\n }\n const eventTarget = typeof this.target === 'function' ? this.target() : this.target;\n const opts = this.passive ? { passive: true } : null;\n const fromEvents = this.events\n .split(' ')\n .map(eventName => fromEvent(eventTarget, eventName, opts));\n this.eventSrc = merge(...fromEvents);\n this.eventSrc = this.eventSrc.pipe(filter(innerArgs => !this.filterEvent(innerArgs)));\n if (this.throttleDelay > 0) {\n this.eventSrc = this.eventSrc.pipe(throttleTime(this.throttleDelay));\n }\n const handler = (innerArgs) => this.onInterrupt.emit(new InterruptArgs(this, innerArgs));\n this.attachFn = () => (this.eventSubscription = this.eventSrc.subscribe(handler));\n this.detachFn = () => this.eventSubscription.unsubscribe();\n }\n /*\n * Checks to see if the event should be filtered. Always returns false unless overriden.\n * @param event - The original event object.\n * @return True if the event should be filtered (don't cause an interrupt); otherwise, false.\n */\n filterEvent(event) {\n return false;\n }\n /**\n * Returns the current options being used.\n * @return The current option values.\n */\n get options() {\n return {\n passive: this.passive,\n throttleDelay: this.throttleDelay\n };\n }\n}\n\n/*\n * An interrupt source that uses events on the document element (html tag).\n */\nclass DocumentInterruptSource extends EventTargetInterruptSource {\n constructor(events, options) {\n super(() => document.documentElement, events, options);\n }\n /*\n * Checks to see if the event should be filtered.\n * @param event - The original event object.\n * @return True if the event should be filtered (don't cause an interrupt); otherwise, false.\n */\n filterEvent(event) {\n // some browser bad input hacks\n if (event.type === 'mousemove' &&\n // fix for Chrome destop notifications\n ((event.originalEvent &&\n event.originalEvent.movementX === 0 &&\n event.originalEvent.movementY === 0) ||\n // fix for webkit fake mousemove\n ((event.movementX !== void 0 && !event.movementX) || !event.movementY))) {\n return true;\n }\n return false;\n }\n}\n\n/*\n * An interrupt source on the Window object.\n */\nclass WindowInterruptSource extends EventTargetInterruptSource {\n constructor(events, options) {\n super(() => window, events, options);\n }\n}\n\n/*\n * An interrupt source on the storage event of Window.\n */\nclass StorageInterruptSource extends WindowInterruptSource {\n constructor(options = 500) {\n super('storage', options);\n }\n /*\n * Checks to see if the event should be filtered.\n * @param event - The original event object.\n * @return True if the event should be filtered (don't cause an interrupt); otherwise, false.\n */\n filterEvent(event) {\n if (event.key &&\n event.key.indexOf('ng2Idle.') >= 0 &&\n event.key.indexOf('.expiry') >= 0) {\n return false;\n }\n return true;\n }\n}\n\n/*\n * Represents a simple in-memory store of expiry values.\n * @extends IdleExpiry\n */\nclass SimpleExpiry extends IdleExpiry {\n constructor() {\n super();\n this.lastValue = null;\n }\n /*\n * Gets or sets the last expiry date.\n * @param value - The expiry value to set; omit to only return the value.\n * @return The current expiry value.\n */\n last(value) {\n if (value !== void 0) {\n this.lastValue = value;\n }\n return this.lastValue;\n }\n}\n\nclass NgIdleModule {\n static forRoot() {\n return {\n ngModule: NgIdleModule,\n providers: [\n LocalStorageExpiry,\n { provide: IdleExpiry, useExisting: LocalStorageExpiry },\n Idle\n ]\n };\n }\n}\nNgIdleModule.ɵfac = function NgIdleModule_Factory(t) { return new (t || NgIdleModule)(); };\nNgIdleModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIdleModule });\nNgIdleModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [LocalStorage] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIdleModule, [{\n type: NgModule,\n args: [{\n providers: [LocalStorage]\n }]\n }], null, null); })();\n\nfunction createDefaultInterruptSources(options) {\n return [\n new DocumentInterruptSource('mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll', options),\n new StorageInterruptSource(options)\n ];\n}\nconst DEFAULT_INTERRUPTSOURCES = createDefaultInterruptSources();\n\n/*\n * Public API Surface of core\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutoResume, DEFAULT_INTERRUPTSOURCES, DocumentInterruptSource, EventTargetInterruptSource, Idle, IdleExpiry, InterruptArgs, InterruptSource, KeepaliveSvc, LocalStorage, LocalStorageExpiry, NgIdleModule, SimpleExpiry, StorageInterruptSource, WindowInterruptSource, createDefaultInterruptSources };\n\n","import { EventEmitter, Injectable, NgZone, NgModule } from '@angular/core';\nimport { HttpRequest, HttpClient } from '@angular/common/http';\nimport { KeepaliveSvc, NgIdleModule } from '@ng-idle/core';\n\n/**\n * An example of an injectable service.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common/http';\nimport * as ɵngcc2 from '@ng-idle/core';\nclass Keepalive extends KeepaliveSvc {\n /*\n * Initializes a new instance of Keepalive\n * @param http - The HTTP service.\n */\n constructor(http, zone) {\n super();\n this.http = http;\n this.zone = zone;\n this.pingInterval = 10 * 60;\n /*\n * An event emitted when the service is pinging.\n */\n this.onPing = new EventEmitter();\n /*\n * An event emitted when the service has pinged an HTTP endpoint and received a response.\n */\n this.onPingResponse = new EventEmitter();\n }\n /*\n * Sets the string or Request that should be used when pinging.\n * @param url - The URL or Request object to use when pinging.\n * @return The current Request used when pinging.\n */\n request(url) {\n if (typeof url === 'string') {\n this.pingRequest = new HttpRequest('GET', url);\n }\n else if (url instanceof HttpRequest) {\n this.pingRequest = url;\n }\n else if (url === null) {\n this.pingRequest = null;\n }\n return this.pingRequest;\n }\n /*\n * Sets the interval (in seconds) at which the ping operation will occur when start() is called.\n * @param seconds - The ping interval in seconds.\n * @return The current interval value.\n */\n interval(seconds) {\n if (!isNaN(seconds) && seconds > 0) {\n this.pingInterval = seconds;\n }\n else if (!isNaN(seconds) && seconds <= 0) {\n throw new Error('Interval value must be greater than zero.');\n }\n return this.pingInterval;\n }\n /*\n * Immediately performs the ping operation. If a request has been set, an HTTP\n * request will be made and the response will be emitted via the\n * onPingResponse event.\n */\n ping() {\n this.onPing.emit(null);\n if (this.pingRequest) {\n this.http.request(this.pingRequest).subscribe((response) => {\n this.onPingResponse.emit(response);\n }, (error) => {\n this.onPingResponse.emit(error);\n });\n }\n }\n /*\n * Starts pinging on an interval.\n */\n start() {\n this.stop();\n this.zone.runOutsideAngular(() => {\n this.pingHandle = setInterval(() => {\n this.zone.run(() => {\n this.ping();\n });\n }, this.pingInterval * 1000);\n });\n }\n /*\n * Stops pinging on an interval.\n */\n stop() {\n if (this.hasPingHandle()) {\n clearInterval(this.pingHandle);\n this.pingHandle = null;\n }\n }\n /*\n * Performs any cleanup tasks when Angular destroys the instance.\n */\n ngOnDestroy() {\n this.stop();\n }\n /*\n * Returns whether or not the service will ping automatically at the specified interval.\n * @return True if the service will ping at the specified interval; otherwise, false.\n */\n isRunning() {\n return this.hasPingHandle();\n }\n hasPingHandle() {\n return this.pingHandle !== null && typeof this.pingHandle !== 'undefined';\n }\n}\nKeepalive.ɵfac = function Keepalive_Factory(t) { return new (t || Keepalive)(ɵngcc0.ɵɵinject(ɵngcc1.HttpClient), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nKeepalive.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: Keepalive, factory: Keepalive.ɵfac });\nKeepalive.ctorParameters = () => [\n { type: HttpClient },\n { type: NgZone }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Keepalive, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.HttpClient }, { type: ɵngcc0.NgZone }]; }, null); })();\n\nclass NgIdleKeepaliveModule {\n static forRoot() {\n return {\n ngModule: NgIdleKeepaliveModule,\n providers: [Keepalive, { provide: KeepaliveSvc, useExisting: Keepalive }]\n };\n }\n}\nNgIdleKeepaliveModule.ɵfac = function NgIdleKeepaliveModule_Factory(t) { return new (t || NgIdleKeepaliveModule)(); };\nNgIdleKeepaliveModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIdleKeepaliveModule });\nNgIdleKeepaliveModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [NgIdleModule.forRoot()] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIdleKeepaliveModule, [{\n type: NgModule,\n args: [{ imports: [NgIdleModule.forRoot()] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIdleKeepaliveModule, { imports: [ɵngcc2.NgIdleModule] }); })();\n\n/*\n * Public API Surface of keepalive\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Keepalive, NgIdleKeepaliveModule };\n\n","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { __rest } from 'tslib';\nimport * as i0 from '@angular/core';\nimport { Component, ContentChildren, Input, NgZone, Injectable, EventEmitter, ViewEncapsulation, Output, NgModule } from '@angular/core';\nimport { VanillaFrameworkOverrides, AgPromise, BaseComponentWrapper, ComponentUtil, Grid } from 'ag-grid-community';\n\nclass AgGridColumn {\n hasChildColumns() {\n if (this.childColumns && this.childColumns.length > 0) {\n // necessary because of https://github.com/angular/angular/issues/10098\n return !(this.childColumns.length === 1 && this.childColumns.first === this);\n }\n return false;\n }\n toColDef() {\n let colDef = this.createColDefFromGridColumn(this);\n if (this.hasChildColumns()) {\n colDef[\"children\"] = this.getChildColDefs(this.childColumns);\n }\n return colDef;\n }\n getChildColDefs(childColumns) {\n return childColumns\n // necessary because of https://github.com/angular/angular/issues/10098\n .filter(column => !column.hasChildColumns())\n .map((column) => {\n return column.toColDef();\n });\n }\n createColDefFromGridColumn(from) {\n let { childColumns } = from, colDef = __rest(from, [\"childColumns\"]);\n return colDef;\n }\n}\nAgGridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });\nAgGridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.16\", type: AgGridColumn, selector: \"ag-grid-column\", inputs: { filterFramework: \"filterFramework\", filterParams: \"filterParams\", floatingFilterComponent: \"floatingFilterComponent\", floatingFilterComponentParams: \"floatingFilterComponentParams\", floatingFilterComponentFramework: \"floatingFilterComponentFramework\", filter: \"filter\", headerName: \"headerName\", headerValueGetter: \"headerValueGetter\", headerTooltip: \"headerTooltip\", headerClass: \"headerClass\", suppressHeaderKeyboardEvent: \"suppressHeaderKeyboardEvent\", columnGroupShow: \"columnGroupShow\", toolPanelClass: \"toolPanelClass\", suppressColumnsToolPanel: \"suppressColumnsToolPanel\", suppressFiltersToolPanel: \"suppressFiltersToolPanel\", tooltipComponent: \"tooltipComponent\", tooltipComponentFramework: \"tooltipComponentFramework\", tooltipComponentParams: \"tooltipComponentParams\", children: \"children\", groupId: \"groupId\", openByDefault: \"openByDefault\", marryChildren: \"marryChildren\", headerGroupComponent: \"headerGroupComponent\", headerGroupComponentFramework: \"headerGroupComponentFramework\", headerGroupComponentParams: \"headerGroupComponentParams\", colId: \"colId\", field: \"field\", type: \"type\", valueGetter: \"valueGetter\", valueFormatter: \"valueFormatter\", refData: \"refData\", keyCreator: \"keyCreator\", equals: \"equals\", tooltipField: \"tooltipField\", tooltipValueGetter: \"tooltipValueGetter\", checkboxSelection: \"checkboxSelection\", showDisabledCheckboxes: \"showDisabledCheckboxes\", icons: \"icons\", suppressNavigable: \"suppressNavigable\", suppressKeyboardEvent: \"suppressKeyboardEvent\", suppressPaste: \"suppressPaste\", suppressFillHandle: \"suppressFillHandle\", hide: \"hide\", initialHide: \"initialHide\", lockVisible: \"lockVisible\", lockPosition: \"lockPosition\", suppressMovable: \"suppressMovable\", editable: \"editable\", valueSetter: \"valueSetter\", valueParser: \"valueParser\", cellEditor: \"cellEditor\", cellEditorFramework: \"cellEditorFramework\", cellEditorParams: \"cellEditorParams\", cellEditorSelector: \"cellEditorSelector\", singleClickEdit: \"singleClickEdit\", newValueHandler: \"newValueHandler\", cellEditorPopup: \"cellEditorPopup\", cellEditorPopupPosition: \"cellEditorPopupPosition\", onCellValueChanged: \"onCellValueChanged\", onCellClicked: \"onCellClicked\", onCellDoubleClicked: \"onCellDoubleClicked\", onCellContextMenu: \"onCellContextMenu\", getQuickFilterText: \"getQuickFilterText\", filterValueGetter: \"filterValueGetter\", floatingFilter: \"floatingFilter\", wrapHeaderText: \"wrapHeaderText\", autoHeaderHeight: \"autoHeaderHeight\", headerComponent: \"headerComponent\", headerComponentFramework: \"headerComponentFramework\", headerComponentParams: \"headerComponentParams\", menuTabs: \"menuTabs\", columnsMenuParams: \"columnsMenuParams\", suppressMenu: \"suppressMenu\", headerCheckboxSelection: \"headerCheckboxSelection\", headerCheckboxSelectionFilteredOnly: \"headerCheckboxSelectionFilteredOnly\", chartDataType: \"chartDataType\", pinned: \"pinned\", initialPinned: \"initialPinned\", lockPinned: \"lockPinned\", pinnedRowCellRenderer: \"pinnedRowCellRenderer\", pinnedRowCellRendererFramework: \"pinnedRowCellRendererFramework\", pinnedRowCellRendererParams: \"pinnedRowCellRendererParams\", pinnedRowValueFormatter: \"pinnedRowValueFormatter\", pivot: \"pivot\", initialPivot: \"initialPivot\", pivotIndex: \"pivotIndex\", initialPivotIndex: \"initialPivotIndex\", pivotComparator: \"pivotComparator\", enablePivot: \"enablePivot\", cellStyle: \"cellStyle\", cellClass: \"cellClass\", cellClassRules: \"cellClassRules\", cellRenderer: \"cellRenderer\", cellRendererFramework: \"cellRendererFramework\", cellRendererParams: \"cellRendererParams\", cellRendererSelector: \"cellRendererSelector\", autoHeight: \"autoHeight\", wrapText: \"wrapText\", enableCellChangeFlash: \"enableCellChangeFlash\", suppressCellFlash: \"suppressCellFlash\", rowDrag: \"rowDrag\", rowDragText: \"rowDragText\", dndSource: \"dndSource\", dndSourceOnRowDrag: \"dndSourceOnRowDrag\", rowGroup: \"rowGroup\", initialRowGroup: \"initialRowGroup\", rowGroupIndex: \"rowGroupIndex\", initialRowGroupIndex: \"initialRowGroupIndex\", enableRowGroup: \"enableRowGroup\", enableValue: \"enableValue\", aggFunc: \"aggFunc\", initialAggFunc: \"initialAggFunc\", defaultAggFunc: \"defaultAggFunc\", allowedAggFuncs: \"allowedAggFuncs\", showRowGroup: \"showRowGroup\", sortable: \"sortable\", sort: \"sort\", initialSort: \"initialSort\", sortIndex: \"sortIndex\", initialSortIndex: \"initialSortIndex\", sortingOrder: \"sortingOrder\", comparator: \"comparator\", unSortIcon: \"unSortIcon\", sortedAt: \"sortedAt\", colSpan: \"colSpan\", rowSpan: \"rowSpan\", width: \"width\", initialWidth: \"initialWidth\", minWidth: \"minWidth\", maxWidth: \"maxWidth\", flex: \"flex\", initialFlex: \"initialFlex\", resizable: \"resizable\", suppressSizeToFit: \"suppressSizeToFit\", suppressAutoSize: \"suppressAutoSize\" }, queries: [{ propertyName: \"childColumns\", predicate: AgGridColumn }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridColumn, decorators: [{\n type: Component,\n args: [{\n selector: 'ag-grid-column',\n template: ''\n }]\n }], propDecorators: { childColumns: [{\n type: ContentChildren,\n args: [AgGridColumn]\n }], filterFramework: [{\n type: Input\n }], filterParams: [{\n type: Input\n }], floatingFilterComponent: [{\n type: Input\n }], floatingFilterComponentParams: [{\n type: Input\n }], floatingFilterComponentFramework: [{\n type: Input\n }], filter: [{\n type: Input\n }], headerName: [{\n type: Input\n }], headerValueGetter: [{\n type: Input\n }], headerTooltip: [{\n type: Input\n }], headerClass: [{\n type: Input\n }], suppressHeaderKeyboardEvent: [{\n type: Input\n }], columnGroupShow: [{\n type: Input\n }], toolPanelClass: [{\n type: Input\n }], suppressColumnsToolPanel: [{\n type: Input\n }], suppressFiltersToolPanel: [{\n type: Input\n }], tooltipComponent: [{\n type: Input\n }], tooltipComponentFramework: [{\n type: Input\n }], tooltipComponentParams: [{\n type: Input\n }], children: [{\n type: Input\n }], groupId: [{\n type: Input\n }], openByDefault: [{\n type: Input\n }], marryChildren: [{\n type: Input\n }], headerGroupComponent: [{\n type: Input\n }], headerGroupComponentFramework: [{\n type: Input\n }], headerGroupComponentParams: [{\n type: Input\n }], colId: [{\n type: Input\n }], field: [{\n type: Input\n }], type: [{\n type: Input\n }], valueGetter: [{\n type: Input\n }], valueFormatter: [{\n type: Input\n }], refData: [{\n type: Input\n }], keyCreator: [{\n type: Input\n }], equals: [{\n type: Input\n }], tooltipField: [{\n type: Input\n }], tooltipValueGetter: [{\n type: Input\n }], checkboxSelection: [{\n type: Input\n }], showDisabledCheckboxes: [{\n type: Input\n }], icons: [{\n type: Input\n }], suppressNavigable: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], suppressPaste: [{\n type: Input\n }], suppressFillHandle: [{\n type: Input\n }], hide: [{\n type: Input\n }], initialHide: [{\n type: Input\n }], lockVisible: [{\n type: Input\n }], lockPosition: [{\n type: Input\n }], suppressMovable: [{\n type: Input\n }], editable: [{\n type: Input\n }], valueSetter: [{\n type: Input\n }], valueParser: [{\n type: Input\n }], cellEditor: [{\n type: Input\n }], cellEditorFramework: [{\n type: Input\n }], cellEditorParams: [{\n type: Input\n }], cellEditorSelector: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], newValueHandler: [{\n type: Input\n }], cellEditorPopup: [{\n type: Input\n }], cellEditorPopupPosition: [{\n type: Input\n }], onCellValueChanged: [{\n type: Input\n }], onCellClicked: [{\n type: Input\n }], onCellDoubleClicked: [{\n type: Input\n }], onCellContextMenu: [{\n type: Input\n }], getQuickFilterText: [{\n type: Input\n }], filterValueGetter: [{\n type: Input\n }], floatingFilter: [{\n type: Input\n }], wrapHeaderText: [{\n type: Input\n }], autoHeaderHeight: [{\n type: Input\n }], headerComponent: [{\n type: Input\n }], headerComponentFramework: [{\n type: Input\n }], headerComponentParams: [{\n type: Input\n }], menuTabs: [{\n type: Input\n }], columnsMenuParams: [{\n type: Input\n }], suppressMenu: [{\n type: Input\n }], headerCheckboxSelection: [{\n type: Input\n }], headerCheckboxSelectionFilteredOnly: [{\n type: Input\n }], chartDataType: [{\n type: Input\n }], pinned: [{\n type: Input\n }], initialPinned: [{\n type: Input\n }], lockPinned: [{\n type: Input\n }], pinnedRowCellRenderer: [{\n type: Input\n }], pinnedRowCellRendererFramework: [{\n type: Input\n }], pinnedRowCellRendererParams: [{\n type: Input\n }], pinnedRowValueFormatter: [{\n type: Input\n }], pivot: [{\n type: Input\n }], initialPivot: [{\n type: Input\n }], pivotIndex: [{\n type: Input\n }], initialPivotIndex: [{\n type: Input\n }], pivotComparator: [{\n type: Input\n }], enablePivot: [{\n type: Input\n }], cellStyle: [{\n type: Input\n }], cellClass: [{\n type: Input\n }], cellClassRules: [{\n type: Input\n }], cellRenderer: [{\n type: Input\n }], cellRendererFramework: [{\n type: Input\n }], cellRendererParams: [{\n type: Input\n }], cellRendererSelector: [{\n type: Input\n }], autoHeight: [{\n type: Input\n }], wrapText: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], suppressCellFlash: [{\n type: Input\n }], rowDrag: [{\n type: Input\n }], rowDragText: [{\n type: Input\n }], dndSource: [{\n type: Input\n }], dndSourceOnRowDrag: [{\n type: Input\n }], rowGroup: [{\n type: Input\n }], initialRowGroup: [{\n type: Input\n }], rowGroupIndex: [{\n type: Input\n }], initialRowGroupIndex: [{\n type: Input\n }], enableRowGroup: [{\n type: Input\n }], enableValue: [{\n type: Input\n }], aggFunc: [{\n type: Input\n }], initialAggFunc: [{\n type: Input\n }], defaultAggFunc: [{\n type: Input\n }], allowedAggFuncs: [{\n type: Input\n }], showRowGroup: [{\n type: Input\n }], sortable: [{\n type: Input\n }], sort: [{\n type: Input\n }], initialSort: [{\n type: Input\n }], sortIndex: [{\n type: Input\n }], initialSortIndex: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], comparator: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], sortedAt: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], width: [{\n type: Input\n }], initialWidth: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }], flex: [{\n type: Input\n }], initialFlex: [{\n type: Input\n }], resizable: [{\n type: Input\n }], suppressSizeToFit: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }] } });\n\nclass AngularFrameworkOverrides extends VanillaFrameworkOverrides {\n constructor(_ngZone) {\n super();\n this._ngZone = _ngZone;\n }\n setEmitterUsedCallback(isEmitterUsed) {\n this.isEmitterUsed = isEmitterUsed;\n }\n setTimeout(action, timeout) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n window.setTimeout(() => {\n action();\n }, timeout);\n });\n }\n else {\n window.setTimeout(() => {\n action();\n }, timeout);\n }\n }\n setInterval(action, interval) {\n return new AgPromise(resolve => {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n resolve(window.setInterval(() => {\n action();\n }, interval));\n });\n }\n else {\n resolve(window.setInterval(() => {\n action();\n }, interval));\n }\n });\n }\n addEventListener(element, eventType, listener, useCapture) {\n if (this.isOutsideAngular(eventType) && this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener(eventType, listener, useCapture);\n });\n }\n else {\n element.addEventListener(eventType, listener, useCapture);\n }\n }\n dispatchEvent(eventType, listener, global = false) {\n if (this.isOutsideAngular(eventType)) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(listener);\n }\n else {\n listener();\n }\n }\n else if (this.isEmitterUsed(eventType) || global) {\n // only trigger off events (and potentially change detection) if actually used\n if (!NgZone.isInAngularZone() && this._ngZone) {\n this._ngZone.run(listener);\n }\n else {\n listener();\n }\n }\n }\n isFrameworkComponent(comp) {\n if (!comp) {\n return false;\n }\n const prototype = comp.prototype;\n const isAngularComp = prototype && 'agInit' in prototype;\n return isAngularComp;\n }\n}\nAngularFrameworkOverrides.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkOverrides, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nAngularFrameworkOverrides.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkOverrides });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkOverrides, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });\n\nclass AngularFrameworkComponentWrapper extends BaseComponentWrapper {\n setViewContainerRef(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n setComponentFactoryResolver(componentFactoryResolver) {\n this.componentFactoryResolver = componentFactoryResolver;\n }\n createWrapper(OriginalConstructor) {\n let that = this;\n class DynamicAgNg2Component extends BaseGuiComponent {\n init(params) {\n super.init(params);\n this._componentRef.changeDetectorRef.detectChanges();\n }\n createComponent() {\n return that.createComponent(OriginalConstructor);\n }\n hasMethod(name) {\n return wrapper.getFrameworkComponentInstance()[name] != null;\n }\n callMethod(name, args) {\n const componentRef = this.getFrameworkComponentInstance();\n return wrapper.getFrameworkComponentInstance()[name].apply(componentRef, args);\n }\n addMethod(name, callback) {\n wrapper[name] = callback;\n }\n }\n let wrapper = new DynamicAgNg2Component();\n return wrapper;\n }\n createComponent(componentType) {\n // used to cache the factory, but this a) caused issues when used with either webpack/angularcli with --prod\n // but more significantly, the underlying implementation of resolveComponentFactory uses a map too, so us\n // caching the factory here yields no performance benefits\n let factory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n return this.viewContainerRef.createComponent(factory);\n }\n}\nAngularFrameworkComponentWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkComponentWrapper, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nAngularFrameworkComponentWrapper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkComponentWrapper });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AngularFrameworkComponentWrapper, decorators: [{\n type: Injectable\n }] });\nclass BaseGuiComponent {\n init(params) {\n this._params = params;\n this._componentRef = this.createComponent();\n this._agAwareComponent = this._componentRef.instance;\n this._frameworkComponentInstance = this._componentRef.instance;\n this._eGui = this._componentRef.location.nativeElement;\n this._agAwareComponent.agInit(this._params);\n }\n getGui() {\n return this._eGui;\n }\n destroy() {\n if (this._frameworkComponentInstance && typeof this._frameworkComponentInstance.destroy === 'function') {\n this._frameworkComponentInstance.destroy();\n }\n if (this._componentRef) {\n this._componentRef.destroy();\n }\n }\n getFrameworkComponentInstance() {\n return this._frameworkComponentInstance;\n }\n}\n\nclass AgGridAngular {\n constructor(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, componentFactoryResolver) {\n this.viewContainerRef = viewContainerRef;\n this.angularFrameworkOverrides = angularFrameworkOverrides;\n this.frameworkComponentWrapper = frameworkComponentWrapper;\n this.componentFactoryResolver = componentFactoryResolver;\n this._initialised = false;\n this._destroyed = false;\n // in order to ensure firing of gridReady is deterministic\n this._fullyReady = AgPromise.resolve(true);\n // @START@\n /** Specifies the status bar components to use in the status bar. */\n this.statusBar = undefined;\n /** Specifies the side bar components. */\n this.sideBar = undefined;\n /** Set to `true` to not show the context menu. Use if you don't want to use the default 'right click' context menu. Default: `false` */\n this.suppressContextMenu = undefined;\n /** When using `suppressContextMenu`, you can use the `onCellContextMenu` function to provide your own code to handle cell `contextmenu` events.\n * This flag is useful to prevent the browser from showing its default context menu.\n * Default: `false` */\n this.preventDefaultOnContextMenu = undefined;\n /** Allows context menu to show, even when `Ctrl` key is held down. Default: `false` */\n this.allowContextMenuWithControlKey = undefined;\n /** Set to `true` to always show the column menu button, rather than only showing when the mouse is over the column header. Default: `false` */\n this.suppressMenuHide = undefined;\n /** Set to `true` to use the browser's default tooltip instead of using the grid's Tooltip Component. Default: `false` */\n this.enableBrowserTooltips = undefined;\n /** The delay in milliseconds that it takes for tooltips to show up once an element is hovered over.\n * **Note:** This property does not work if `enableBrowserTooltips` is `true`.\n * Default: `2000` */\n this.tooltipShowDelay = undefined;\n /** The delay in milliseconds that it takes for tooltips to hide once they have been displayed.\n * **Note:** This property does not work if `enableBrowserTooltips` is `true`.\n * Default: `10000` */\n this.tooltipHideDelay = undefined;\n /** Set to `true` to have tooltips follow the cursor once they are displayed. Default: `false` */\n this.tooltipMouseTrack = undefined;\n /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */\n this.popupParent = undefined;\n /** Set to `true` to also include headers when copying to clipboard using `Ctrl + C` clipboard. Default: `false` */\n this.copyHeadersToClipboard = undefined;\n /** Set to `true` to also include group headers when copying to clipboard using `Ctrl + C` clipboard. Default: `false` */\n this.copyGroupHeadersToClipboard = undefined;\n /** Specify the delimiter to use when copying to clipboard.\n * Default: `\\t` */\n this.clipboardDelimiter = undefined;\n /** Set to `true` to copy the cell range or focused cell to the clipboard and never the selected rows. Default: `false` */\n this.suppressCopyRowsToClipboard = undefined;\n /** Set to `true` to copy rows instead of ranges when a range with only a single cell is selected. Default: `false` */\n this.suppressCopySingleCellRanges = undefined;\n /** Set to `true` to work around a bug with Excel (Windows) that adds an extra empty line at the end of ranges copied to the clipboard. Default: `false` */\n this.suppressLastEmptyLineOnPaste = undefined;\n /** Set to `true` to turn off paste operations within the grid. */\n this.suppressClipboardPaste = undefined;\n /** Set to `true` to stop the grid trying to use the Clipboard API, if it is blocked, and immediately fallback to the workaround. */\n this.suppressClipboardApi = undefined;\n /** Array of Column / Column Group definitions. */\n this.columnDefs = undefined;\n /** A default column definition. Items defined in the actual column definitions get precedence. */\n this.defaultColDef = undefined;\n /** A default column group definition. All column group definitions will use these properties. Items defined in the actual column group definition get precedence. */\n this.defaultColGroupDef = undefined;\n /** An object map of custom column types which contain groups of properties that column definitions can inherit by referencing in their `type` property. */\n this.columnTypes = undefined;\n /** Keeps the order of Columns maintained after new Column Definitions are updated. Default: `false` */\n this.maintainColumnOrder = undefined;\n /** If `true`, then dots in field names (e.g. `'address.firstLine'`) are not treated as deep references. Allows you to use dots in your field name if you prefer. Default: `false` */\n this.suppressFieldDotNotation = undefined;\n /** @deprecated */\n this.deltaColumnMode = undefined;\n /** @deprecated */\n this.applyColumnDefOrder = undefined;\n /** @deprecated */\n this.immutableColumns = undefined;\n /** @deprecated */\n this.suppressSetColumnStateEvents = undefined;\n /** @deprecated */\n this.suppressColumnStateEvents = undefined;\n /** @deprecated Set via `defaultColDef.width` */\n this.colWidth = undefined;\n /** @deprecated Set via `defaultColDef.minWidth` */\n this.minColWidth = undefined;\n /** @deprecated Set via `defaultColDef.maxWidth` */\n this.maxColWidth = undefined;\n /** The height in pixels for the row containing the column label header. If not specified, it uses the theme value of `header-height`. */\n this.headerHeight = undefined;\n /** The height in pixels for the rows containing header column groups. If not specified, it uses `headerHeight`. */\n this.groupHeaderHeight = undefined;\n /** The height in pixels for the row containing the floating filters. If not specified, it uses the theme value of `header-height`. */\n this.floatingFiltersHeight = undefined;\n /** The height in pixels for the row containing the columns when in pivot mode. If not specified, it uses `headerHeight`. */\n this.pivotHeaderHeight = undefined;\n /** The height in pixels for the row containing header column groups when in pivot mode. If not specified, it uses `groupHeaderHeight`. */\n this.pivotGroupHeaderHeight = undefined;\n /** Allow reordering and pinning columns by dragging columns from the Columns Tool Panel to the grid. Default: `false` */\n this.allowDragFromColumnsToolPanel = undefined;\n /** Set to `true` to suppress column moving, i.e. to make the columns fixed position. Default: `false` */\n this.suppressMovableColumns = undefined;\n /** If `true`, the `ag-column-moving` class is not added to the grid while columns are moving. In the default themes, this results in no animation when moving columns. Default: `false` */\n this.suppressColumnMoveAnimation = undefined;\n /** If `true`, when you drag a column out of the grid (e.g. to the group zone) the column is not hidden. Default: `false` */\n this.suppressDragLeaveHidesColumns = undefined;\n /** If `true`, when you drag a column into a row group panel the column is not hidden. Default: `false` */\n this.suppressRowGroupHidesColumns = undefined;\n /** Set to `'shift'` to have shift-resize as the default resize operation (same as user holding down `Shift` while resizing). */\n this.colResizeDefault = undefined;\n /** Suppresses auto-sizing columns for columns. In other words, double clicking a column's header's edge will not auto-size. Default: `false` */\n this.suppressAutoSize = undefined;\n /** Number of pixels to add to a column width after the [auto-sizing](/column-sizing/#auto-size-columns) calculation.\n * Set this if you want to add extra room to accommodate (for example) sort icons, or some other dynamic nature of the header.\n * Default: `4` */\n this.autoSizePadding = undefined;\n /** Set this to `true` to skip the `headerName` when `autoSize` is called by default. Default: `false` */\n this.skipHeaderOnAutoSize = undefined;\n /** A map of component names to components. */\n this.components = undefined;\n /** @deprecated As of v27, use `components` for framework components too. */\n this.frameworkComponents = undefined;\n /** Set to `'fullRow'` to enable Full Row Editing. Otherwise leave blank to edit one cell at a time. */\n this.editType = undefined;\n /** Set to `true` to enable Single Click Editing for cells, to start editing with a single click. Default: `false` */\n this.singleClickEdit = undefined;\n /** Set to `true` so that neither single nor double click starts editing. Default: `false` */\n this.suppressClickEdit = undefined;\n /** Set to `true` so stop the grid updating data after and edit. When this is set, it is intended the application will update the data, eg in an external immutable store, and then pass the new dataset to the grid. */\n this.readOnlyEdit = undefined;\n /** Set this to `true` to stop cell editing when grid loses focus.\n * The default is that the grid stays editing until focus goes onto another cell.\n * Default: `false` */\n this.stopEditingWhenCellsLoseFocus = undefined;\n /** Set to `true` along with `enterMovesDownAfterEdit` to have Excel-style behaviour for the `Enter` key.\n * i.e. pressing the `Enter` key will move down to the cell beneath.\n * Default: `false` */\n this.enterMovesDown = undefined;\n /** Set to `true` along with `enterMovesDown` to have Excel-style behaviour for the 'Enter' key.\n * i.e. pressing the Enter key will move down to the cell beneath.\n * Default: `false` */\n this.enterMovesDownAfterEdit = undefined;\n /** Forces Cell Editing to start when backspace is pressed. This is only relevant for MacOS users. */\n this.enableCellEditingOnBackspace = undefined;\n /** Set to `true` to enable Undo / Redo while editing. */\n this.undoRedoCellEditing = undefined;\n /** Set the size of the undo / redo stack. Default: `10` */\n this.undoRedoCellEditingLimit = undefined;\n /** @deprecated Use stopEditingWhenCellsLoseFocus instead */\n this.stopEditingWhenGridLosesFocus = undefined;\n /** A default configuration object used to export to CSV. */\n this.defaultCsvExportParams = undefined;\n /** Prevents the user from exporting the grid to CSV. Default: `false` */\n this.suppressCsvExport = undefined;\n /** A default configuration object used to export to Excel. */\n this.defaultExcelExportParams = undefined;\n /** Prevents the user from exporting the grid to Excel. Default: `false` */\n this.suppressExcelExport = undefined;\n /** A list (array) of Excel styles to be used when exporting to Excel with styles. */\n this.excelStyles = undefined;\n /** @deprecated Use defaultCsvExportParams or defaultExcelExportParams */\n this.defaultExportParams = undefined;\n /** Rows are filtered using this text as a quick filter. */\n this.quickFilterText = undefined;\n /** Set to `true` to turn on the quick filter cache, used to improve performance when using the quick filter. Default: `false` */\n this.cacheQuickFilter = undefined;\n /** Set to `true` to override the default tree data filtering behaviour to instead exclude child nodes from filter results. Default: `false` */\n this.excludeChildrenWhenTreeDataFiltering = undefined;\n /** Set to `true` to Enable Charts. Default: `false` */\n this.enableCharts = undefined;\n /** The list of chart themes to be used. */\n this.chartThemes = undefined;\n /** A map containing custom chart themes. */\n this.customChartThemes = undefined;\n /** Chart theme overrides applied to all themes. */\n this.chartThemeOverrides = undefined;\n /** Set to `true` to show the Chart Tool Panels button. Note this will also remove the 'hamburger' menu option from the Chart Toolbar and always display the remaining toolbar buttons. Default: `false` */\n this.enableChartToolPanelsButton = undefined;\n /** Allows customisation of the Chart Tool Panels, such as changing the tool panels visibility and order, as well as choosing which charts should be displayed in the settings panel. */\n this.chartToolPanelsDef = undefined;\n /** Provide your own loading cell renderer to use when data is loading via a DataSource.\n * See [Loading Cell Renderer](https://www.ag-grid.com/javascript-data-grid/component-loading-cell-renderer/) for framework specific implementation details. */\n this.loadingCellRenderer = undefined;\n /** @deprecated As of v27, use `loadingCellRenderer` for framework components too. */\n this.loadingCellRendererFramework = undefined;\n /** Params to be passed to the `loadingCellRenderer` component. */\n this.loadingCellRendererParams = undefined;\n /** Callback to select which loading cell renderer to be used when data is loading via a DataSource. */\n this.loadingCellRendererSelector = undefined;\n /** A map of key->value pairs for localising text within the grid. */\n this.localeText = undefined;\n /** Set to `true` to enable Master Detail. Default: `false` */\n this.masterDetail = undefined;\n /** Set to `true` to keep detail rows for when they are displayed again. Default: `false` */\n this.keepDetailRows = undefined;\n /** Sets the number of details rows to keep. Default: `10` */\n this.keepDetailRowsCount = undefined;\n /** Provide a custom `detailCellRenderer` to use when a master row is expanded.\n * See [Detail Cell Renderer](https://www.ag-grid.com/javascript-data-grid/master-detail-custom-detail/) for framework specific implementation details. */\n this.detailCellRenderer = undefined;\n /** @deprecated As of v27, use `detailCellRenderer` for framework components too. */\n this.detailCellRendererFramework = undefined;\n /** Specifies the params to be used by the Detail Cell Renderer. Can also be a function that provides the params to enable dynamic definitions of the params. */\n this.detailCellRendererParams = undefined;\n /** Set fixed height in pixels for each detail row. */\n this.detailRowHeight = undefined;\n /** Set to `true` to have the detail grid dynamically change it's height to fit it's rows. */\n this.detailRowAutoHeight = undefined;\n /** Provides a context object that is provided to different callbacks the grid uses. Used for passing additional information to the callbacks by your application. */\n this.context = undefined;\n /** A list of grids to treat as Aligned Grids. If grids are aligned then the columns and horizontal scrolling will be kept in sync. */\n this.alignedGrids = undefined;\n /** Change this value to set the tabIndex order of the Grid within your application. Default: `0` */\n this.tabIndex = undefined;\n /** The number of rows rendered outside the viewable area the grid renders.\n * Having a buffer means the grid will have rows ready to show as the user slowly scrolls vertically.\n * Default: `10` */\n this.rowBuffer = undefined;\n /** Set to `true` to turn on the value cache. Default: `false` */\n this.valueCache = undefined;\n /** Set to `true` to configure the value cache to not expire after data updates. Default: `false` */\n this.valueCacheNeverExpires = undefined;\n /** Set to `true` to allow cell expressions. Default: `false` */\n this.enableCellExpressions = undefined;\n /** If `true`, row nodes do not have their parents set.\n * The grid doesn't use the parent reference, but it is included to help the client code navigate the node tree if it wants by providing bi-direction navigation up and down the tree.\n * If this is a problem (e.g. if you need to convert the tree to JSON, which does not allow cyclic dependencies) then set this to `true`.\n * Default: `false` */\n this.suppressParentsInRowNodes = undefined;\n /** Disables touch support (but does not remove the browser's efforts to simulate mouse events on touch). Default: `false` */\n this.suppressTouch = undefined;\n /** Set to `true` to not set focus back on the grid after a refresh. This can avoid issues where you want to keep the focus on another part of the browser. Default: `false` */\n this.suppressFocusAfterRefresh = undefined;\n /** Disables the asynchronous nature of the events introduced in v10, and makes them synchronous. This property only exists for the purpose of supporting legacy code which has a dependency on synchronous events from earlier versions (v9 or earlier) of AG Grid. **It is strongly recommended that you do not change this property unless you have legacy issues.** Default: `false` */\n this.suppressAsyncEvents = undefined;\n /** The grid will check for `ResizeObserver` and use it if it exists in the browser, otherwise it will use the grid's alternative implementation. Some users reported issues with Chrome's `ResizeObserver`. Use this property to always use the grid's alternative implementation should such problems exist. Default: `false` */\n this.suppressBrowserResizeObserver = undefined;\n /** Disables showing a warning message in the console if using a `gridOptions` or `colDef` property that doesn't exist. Default: `false` */\n this.suppressPropertyNamesCheck = undefined;\n /** Disables change detection. Default: `false` */\n this.suppressChangeDetection = undefined;\n /** Set this to `true` to enable debug information from the grid and related components. Will result in additional logging being output, but very useful when investigating problems. Default: `false` */\n this.debug = undefined;\n /** Provide a template for 'loading' overlay. */\n this.overlayLoadingTemplate = undefined;\n /** Provide a custom loading overlay component.\n * See [Loading Overlay Component](https://www.ag-grid.com/javascript-data-grid/component-overlay/#simple-loading-overlay-component) for framework specific implementation details. */\n this.loadingOverlayComponent = undefined;\n /** @deprecated As of v27, use `loadingOverlayComponent` for framework components too. */\n this.loadingOverlayComponentFramework = undefined;\n /** Customise the parameters provided to the loading overlay component. */\n this.loadingOverlayComponentParams = undefined;\n /** Disables the 'loading' overlay. Default: `false` */\n this.suppressLoadingOverlay = undefined;\n /** Provide a template for 'no rows' overlay. */\n this.overlayNoRowsTemplate = undefined;\n /** Provide a custom no rows overlay component.\n * See [No Rows Overlay Component](https://www.ag-grid.com/javascript-data-grid/component-overlay/#simple-no-rows-overlay-component) for framework specific implementation details. */\n this.noRowsOverlayComponent = undefined;\n /** @deprecated As of v27, use `noRowsOverlayComponent` for framework components too. */\n this.noRowsOverlayComponentFramework = undefined;\n /** Customise the parameters provided to the no rows overlay component. */\n this.noRowsOverlayComponentParams = undefined;\n /** Disables the 'no rows' overlay. Default: `false` */\n this.suppressNoRowsOverlay = undefined;\n /** Set whether pagination is enabled. Default: `false` */\n this.pagination = undefined;\n /** How many rows to load per page. If `paginationAutoPageSize` is specified, this property is ignored. Default: `100` */\n this.paginationPageSize = undefined;\n /** Set to `true` so that the number of rows to load per page is automatically adjusted by the grid so each page shows enough rows to just fill the area designated for the grid. If `false`, `paginationPageSize` is used. Default: `false` */\n this.paginationAutoPageSize = undefined;\n /** Set to `true` to have pages split children of groups when using Row Grouping or detail rows with Master Detail. Default: `false` */\n this.paginateChildRows = undefined;\n /** If `true`, the default grid controls for navigation are hidden.\n * This is useful if `pagination=true` and you want to provide your own pagination controls.\n * Otherwise, when `pagination=true` the grid automatically shows the necessary controls at the bottom so that the user can navigate through the different pages.\n * Default: `false` */\n this.suppressPaginationPanel = undefined;\n /** Set to `true` to enable pivot mode. Default: `false` */\n this.pivotMode = undefined;\n /** When to show the 'pivot panel' (where you drag rows to pivot) at the top. Note that the pivot panel will never show if `pivotMode` is off. Default: `never` */\n this.pivotPanelShow = undefined;\n /** When set and the grid is in pivot mode, automatically calculated totals will appear within the Pivot Column Groups, in the position specified. */\n this.pivotColumnGroupTotals = undefined;\n /** When set and the grid is in pivot mode, automatically calculated totals will appear for each value column in the position specified. */\n this.pivotRowTotals = undefined;\n /** If `true`, the grid will not swap in the grouping column when pivoting. Useful if pivoting using Server Side Row Model or Viewport Row Model and you want full control of all columns including the group column. Default: `false` */\n this.pivotSuppressAutoColumn = undefined;\n /** When enabled, pivot column groups will appear 'fixed', without the ability to expand and collapse the column groups. Default: `false` */\n this.suppressExpandablePivotGroups = undefined;\n /** If `true`, then row group, pivot and value aggregation will be read-only from the GUI. The grid will display what values are used for each, but will not allow the user to change the selection. Default: `false` */\n this.functionsReadOnly = undefined;\n /** A map of 'function name' to 'function' for custom aggregation functions. */\n this.aggFuncs = undefined;\n /** When `true`, column headers won't include the `aggFunc` name, e.g. `'sum(Bank Balance)`' will just be `'Bank Balance'`. Default: `false` */\n this.suppressAggFuncInHeader = undefined;\n /** When `true`, the aggregations won't be computed for the root node of the grid. Default: `false` */\n this.suppressAggAtRootLevel = undefined;\n /** When using change detection, only the updated column will be re-aggregated. Default: `false` */\n this.aggregateOnlyChangedColumns = undefined;\n /** Set to `true` so that aggregations are not impacted by filtering. Default: `false` */\n this.suppressAggFilteredOnly = undefined;\n /** Set to `true` to omit the value Column header when there is only a single value column. Default: `false` */\n this.removePivotHeaderRowWhenSingleValueColumn = undefined;\n /** Set to `true` to enable Row Animation. Default: `false` */\n this.animateRows = undefined;\n /** Set to `true` to have cells flash after data changes. Default: `false` */\n this.enableCellChangeFlash = undefined;\n /** To be used in combination with `enableCellChangeFlash`, this configuration will set the delay in milliseconds of how long a cell should remain in its \"flashed\" state.\n * Default: `500` */\n this.cellFlashDelay = undefined;\n /** To be used in combination with `enableCellChangeFlash`, this configuration will set the delay in milliseconds of how long the \"flashed\" state animation takes to fade away after the timer set by `cellFlashDelay` has completed.\n * Default: `1000` */\n this.cellFadeDelay = undefined;\n /** Set to `true` to have cells flash after data changes even when the change is due to filtering. Default: `false` */\n this.allowShowChangeAfterFilter = undefined;\n /** Switch between layout options: `normal`, `autoHeight`, `print`.\n * Default: `normal` */\n this.domLayout = undefined;\n /** When `true`, the order of rows and columns in the DOM are consistent with what is on screen. Default: `false` */\n this.ensureDomOrder = undefined;\n /** Set to `true` to operate the grid in RTL (Right to Left) mode. Default: `false` */\n this.enableRtl = undefined;\n /** Set to `true` so that the grid doesn't virtualise the columns. For example, if you have 100 columns, but only 10 visible due to scrolling, all 100 will always be rendered. Default: `false` */\n this.suppressColumnVirtualisation = undefined;\n /** By default the grid has a limit of rendering a maximum of 500 rows at once (remember the grid only renders rows you can see, so unless your display shows more than 500 rows without vertically scrolling this will never be an issue).\n *
**This is only relevant if you are manually setting `rowBuffer` to a high value (rendering more rows than can be seen), or `suppressRowVirtualisation` is true, or if your grid height is able to display more than 500 rows at once.**\n * Default: `false` */\n this.suppressMaxRenderedRowRestriction = undefined;\n /** Set to `true` so that the grid doesn't virtualise the rows. For example, if you have 100 rows, but only 10 visible due to scrolling, all 100 will always be rendered. Default: `false` */\n this.suppressRowVirtualisation = undefined;\n /** Set to `true` to enable Managed Row Dragging. Default: `false` */\n this.rowDragManaged = undefined;\n /** Set to `true` to suppress row dragging. Default: `false` */\n this.suppressRowDrag = undefined;\n /** Set to `true` to suppress moving rows while dragging the `rowDrag` waffle. This option highlights the position where the row will be placed and it will only move the row on mouse up. Default: `false` */\n this.suppressMoveWhenRowDragging = undefined;\n /** Set to `true` to enable clicking and dragging anywhere on the row without the need for a drag handle. Default: `false` */\n this.rowDragEntireRow = undefined;\n /** Set to `true` to enable dragging multiple rows at the same time. Default: `false` */\n this.rowDragMultiRow = undefined;\n /** A callback that should return a string to be displayed by the `rowDragComp` while dragging a row.\n * If this callback is not set, the current cell value will be used.\n * If the `rowDragText` callback is set in the ColDef it will take precedence over this, except when\n * `rowDragEntireRow=true`. */\n this.rowDragText = undefined;\n /** Provide your own cell renderer component to use for full width rows.\n * See [Full Width Rows](https://www.ag-grid.com/javascript-data-grid/full-width-rows/) for framework specific implementation details. */\n this.fullWidthCellRenderer = undefined;\n /** @deprecated As of v27, use `fullWidthCellRenderer` for framework components too. */\n this.fullWidthCellRendererFramework = undefined;\n /** Customise the parameters provided to the `fullWidthCellRenderer` component. */\n this.fullWidthCellRendererParams = undefined;\n /** Set to `true` to have the detail grid embedded in the master grid's container and so link their horizontal scrolling. */\n this.embedFullWidthRows = undefined;\n /** @deprecated */\n this.deprecatedEmbedFullWidthRows = undefined;\n /** Specifies how the results of row grouping should be displayed.\n *\n * The options are:\n *\n * - `'singleColumn'`: single group column automatically added by the grid.\n * - `'multipleColumns'`: a group column per row group is added automatically.\n * - `'groupRows'`: group rows are automatically added instead of group columns.\n * - `'custom'`: informs the grid that group columns will be provided. */\n this.groupDisplayType = undefined;\n /** If grouping, set to the number of levels to expand by default, e.g. `0` for none, `1` for first level only, etc. Set to `-1` to expand everything. Default: `0` */\n this.groupDefaultExpanded = undefined;\n /** Allows specifying the group 'auto column' if you are not happy with the default. If grouping, this column definition is included as the first column in the grid. If not grouping, this column is not included. */\n this.autoGroupColumnDef = undefined;\n /** When `true`, preserves the current group order when sorting on non-group columns. Default: `false` */\n this.groupMaintainOrder = undefined;\n /** When `true`, if you select a group, the children of the group will also be selected. Default: `false` */\n this.groupSelectsChildren = undefined;\n /** Set to determine whether filters should be applied on aggregated group values. Default: `false` */\n this.groupAggFiltering = undefined;\n /** If grouping, this controls whether to show a group footer when the group is expanded.\n * If `true`, then by default, the footer will contain aggregate data (if any) when shown and the header will be blank.\n * When closed, the header will contain the aggregate data regardless of this setting (as the footer is hidden anyway).\n * This is handy for 'total' rows, that are displayed below the data when the group is open, and alongside the group when it is closed.\n * Default: `false` */\n this.groupIncludeFooter = undefined;\n /** Set to `true` to show a 'grand total' group footer across all groups. Default: `false` */\n this.groupIncludeTotalFooter = undefined;\n /** If `true`, and showing footer, aggregate data will always be displayed at both the header and footer levels. This stops the possibly undesirable behaviour of the header details 'jumping' to the footer on expand. Default: `false` */\n this.groupSuppressBlankHeader = undefined;\n /** If using `groupSelectsChildren`, then only the children that pass the current filter will get selected. Default: `false` */\n this.groupSelectsFiltered = undefined;\n /** Shows the open group in the group column for non-group rows. Default: `false` */\n this.showOpenedGroup = undefined;\n /** Set to `true` to collapse groups that only have one child. */\n this.groupRemoveSingleChildren = undefined;\n /** Set to `true` to collapse lowest level groups that only have one child. Default: `false` */\n this.groupRemoveLowestSingleChildren = undefined;\n /** Set to `true` to hide parents that are open. When used with multiple columns for showing groups, it can give a more pleasing user experience. Default: `false` */\n this.groupHideOpenParents = undefined;\n /** When to show the 'row group panel' (where you drag rows to group) at the top. Default: `never` */\n this.rowGroupPanelShow = undefined;\n /** Provide the Cell Renderer to use when `groupDisplayType = 'groupRows'`.\n * See [Group Row Cell Renderer](https://www.ag-grid.com/javascript-data-grid/grouping-group-rows/#providing-cell-renderer) for framework specific implementation details. */\n this.groupRowRenderer = undefined;\n /** @deprecated As of v27, use `groupRowRenderer` for framework components too. */\n this.groupRowRendererFramework = undefined;\n /** Customise the parameters provided to the `groupRowRenderer` component. */\n this.groupRowRendererParams = undefined;\n /** By default, when a column is un-grouped, i.e. using the Row Group Panel, it is made visible in the grid. This property stops the column becoming visible again when un-grouping. Default: `false` */\n this.suppressMakeColumnVisibleAfterUnGroup = undefined;\n /** Set to `true` to enable the Grid to work with Tree Data. You must also implement the `getDataPath(data)` callback. */\n this.treeData = undefined;\n /** Set to `true` to suppress sort indicators and actions from the row group panel. Default: `false`. */\n this.rowGroupPanelSuppressSort = undefined;\n /** Set to `true` to keep open Group Rows visible at the top of the grid. Default: `false`. */\n this.groupRowsSticky = undefined;\n /** @deprecated - this is now groupRowRendererParams.innerRenderer */\n this.groupRowInnerRenderer = undefined;\n /** @deprecated - this is now groupRowRendererParams.innerRenderer */\n this.groupRowInnerRendererFramework = undefined;\n /** @deprecated - Use groupDisplayType = 'multipleColumns' instead */\n this.groupMultiAutoColumn = undefined;\n /** @deprecated - Use groupDisplayType = 'groupRows' instead */\n this.groupUseEntireRow = undefined;\n /** @deprecated - Use groupDisplayType = 'custom' instead */\n this.groupSuppressAutoColumn = undefined;\n /** @deprecated - no longer needed, transaction updates keep group state */\n this.rememberGroupStateWhenNewData = undefined;\n /** Data to be displayed as pinned top rows in the grid. */\n this.pinnedTopRowData = undefined;\n /** Data to be displayed as pinned bottom rows in the grid. */\n this.pinnedBottomRowData = undefined;\n /** Sets the row model type. Default: `clientSide` */\n this.rowModelType = undefined;\n /** Set the data to be displayed as rows in the grid. */\n this.rowData = undefined;\n /** @deprecated Immutable Data is on by default when grid callback getRowId() is implemented\n * Enables Immutable Data mode, for compatibility with immutable stores. Default: `false` */\n this.immutableData = undefined;\n /** How many milliseconds to wait before executing a batch of async transactions. */\n this.asyncTransactionWaitMillis = undefined;\n /** Prevents Transactions changing sort, filter, group or pivot state when transaction only contains updates. Default: `false` */\n this.suppressModelUpdateAfterUpdateTransaction = undefined;\n /** @deprecated */\n this.deltaRowDataMode = undefined;\n /** @deprecated use asyncTransactionWaitMillis instead */\n this.batchUpdateWaitMillis = undefined;\n /** Provide the datasource for infinite scrolling. */\n this.datasource = undefined;\n /** How many extra blank rows to display to the user at the end of the dataset, which sets the vertical scroll and then allows the grid to request viewing more rows of data.\n * Default: `1` */\n this.cacheOverflowSize = undefined;\n /** How many extra blank rows to display to the user at the end of the dataset, which sets the vertical scroll and then allows the grid to request viewing more rows of data.\n * Default: `1` */\n this.infiniteInitialRowCount = undefined;\n /** Set how many loading rows to display to the user for the root level group.\n * Default: `1` */\n this.serverSideInitialRowCount = undefined;\n /** @deprecated Whether to use Full Store or Partial Store for storing rows. Default: `full`.\n * Deprecated in favour of serverSideInfiniteScroll. When true, Partial Store is used. When false,\n * Full Store is used.\n */\n this.serverSideStoreType = undefined;\n /** Set whether Server-side Row Model will use Infinite Scrolling\n * Default: `false` */\n this.serverSideInfiniteScroll = undefined;\n /** How many rows for each block in the store, i.e. how many rows returned from the server at a time.\n * Default: `100` */\n this.cacheBlockSize = undefined;\n /** How many blocks to keep in the store. Default is no limit, so every requested block is kept. Use this if you have memory concerns, and blocks that were least recently viewed will be purged when the limit is hit. The grid will additionally make sure it has all the blocks needed to display what is currently visible, in case this property is set to a low value. */\n this.maxBlocksInCache = undefined;\n /** How many requests to hit the server with concurrently. If the max is reached, requests are queued.\n * Set to `-1` for no maximum restriction on requests.\n * Default: `2` */\n this.maxConcurrentDatasourceRequests = undefined;\n /** How many milliseconds to wait before loading a block. Useful when infinite scrolling and scrolling over many infinite blocks, as it prevents blocks loading until scrolling has settled. */\n this.blockLoadDebounceMillis = undefined;\n /** When enabled, closing group rows will remove children of that row. Next time the row is opened, child rows will be read from the datasource again. This property only applies when there is Row Grouping. Default: `false` */\n this.purgeClosedRowNodes = undefined;\n /** Provide the `serverSideDatasource` for server side row model. */\n this.serverSideDatasource = undefined;\n /** When enabled, always refreshes top level groups regardless of which column was sorted. This property only applies when there is Row Grouping & sorting is handled on the server. Default: `false` */\n this.serverSideSortAllLevels = undefined;\n /** When enabled, always refreshes top level groups regardless of which column was filtered. This property only applies when there is Row Grouping & filtering is handled on the server. Default: `false` */\n this.serverSideFilterAllLevels = undefined;\n /** When enabled, Sorting will be done on the server side. When serverSideInfiniteScroll=true, does nothing,\n * as Sorting is always server side when Infinite Scroll is active.\n * Default: `false` */\n this.serverSideSortOnServer = undefined;\n /** When enabled, Filtering will be done on the server side. When serverSideInfiniteScroll=true, does nothing,\n * as Filtering is always server side when Infinite Scroll is active.\n * Default: `false` */\n this.serverSideFilterOnServer = undefined;\n /** @deprecated This property has been deprecated. Use `serverSideSortAllLevels` instead. */\n this.serverSideSortingAlwaysResets = undefined;\n /** @deprecated This property has been deprecated. Use `serverSideFilterAllLevels` instead. */\n this.serverSideFilteringAlwaysResets = undefined;\n /** @deprecated */\n this.suppressEnterpriseResetOnNewColumns = undefined;\n /** To use the viewport row model you need to provide the grid with a `viewportDatasource`. */\n this.viewportDatasource = undefined;\n /** When using viewport row model, sets the page size for the viewport. */\n this.viewportRowModelPageSize = undefined;\n /** When using viewport row model, sets the buffer size for the viewport. */\n this.viewportRowModelBufferSize = undefined;\n /** Set to `true` to always show the horizontal scrollbar. Default: `false` */\n this.alwaysShowHorizontalScroll = undefined;\n /** Set to `true` to always show the vertical scrollbar. Default: `false` */\n this.alwaysShowVerticalScroll = undefined;\n /** Set to `true` to debounce the vertical scrollbar. Can provide smoother scrolling on slow machines. Default: `false` */\n this.debounceVerticalScrollbar = undefined;\n /** Set to `true` to never show the horizontal scroll. This is useful if the grid is aligned with another grid and will scroll when the other grid scrolls. (Should not be used in combination with `alwaysShowHorizontalScroll`.) Default: `false` */\n this.suppressHorizontalScroll = undefined;\n /** When `true`, the grid will not scroll to the top when new row data is provided. Use this if you don't want the default behaviour of scrolling to the top every time you load new data. Default: `false` */\n this.suppressScrollOnNewData = undefined;\n /** When `true`, the grid will not allow mousewheel / touchpad scroll when popup elements are present. Default: `false` */\n this.suppressScrollWhenPopupsAreOpen = undefined;\n /** When `true`, the grid will not use animation frames when drawing rows while scrolling. Use this if the grid is working fast enough that you don't need animation frames and you don't want the grid to flicker. Default: `false` */\n this.suppressAnimationFrame = undefined;\n /** If `true`, middle clicks will result in `click` events for cells and rows. Otherwise the browser will use middle click to scroll the grid.
**Note:** Not all browsers fire `click` events with the middle button. Most will fire only `mousedown` and `mouseup` events, which can be used to focus a cell, but will not work to call the `onCellClicked` function. Default: `false` */\n this.suppressMiddleClickScrolls = undefined;\n /** If `true`, mouse wheel events will be passed to the browser. Useful if your grid has no vertical scrolls and you want the mouse to scroll the browser page. Default: `false` */\n this.suppressPreventDefaultOnMouseWheel = undefined;\n /** Tell the grid how wide in pixels the scrollbar is, which is used in grid width calculations. Set only if using non-standard browser-provided scrollbars, so the grid can use the non-standard size in its calculations. */\n this.scrollbarWidth = undefined;\n /** Type of Row Selection: `single`, `multiple`. */\n this.rowSelection = undefined;\n /** Set to `true` to allow multiple rows to be selected using single click. Default: `false` */\n this.rowMultiSelectWithClick = undefined;\n /** If `true`, rows will not be deselected if you hold down `Ctrl` and click the row or press `Space`. Default: `false` */\n this.suppressRowDeselection = undefined;\n /** If `true`, row selection won't happen when rows are clicked. Use when you only want checkbox selection. Default: `false` */\n this.suppressRowClickSelection = undefined;\n /** @deprecated This property has been deprecated. Use `suppressCellFocus` instead.\n */\n this.suppressCellSelection = undefined;\n /** If `true`, cells won't be focusable. This means keyboard navigation will be disabled for grid cells, but remain enabled in other elements of the grid such as column headers, floating filters, tool panels. Default: `false` */\n this.suppressCellFocus = undefined;\n /** If `true`, only a single range can be selected. Default: `false` */\n this.suppressMultiRangeSelection = undefined;\n /** Set to `true` to be able to select the text within cells.\n *\n * **Note:** When this is set to `true`, the clipboard service is disabled.\n * Default: `false` */\n this.enableCellTextSelection = undefined;\n /** Set to `true` to enable Range Selection. Default: `false` */\n this.enableRangeSelection = undefined;\n /** Set to `true` to enable the Range Handle. Default: `false` */\n this.enableRangeHandle = undefined;\n /** Set to `true` to enable the Fill Handle. Default: `false` */\n this.enableFillHandle = undefined;\n /** Set to `'x'` to force the fill handle direction to horizontal, or set to `'y'` to force the fill handle direction to vertical. Default: `xy` */\n this.fillHandleDirection = undefined;\n /** Set this to `true` to prevent cell values from being cleared when the Range Selection is reduced by the Fill Handle. Default: `false` */\n this.suppressClearOnFillReduction = undefined;\n /** Array defining the order in which sorting occurs (if sorting is enabled). Values can be `'asc'`, `'desc'` or `null`. For example: `sortingOrder: ['asc', 'desc']`. Default: `[null, 'asc', 'desc']` */\n this.sortingOrder = undefined;\n /** Set to `true` to specify that the sort should take accented characters into account. If this feature is turned on the sort will be slower. Default: `false` */\n this.accentedSort = undefined;\n /** Set to `true` to show the 'no sort' icon. Default: `false` */\n this.unSortIcon = undefined;\n /** Set to `true` to suppress multi-sort when the user shift-clicks a column header. Default: `false` */\n this.suppressMultiSort = undefined;\n /** Set to `true` to always multi-sort when the user clicks a column header, regardless of key presses. Default: `false` */\n this.alwaysMultiSort = undefined;\n /** Set to `'ctrl'` to have multi sorting work using the `Ctrl` (or `Command ⌘` for Mac) key. */\n this.multiSortKey = undefined;\n /** Set to `true` to suppress sorting of un-sorted data to match original row data. Default: `false` */\n this.suppressMaintainUnsortedOrder = undefined;\n /** Icons to use inside the grid instead of the grid's default icons. */\n this.icons = undefined;\n /** Default row height in pixels. Default: `25` */\n this.rowHeight = undefined;\n /** The style properties to apply to all rows. Set to an object of key (style names) and values (style values) */\n this.rowStyle = undefined;\n /** CSS class(es) for all rows. Provide either a string (class name) or array of strings (array of class names). */\n this.rowClass = undefined;\n /** Rules which can be applied to include certain CSS classes. */\n this.rowClassRules = undefined;\n /** Set to `true` to not highlight rows by adding the `ag-row-hover` CSS class. Default: `false` */\n this.suppressRowHoverHighlight = undefined;\n /** Uses CSS `top` instead of CSS `transform` for positioning rows. Useful if the transform function is causing issues such as used in row spanning. Default: `false` */\n this.suppressRowTransform = undefined;\n /** Set to `true` to highlight columns by adding the `ag-column-hover` CSS class. Default: `false` */\n this.columnHoverHighlight = undefined;\n this.deltaSort = undefined;\n this.treeDataDisplayType = undefined;\n /** @deprecated */\n this.angularCompileRows = undefined;\n /** @deprecated */\n this.angularCompileFilters = undefined;\n this.functionsPassive = undefined;\n this.enableGroupEdit = undefined;\n /** For customising the context menu. */\n this.getContextMenuItems = undefined;\n /** For customising the main 'column header' menu. */\n this.getMainMenuItems = undefined;\n /** Allows user to process popups after they are created. Applications can use this if they want to, for example, reposition the popup. */\n this.postProcessPopup = undefined;\n /** Allows you to process cells for the clipboard. Handy if for example you have `Date` objects that need to have a particular format if importing into Excel. */\n this.processCellForClipboard = undefined;\n /** Allows you to process header values for the clipboard. */\n this.processHeaderForClipboard = undefined;\n /** Allows you to process group header values for the clipboard. */\n this.processGroupHeaderForClipboard = undefined;\n /** Allows you to process cells from the clipboard. Handy if for example you have number fields, and want to block non-numbers from getting into the grid. */\n this.processCellFromClipboard = undefined;\n /** Allows you to get the data that would otherwise go to the clipboard. To be used when you want to control the 'copy to clipboard' operation yourself. */\n this.sendToClipboard = undefined;\n /** Allows complete control of the paste operation, including cancelling the operation (so nothing happens) or replacing the data with other data. */\n this.processDataFromClipboard = undefined;\n /** Grid calls this method to know if an external filter is present. */\n this.isExternalFilterPresent = undefined;\n /** Should return `true` if external filter passes, otherwise `false`. */\n this.doesExternalFilterPass = undefined;\n /** Callback to be used to customise the chart toolbar items. */\n this.getChartToolbarItems = undefined;\n /** Callback to enable displaying the chart in an alternative chart container. */\n this.createChartContainer = undefined;\n /** Allows overriding the default behaviour for when user hits navigation (arrow) key when a header is focused. Return the next Header position to navigate to or `null` to stay on current header. */\n this.navigateToNextHeader = undefined;\n /** Allows overriding the default behaviour for when user hits `Tab` key when a header is focused. Return the next Header position to navigate to or `null` to stay on current header. */\n this.tabToNextHeader = undefined;\n /** Allows overriding the default behaviour for when user hits navigation (arrow) key when a cell is focused. Return the next Cell position to navigate to or `null` to stay on current cell. */\n this.navigateToNextCell = undefined;\n /** Allows overriding the default behaviour for when user hits `Tab` key when a cell is focused. Return the next Cell position to navigate to or null to stay on current cell. */\n this.tabToNextCell = undefined;\n /** @deprecated - Set via `colDef.suppressKeyboardEvent`. If you need this to be set for every column set via the `defaultColDef.suppressKeyboardEvent` property. */\n this.suppressKeyboardEvent = undefined;\n /** @deprecated - Use `getLocaleText` instead. */\n this.localeTextFunc = undefined;\n /** A callback for localising text within the grid. */\n this.getLocaleText = undefined;\n /** Allows overriding what `document` is used. Currently used by Drag and Drop (may extend to other places in the future). Use this when you want the grid to use a different `document` than the one available on the global scope. This can happen if docking out components (something which Electron supports) */\n this.getDocument = undefined;\n /** Allows user to format the numbers in the pagination panel, i.e. 'row count' and 'page number' labels. This is for pagination panel only, to format numbers inside the grid's cells (i.e. your data), then use `valueFormatter` in the column definitions. */\n this.paginationNumberFormatter = undefined;\n /** @deprecated - Use `getGroupRowAgg` instead. */\n this.groupRowAggNodes = undefined;\n /** Callback to use when you need access to more then the current column for aggregation. */\n this.getGroupRowAgg = undefined;\n /** (Client-side Row Model only) Allows groups to be open by default. */\n this.isGroupOpenByDefault = undefined;\n /** Allows default sorting of groups. */\n this.initialGroupOrderComparator = undefined;\n /** @deprecated - Use `initialGroupOrderComparator` instead */\n this.defaultGroupOrderComparator = undefined;\n /** @deprecated - Use `processPivotResultColDef` instead */\n this.processSecondaryColDef = undefined;\n /** @deprecated - Use `processPivotResultColGroupDef` instead */\n this.processSecondaryColGroupDef = undefined;\n /** Callback to be used with pivoting, to allow changing the second column definition. */\n this.processPivotResultColDef = undefined;\n /** Callback to be used with pivoting, to allow changing the second column group definition. */\n this.processPivotResultColGroupDef = undefined;\n /** Callback to be used when working with Tree Data when `treeData = true`. */\n this.getDataPath = undefined;\n /** @deprecated - Use initialGroupOrderComparator instead */\n this.defaultGroupSortComparator = undefined;\n /** Allows setting the child count for a group row. */\n this.getChildCount = undefined;\n /** Allows providing different params for different levels of grouping. */\n this.getServerSideGroupLevelParams = undefined;\n /** @deprecated use `getServerSideGroupLevelParams` instead. */\n this.getServerSideStoreParams = undefined;\n /** Allows groups to be open by default. */\n this.isServerSideGroupOpenByDefault = undefined;\n /** Allows cancelling transactions. */\n this.isApplyServerSideTransaction = undefined;\n /** SSRM Tree Data: Allows specifying which rows are expandable. */\n this.isServerSideGroup = undefined;\n /** SSRM Tree Data: Allows specifying group keys. */\n this.getServerSideGroupKey = undefined;\n /** Return a business key for the node. If implemented, each row in the DOM will have an attribute `row-id='abc'` where `abc` is what you return as the business key.\n * This is useful for automated testing, as it provides a way for your tool to identify rows based on unique business keys. */\n this.getBusinessKeyForNode = undefined;\n /** @deprecated Use `getRowId` instead - however be aware, `getRowId()` will also set grid option `immutableData=true`\n * Allows you to set the ID for a particular row node based on the data. */\n this.getRowNodeId = undefined;\n /** Allows setting the ID for a particular row node based on the data. */\n this.getRowId = undefined;\n /** When enabled, getRowId() callback is implemented and new Row Data is set, the grid will disregard all previous rows and treat the new Row Data as new data. As a consequence, all Row State (eg selection, rendered rows) will be reset. Default: `false` */\n this.resetRowDataOnUpdate = undefined;\n /** Allows you to process rows after they are created, so you can do final adding of custom attributes etc. */\n this.processRowPostCreate = undefined;\n /** Callback to be used to determine which rows are selectable. By default rows are selectable, so return `false` to make a row un-selectable. */\n this.isRowSelectable = undefined;\n /** Callback to be used with Master Detail to determine if a row should be a master row. If `false` is returned no detail row will exist for this row. */\n this.isRowMaster = undefined;\n /** Callback to fill values instead of simply copying values or increasing number values using linear progression. */\n this.fillOperation = undefined;\n /** @deprecated Use `postSortRows` instead */\n this.postSort = undefined;\n /** Callback to perform additional sorting after the grid has sorted the rows. */\n this.postSortRows = undefined;\n /** Callback version of property `rowStyle` to set style for each row individually. Function should return an object of CSS values or undefined for no styles. */\n this.getRowStyle = undefined;\n /** Callback version of property `rowClass` to set class(es) for each row individually. Function should return either a string (class name), array of strings (array of class names) or undefined for no class. */\n this.getRowClass = undefined;\n /** Callback version of property `rowHeight` to set height for each row individually. Function should return a positive number of pixels, or return `null`/`undefined` to use the default row height. */\n this.getRowHeight = undefined;\n /** @deprecated Use `isFullWidthRow` instead. */\n this.isFullWidthCell = undefined;\n /** Tells the grid if this row should be rendered as full width. */\n this.isFullWidthRow = undefined;\n /** The tool panel was hidden or shown. Use `api.isToolPanelShowing()` to get status. */\n this.toolPanelVisibleChanged = new EventEmitter();\n /** The tool panel size has been changed. */\n this.toolPanelSizeChanged = new EventEmitter();\n /** Paste operation has started. */\n this.pasteStart = new EventEmitter();\n /** Paste operation has ended. */\n this.pasteEnd = new EventEmitter();\n /** A column, or group of columns, was hidden / shown. */\n this.columnVisible = new EventEmitter();\n /** A column, or group of columns, was pinned / unpinned. */\n this.columnPinned = new EventEmitter();\n /** A column was resized. */\n this.columnResized = new EventEmitter();\n /** A column was moved. To find out when the column move is finished you can use the `dragStopped` event below. */\n this.columnMoved = new EventEmitter();\n /** A value column was added or removed. */\n this.columnValueChanged = new EventEmitter();\n /** The pivot mode flag was changed. */\n this.columnPivotModeChanged = new EventEmitter();\n /** A pivot column was added, removed or order changed. */\n this.columnPivotChanged = new EventEmitter();\n /** A column group was opened / closed. */\n this.columnGroupOpened = new EventEmitter();\n /** User set new columns. */\n this.newColumnsLoaded = new EventEmitter();\n /** The list of grid columns changed. */\n this.gridColumnsChanged = new EventEmitter();\n /** The list of displayed columns changed. This can result from columns open / close, column move, pivot, group, etc. */\n this.displayedColumnsChanged = new EventEmitter();\n /** The list of rendered columns changed (only columns in the visible scrolled viewport are rendered by default). */\n this.virtualColumnsChanged = new EventEmitter();\n /** Shotgun - gets called when either a) new columns are set or b) `columnApi.setState()` is used, so everything has changed. */\n this.columnEverythingChanged = new EventEmitter();\n /** Only used by Angular, React and VueJS AG Grid components (not used if doing plain JavaScript).\n * If the grid receives changes due to bound properties, this event fires after the grid has finished processing the change. */\n this.componentStateChanged = new EventEmitter();\n /** Value has changed after editing (this event will not fire if editing was cancelled, eg ESC was pressed) or\n * if cell value has changed as a result of paste operation. */\n this.cellValueChanged = new EventEmitter();\n /** Value has changed after editing. Only fires when doing Read Only Edits, ie `readOnlyEdit=true`. */\n this.cellEditRequest = new EventEmitter();\n /** A cell's value within a row has changed. This event corresponds to Full Row Editing only. */\n this.rowValueChanged = new EventEmitter();\n /** Editing a cell has started. */\n this.cellEditingStarted = new EventEmitter();\n /** Editing a cell has stopped. */\n this.cellEditingStopped = new EventEmitter();\n /** Editing a row has started (when row editing is enabled). When row editing, this event will be fired once and `cellEditingStarted` will be fired for each individual cell. Only fires when doing Full Row Editing. */\n this.rowEditingStarted = new EventEmitter();\n /** Editing a row has stopped (when row editing is enabled). When row editing, this event will be fired once and `cellEditingStopped` will be fired for each individual cell. Only fires when doing Full Row Editing. */\n this.rowEditingStopped = new EventEmitter();\n /** Filter has been opened. */\n this.filterOpened = new EventEmitter();\n /** Filter has been modified and applied. */\n this.filterChanged = new EventEmitter();\n /** Filter was modified but not applied. Used when filters have 'Apply' buttons. */\n this.filterModified = new EventEmitter();\n /** A chart has been created. */\n this.chartCreated = new EventEmitter();\n /** The data range for the chart has been changed. */\n this.chartRangeSelectionChanged = new EventEmitter();\n /** Formatting changes have been made by users through the Format Panel. */\n this.chartOptionsChanged = new EventEmitter();\n /** A chart has been destroyed. */\n this.chartDestroyed = new EventEmitter();\n /** DOM event `keyDown` happened on a cell. */\n this.cellKeyDown = new EventEmitter();\n /** DOM event `keyPress` happened on a cell. */\n this.cellKeyPress = new EventEmitter();\n /** The grid has initialised and is ready for most api calls, but may not be fully rendered yet */\n this.gridReady = new EventEmitter();\n /** Fired the first time data is rendered into the grid. Use this event if you want to auto resize columns based on their contents */\n this.firstDataRendered = new EventEmitter();\n /** The size of the grid `div` has changed. In other words, the grid was resized. */\n this.gridSizeChanged = new EventEmitter();\n /** Displayed rows have changed. Triggered after sort, filter or tree expand / collapse events. */\n this.modelUpdated = new EventEmitter();\n /** A row was removed from the DOM, for any reason. Use to clean up resources (if any) used by the row. */\n this.virtualRowRemoved = new EventEmitter();\n /** Which rows are rendered in the DOM has changed. */\n this.viewportChanged = new EventEmitter();\n /** The body was scrolled horizontally or vertically. */\n this.bodyScroll = new EventEmitter();\n /** Main body of the grid has stopped scrolling, either horizontally or vertically. */\n this.bodyScrollEnd = new EventEmitter();\n /** When dragging starts. This could be any action that uses the grid's Drag and Drop service, e.g. Column Moving, Column Resizing, Range Selection, Fill Handle, etc. */\n this.dragStarted = new EventEmitter();\n /** When dragging stops. This could be any action that uses the grid's Drag and Drop service, e.g. Column Moving, Column Resizing, Range Selection, Fill Handle, etc. */\n this.dragStopped = new EventEmitter();\n /** Triggered every time the paging state changes. Some of the most common scenarios for this event to be triggered are:\n *\n * - The page size changes.\n * - The current shown page is changed.\n * - New data is loaded onto the grid. */\n this.paginationChanged = new EventEmitter();\n /** A drag has started, or dragging was already started and the mouse has re-entered the grid having previously left the grid. */\n this.rowDragEnter = new EventEmitter();\n /** The mouse has moved while dragging. */\n this.rowDragMove = new EventEmitter();\n /** The mouse has left the grid while dragging. */\n this.rowDragLeave = new EventEmitter();\n /** The drag has finished over the grid. */\n this.rowDragEnd = new EventEmitter();\n /** A row group column was added or removed. */\n this.columnRowGroupChanged = new EventEmitter();\n /** A row group was opened or closed. */\n this.rowGroupOpened = new EventEmitter();\n /** Fired when calling either of the API methods `expandAll()` or `collapseAll()`. */\n this.expandOrCollapseAll = new EventEmitter();\n /** The client has set new pinned row data into the grid. */\n this.pinnedRowDataChanged = new EventEmitter();\n /** @deprecated No longer fired, use onRowDataUpdated instead */\n this.rowDataChanged = new EventEmitter();\n /** The client has updated data for the grid by either a) setting new Row Data or b) Applying a Row Transaction. */\n this.rowDataUpdated = new EventEmitter();\n /** Async transactions have been applied. Contains a list of all transaction results. */\n this.asyncTransactionsFlushed = new EventEmitter();\n /** Cell is clicked. */\n this.cellClicked = new EventEmitter();\n /** Cell is double clicked. */\n this.cellDoubleClicked = new EventEmitter();\n /** Cell is focused. */\n this.cellFocused = new EventEmitter();\n /** Mouse entered cell. */\n this.cellMouseOver = new EventEmitter();\n /** Mouse left cell. */\n this.cellMouseOut = new EventEmitter();\n /** Mouse down on cell. */\n this.cellMouseDown = new EventEmitter();\n /** Row is clicked. */\n this.rowClicked = new EventEmitter();\n /** Row is double clicked. */\n this.rowDoubleClicked = new EventEmitter();\n /** Row is selected or deselected. The event contains the node in question, so call the node's `isSelected()` method to see if it was just selected or deselected. */\n this.rowSelected = new EventEmitter();\n /** Row selection is changed. Use the grid API `getSelectedNodes()` or `getSelectedRows()` to get the new list of selected nodes / row data. */\n this.selectionChanged = new EventEmitter();\n /** Cell is right clicked. */\n this.cellContextMenu = new EventEmitter();\n /** A change to range selection has occurred. */\n this.rangeSelectionChanged = new EventEmitter();\n /** Sort has changed. The grid also listens for this and updates the model. */\n this.sortChanged = new EventEmitter();\n this.columnRowGroupChangeRequest = new EventEmitter();\n this.columnPivotChangeRequest = new EventEmitter();\n this.columnValueChangeRequest = new EventEmitter();\n this.columnAggFuncChangeRequest = new EventEmitter();\n this._nativeElement = elementDef.nativeElement;\n }\n ngAfterViewInit() {\n this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef);\n this.frameworkComponentWrapper.setComponentFactoryResolver(this.componentFactoryResolver);\n this.angularFrameworkOverrides.setEmitterUsedCallback(this.isEmitterUsed.bind(this));\n this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true);\n this.gridParams = {\n globalEventListener: this.globalEventListener.bind(this),\n frameworkOverrides: this.angularFrameworkOverrides,\n providedBeanInstances: {\n frameworkComponentWrapper: this.frameworkComponentWrapper\n },\n modules: (this.modules || [])\n };\n if (this.columns && this.columns.length > 0) {\n this.gridOptions.columnDefs = this.columns\n .map((column) => {\n return column.toColDef();\n });\n }\n new Grid(this._nativeElement, this.gridOptions, this.gridParams);\n if (this.gridOptions.api) {\n this.api = this.gridOptions.api;\n }\n if (this.gridOptions.columnApi) {\n this.columnApi = this.gridOptions.columnApi;\n }\n this._initialised = true;\n // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit\n // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit\n // the actual containing component's ngAfterViewInit will fire just after agGridAngular's\n this._fullyReady.resolveNow(null, resolve => resolve);\n }\n ngOnChanges(changes) {\n if (this._initialised) {\n ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi);\n }\n }\n ngOnDestroy() {\n if (this._initialised) {\n // need to do this before the destroy, so we know not to emit any events\n // while tearing down the grid.\n this._destroyed = true;\n if (this.api) {\n this.api.destroy();\n }\n }\n }\n // we'll emit the emit if a user is listening for a given event either on the component via normal angular binding\n // or via gridOptions\n isEmitterUsed(eventType) {\n const emitter = this[eventType];\n const hasEmitter = !!emitter && emitter.observers && emitter.observers.length > 0;\n // gridReady => onGridReady\n const asEventName = `on${eventType.charAt(0).toUpperCase()}${eventType.substring(1)}`;\n const hasGridOptionListener = !!this.gridOptions && !!this.gridOptions[asEventName];\n return hasEmitter || hasGridOptionListener;\n }\n globalEventListener(eventType, event) {\n // if we are tearing down, don't emit angular events, as this causes\n // problems with the angular router\n if (this._destroyed) {\n return;\n }\n // generically look up the eventType\n const emitter = this[eventType];\n if (emitter && this.isEmitterUsed(eventType)) {\n if (eventType === 'gridReady') {\n // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the\n // gridReady event\n this._fullyReady.then((result => {\n emitter.emit(event);\n }));\n }\n else {\n emitter.emit(event);\n }\n }\n }\n}\nAgGridAngular.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridAngular, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: AngularFrameworkOverrides }, { token: AngularFrameworkComponentWrapper }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });\nAgGridAngular.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.16\", type: AgGridAngular, selector: \"ag-grid-angular\", inputs: { gridOptions: \"gridOptions\", modules: \"modules\", statusBar: \"statusBar\", sideBar: \"sideBar\", suppressContextMenu: \"suppressContextMenu\", preventDefaultOnContextMenu: \"preventDefaultOnContextMenu\", allowContextMenuWithControlKey: \"allowContextMenuWithControlKey\", suppressMenuHide: \"suppressMenuHide\", enableBrowserTooltips: \"enableBrowserTooltips\", tooltipShowDelay: \"tooltipShowDelay\", tooltipHideDelay: \"tooltipHideDelay\", tooltipMouseTrack: \"tooltipMouseTrack\", popupParent: \"popupParent\", copyHeadersToClipboard: \"copyHeadersToClipboard\", copyGroupHeadersToClipboard: \"copyGroupHeadersToClipboard\", clipboardDelimiter: \"clipboardDelimiter\", suppressCopyRowsToClipboard: \"suppressCopyRowsToClipboard\", suppressCopySingleCellRanges: \"suppressCopySingleCellRanges\", suppressLastEmptyLineOnPaste: \"suppressLastEmptyLineOnPaste\", suppressClipboardPaste: \"suppressClipboardPaste\", suppressClipboardApi: \"suppressClipboardApi\", columnDefs: \"columnDefs\", defaultColDef: \"defaultColDef\", defaultColGroupDef: \"defaultColGroupDef\", columnTypes: \"columnTypes\", maintainColumnOrder: \"maintainColumnOrder\", suppressFieldDotNotation: \"suppressFieldDotNotation\", deltaColumnMode: \"deltaColumnMode\", applyColumnDefOrder: \"applyColumnDefOrder\", immutableColumns: \"immutableColumns\", suppressSetColumnStateEvents: \"suppressSetColumnStateEvents\", suppressColumnStateEvents: \"suppressColumnStateEvents\", colWidth: \"colWidth\", minColWidth: \"minColWidth\", maxColWidth: \"maxColWidth\", headerHeight: \"headerHeight\", groupHeaderHeight: \"groupHeaderHeight\", floatingFiltersHeight: \"floatingFiltersHeight\", pivotHeaderHeight: \"pivotHeaderHeight\", pivotGroupHeaderHeight: \"pivotGroupHeaderHeight\", allowDragFromColumnsToolPanel: \"allowDragFromColumnsToolPanel\", suppressMovableColumns: \"suppressMovableColumns\", suppressColumnMoveAnimation: \"suppressColumnMoveAnimation\", suppressDragLeaveHidesColumns: \"suppressDragLeaveHidesColumns\", suppressRowGroupHidesColumns: \"suppressRowGroupHidesColumns\", colResizeDefault: \"colResizeDefault\", suppressAutoSize: \"suppressAutoSize\", autoSizePadding: \"autoSizePadding\", skipHeaderOnAutoSize: \"skipHeaderOnAutoSize\", components: \"components\", frameworkComponents: \"frameworkComponents\", editType: \"editType\", singleClickEdit: \"singleClickEdit\", suppressClickEdit: \"suppressClickEdit\", readOnlyEdit: \"readOnlyEdit\", stopEditingWhenCellsLoseFocus: \"stopEditingWhenCellsLoseFocus\", enterMovesDown: \"enterMovesDown\", enterMovesDownAfterEdit: \"enterMovesDownAfterEdit\", enableCellEditingOnBackspace: \"enableCellEditingOnBackspace\", undoRedoCellEditing: \"undoRedoCellEditing\", undoRedoCellEditingLimit: \"undoRedoCellEditingLimit\", stopEditingWhenGridLosesFocus: \"stopEditingWhenGridLosesFocus\", defaultCsvExportParams: \"defaultCsvExportParams\", suppressCsvExport: \"suppressCsvExport\", defaultExcelExportParams: \"defaultExcelExportParams\", suppressExcelExport: \"suppressExcelExport\", excelStyles: \"excelStyles\", defaultExportParams: \"defaultExportParams\", quickFilterText: \"quickFilterText\", cacheQuickFilter: \"cacheQuickFilter\", excludeChildrenWhenTreeDataFiltering: \"excludeChildrenWhenTreeDataFiltering\", enableCharts: \"enableCharts\", chartThemes: \"chartThemes\", customChartThemes: \"customChartThemes\", chartThemeOverrides: \"chartThemeOverrides\", enableChartToolPanelsButton: \"enableChartToolPanelsButton\", chartToolPanelsDef: \"chartToolPanelsDef\", loadingCellRenderer: \"loadingCellRenderer\", loadingCellRendererFramework: \"loadingCellRendererFramework\", loadingCellRendererParams: \"loadingCellRendererParams\", loadingCellRendererSelector: \"loadingCellRendererSelector\", localeText: \"localeText\", masterDetail: \"masterDetail\", keepDetailRows: \"keepDetailRows\", keepDetailRowsCount: \"keepDetailRowsCount\", detailCellRenderer: \"detailCellRenderer\", detailCellRendererFramework: \"detailCellRendererFramework\", detailCellRendererParams: \"detailCellRendererParams\", detailRowHeight: \"detailRowHeight\", detailRowAutoHeight: \"detailRowAutoHeight\", context: \"context\", alignedGrids: \"alignedGrids\", tabIndex: \"tabIndex\", rowBuffer: \"rowBuffer\", valueCache: \"valueCache\", valueCacheNeverExpires: \"valueCacheNeverExpires\", enableCellExpressions: \"enableCellExpressions\", suppressParentsInRowNodes: \"suppressParentsInRowNodes\", suppressTouch: \"suppressTouch\", suppressFocusAfterRefresh: \"suppressFocusAfterRefresh\", suppressAsyncEvents: \"suppressAsyncEvents\", suppressBrowserResizeObserver: \"suppressBrowserResizeObserver\", suppressPropertyNamesCheck: \"suppressPropertyNamesCheck\", suppressChangeDetection: \"suppressChangeDetection\", debug: \"debug\", overlayLoadingTemplate: \"overlayLoadingTemplate\", loadingOverlayComponent: \"loadingOverlayComponent\", loadingOverlayComponentFramework: \"loadingOverlayComponentFramework\", loadingOverlayComponentParams: \"loadingOverlayComponentParams\", suppressLoadingOverlay: \"suppressLoadingOverlay\", overlayNoRowsTemplate: \"overlayNoRowsTemplate\", noRowsOverlayComponent: \"noRowsOverlayComponent\", noRowsOverlayComponentFramework: \"noRowsOverlayComponentFramework\", noRowsOverlayComponentParams: \"noRowsOverlayComponentParams\", suppressNoRowsOverlay: \"suppressNoRowsOverlay\", pagination: \"pagination\", paginationPageSize: \"paginationPageSize\", paginationAutoPageSize: \"paginationAutoPageSize\", paginateChildRows: \"paginateChildRows\", suppressPaginationPanel: \"suppressPaginationPanel\", pivotMode: \"pivotMode\", pivotPanelShow: \"pivotPanelShow\", pivotColumnGroupTotals: \"pivotColumnGroupTotals\", pivotRowTotals: \"pivotRowTotals\", pivotSuppressAutoColumn: \"pivotSuppressAutoColumn\", suppressExpandablePivotGroups: \"suppressExpandablePivotGroups\", functionsReadOnly: \"functionsReadOnly\", aggFuncs: \"aggFuncs\", suppressAggFuncInHeader: \"suppressAggFuncInHeader\", suppressAggAtRootLevel: \"suppressAggAtRootLevel\", aggregateOnlyChangedColumns: \"aggregateOnlyChangedColumns\", suppressAggFilteredOnly: \"suppressAggFilteredOnly\", removePivotHeaderRowWhenSingleValueColumn: \"removePivotHeaderRowWhenSingleValueColumn\", animateRows: \"animateRows\", enableCellChangeFlash: \"enableCellChangeFlash\", cellFlashDelay: \"cellFlashDelay\", cellFadeDelay: \"cellFadeDelay\", allowShowChangeAfterFilter: \"allowShowChangeAfterFilter\", domLayout: \"domLayout\", ensureDomOrder: \"ensureDomOrder\", enableRtl: \"enableRtl\", suppressColumnVirtualisation: \"suppressColumnVirtualisation\", suppressMaxRenderedRowRestriction: \"suppressMaxRenderedRowRestriction\", suppressRowVirtualisation: \"suppressRowVirtualisation\", rowDragManaged: \"rowDragManaged\", suppressRowDrag: \"suppressRowDrag\", suppressMoveWhenRowDragging: \"suppressMoveWhenRowDragging\", rowDragEntireRow: \"rowDragEntireRow\", rowDragMultiRow: \"rowDragMultiRow\", rowDragText: \"rowDragText\", fullWidthCellRenderer: \"fullWidthCellRenderer\", fullWidthCellRendererFramework: \"fullWidthCellRendererFramework\", fullWidthCellRendererParams: \"fullWidthCellRendererParams\", embedFullWidthRows: \"embedFullWidthRows\", deprecatedEmbedFullWidthRows: \"deprecatedEmbedFullWidthRows\", groupDisplayType: \"groupDisplayType\", groupDefaultExpanded: \"groupDefaultExpanded\", autoGroupColumnDef: \"autoGroupColumnDef\", groupMaintainOrder: \"groupMaintainOrder\", groupSelectsChildren: \"groupSelectsChildren\", groupAggFiltering: \"groupAggFiltering\", groupIncludeFooter: \"groupIncludeFooter\", groupIncludeTotalFooter: \"groupIncludeTotalFooter\", groupSuppressBlankHeader: \"groupSuppressBlankHeader\", groupSelectsFiltered: \"groupSelectsFiltered\", showOpenedGroup: \"showOpenedGroup\", groupRemoveSingleChildren: \"groupRemoveSingleChildren\", groupRemoveLowestSingleChildren: \"groupRemoveLowestSingleChildren\", groupHideOpenParents: \"groupHideOpenParents\", rowGroupPanelShow: \"rowGroupPanelShow\", groupRowRenderer: \"groupRowRenderer\", groupRowRendererFramework: \"groupRowRendererFramework\", groupRowRendererParams: \"groupRowRendererParams\", suppressMakeColumnVisibleAfterUnGroup: \"suppressMakeColumnVisibleAfterUnGroup\", treeData: \"treeData\", rowGroupPanelSuppressSort: \"rowGroupPanelSuppressSort\", groupRowsSticky: \"groupRowsSticky\", groupRowInnerRenderer: \"groupRowInnerRenderer\", groupRowInnerRendererFramework: \"groupRowInnerRendererFramework\", groupMultiAutoColumn: \"groupMultiAutoColumn\", groupUseEntireRow: \"groupUseEntireRow\", groupSuppressAutoColumn: \"groupSuppressAutoColumn\", rememberGroupStateWhenNewData: \"rememberGroupStateWhenNewData\", pinnedTopRowData: \"pinnedTopRowData\", pinnedBottomRowData: \"pinnedBottomRowData\", rowModelType: \"rowModelType\", rowData: \"rowData\", immutableData: \"immutableData\", asyncTransactionWaitMillis: \"asyncTransactionWaitMillis\", suppressModelUpdateAfterUpdateTransaction: \"suppressModelUpdateAfterUpdateTransaction\", deltaRowDataMode: \"deltaRowDataMode\", batchUpdateWaitMillis: \"batchUpdateWaitMillis\", datasource: \"datasource\", cacheOverflowSize: \"cacheOverflowSize\", infiniteInitialRowCount: \"infiniteInitialRowCount\", serverSideInitialRowCount: \"serverSideInitialRowCount\", serverSideStoreType: \"serverSideStoreType\", serverSideInfiniteScroll: \"serverSideInfiniteScroll\", cacheBlockSize: \"cacheBlockSize\", maxBlocksInCache: \"maxBlocksInCache\", maxConcurrentDatasourceRequests: \"maxConcurrentDatasourceRequests\", blockLoadDebounceMillis: \"blockLoadDebounceMillis\", purgeClosedRowNodes: \"purgeClosedRowNodes\", serverSideDatasource: \"serverSideDatasource\", serverSideSortAllLevels: \"serverSideSortAllLevels\", serverSideFilterAllLevels: \"serverSideFilterAllLevels\", serverSideSortOnServer: \"serverSideSortOnServer\", serverSideFilterOnServer: \"serverSideFilterOnServer\", serverSideSortingAlwaysResets: \"serverSideSortingAlwaysResets\", serverSideFilteringAlwaysResets: \"serverSideFilteringAlwaysResets\", suppressEnterpriseResetOnNewColumns: \"suppressEnterpriseResetOnNewColumns\", viewportDatasource: \"viewportDatasource\", viewportRowModelPageSize: \"viewportRowModelPageSize\", viewportRowModelBufferSize: \"viewportRowModelBufferSize\", alwaysShowHorizontalScroll: \"alwaysShowHorizontalScroll\", alwaysShowVerticalScroll: \"alwaysShowVerticalScroll\", debounceVerticalScrollbar: \"debounceVerticalScrollbar\", suppressHorizontalScroll: \"suppressHorizontalScroll\", suppressScrollOnNewData: \"suppressScrollOnNewData\", suppressScrollWhenPopupsAreOpen: \"suppressScrollWhenPopupsAreOpen\", suppressAnimationFrame: \"suppressAnimationFrame\", suppressMiddleClickScrolls: \"suppressMiddleClickScrolls\", suppressPreventDefaultOnMouseWheel: \"suppressPreventDefaultOnMouseWheel\", scrollbarWidth: \"scrollbarWidth\", rowSelection: \"rowSelection\", rowMultiSelectWithClick: \"rowMultiSelectWithClick\", suppressRowDeselection: \"suppressRowDeselection\", suppressRowClickSelection: \"suppressRowClickSelection\", suppressCellSelection: \"suppressCellSelection\", suppressCellFocus: \"suppressCellFocus\", suppressMultiRangeSelection: \"suppressMultiRangeSelection\", enableCellTextSelection: \"enableCellTextSelection\", enableRangeSelection: \"enableRangeSelection\", enableRangeHandle: \"enableRangeHandle\", enableFillHandle: \"enableFillHandle\", fillHandleDirection: \"fillHandleDirection\", suppressClearOnFillReduction: \"suppressClearOnFillReduction\", sortingOrder: \"sortingOrder\", accentedSort: \"accentedSort\", unSortIcon: \"unSortIcon\", suppressMultiSort: \"suppressMultiSort\", alwaysMultiSort: \"alwaysMultiSort\", multiSortKey: \"multiSortKey\", suppressMaintainUnsortedOrder: \"suppressMaintainUnsortedOrder\", icons: \"icons\", rowHeight: \"rowHeight\", rowStyle: \"rowStyle\", rowClass: \"rowClass\", rowClassRules: \"rowClassRules\", suppressRowHoverHighlight: \"suppressRowHoverHighlight\", suppressRowTransform: \"suppressRowTransform\", columnHoverHighlight: \"columnHoverHighlight\", deltaSort: \"deltaSort\", treeDataDisplayType: \"treeDataDisplayType\", angularCompileRows: \"angularCompileRows\", angularCompileFilters: \"angularCompileFilters\", functionsPassive: \"functionsPassive\", enableGroupEdit: \"enableGroupEdit\", getContextMenuItems: \"getContextMenuItems\", getMainMenuItems: \"getMainMenuItems\", postProcessPopup: \"postProcessPopup\", processCellForClipboard: \"processCellForClipboard\", processHeaderForClipboard: \"processHeaderForClipboard\", processGroupHeaderForClipboard: \"processGroupHeaderForClipboard\", processCellFromClipboard: \"processCellFromClipboard\", sendToClipboard: \"sendToClipboard\", processDataFromClipboard: \"processDataFromClipboard\", isExternalFilterPresent: \"isExternalFilterPresent\", doesExternalFilterPass: \"doesExternalFilterPass\", getChartToolbarItems: \"getChartToolbarItems\", createChartContainer: \"createChartContainer\", navigateToNextHeader: \"navigateToNextHeader\", tabToNextHeader: \"tabToNextHeader\", navigateToNextCell: \"navigateToNextCell\", tabToNextCell: \"tabToNextCell\", suppressKeyboardEvent: \"suppressKeyboardEvent\", localeTextFunc: \"localeTextFunc\", getLocaleText: \"getLocaleText\", getDocument: \"getDocument\", paginationNumberFormatter: \"paginationNumberFormatter\", groupRowAggNodes: \"groupRowAggNodes\", getGroupRowAgg: \"getGroupRowAgg\", isGroupOpenByDefault: \"isGroupOpenByDefault\", initialGroupOrderComparator: \"initialGroupOrderComparator\", defaultGroupOrderComparator: \"defaultGroupOrderComparator\", processSecondaryColDef: \"processSecondaryColDef\", processSecondaryColGroupDef: \"processSecondaryColGroupDef\", processPivotResultColDef: \"processPivotResultColDef\", processPivotResultColGroupDef: \"processPivotResultColGroupDef\", getDataPath: \"getDataPath\", defaultGroupSortComparator: \"defaultGroupSortComparator\", getChildCount: \"getChildCount\", getServerSideGroupLevelParams: \"getServerSideGroupLevelParams\", getServerSideStoreParams: \"getServerSideStoreParams\", isServerSideGroupOpenByDefault: \"isServerSideGroupOpenByDefault\", isApplyServerSideTransaction: \"isApplyServerSideTransaction\", isServerSideGroup: \"isServerSideGroup\", getServerSideGroupKey: \"getServerSideGroupKey\", getBusinessKeyForNode: \"getBusinessKeyForNode\", getRowNodeId: \"getRowNodeId\", getRowId: \"getRowId\", resetRowDataOnUpdate: \"resetRowDataOnUpdate\", processRowPostCreate: \"processRowPostCreate\", isRowSelectable: \"isRowSelectable\", isRowMaster: \"isRowMaster\", fillOperation: \"fillOperation\", postSort: \"postSort\", postSortRows: \"postSortRows\", getRowStyle: \"getRowStyle\", getRowClass: \"getRowClass\", getRowHeight: \"getRowHeight\", isFullWidthCell: \"isFullWidthCell\", isFullWidthRow: \"isFullWidthRow\" }, outputs: { toolPanelVisibleChanged: \"toolPanelVisibleChanged\", toolPanelSizeChanged: \"toolPanelSizeChanged\", pasteStart: \"pasteStart\", pasteEnd: \"pasteEnd\", columnVisible: \"columnVisible\", columnPinned: \"columnPinned\", columnResized: \"columnResized\", columnMoved: \"columnMoved\", columnValueChanged: \"columnValueChanged\", columnPivotModeChanged: \"columnPivotModeChanged\", columnPivotChanged: \"columnPivotChanged\", columnGroupOpened: \"columnGroupOpened\", newColumnsLoaded: \"newColumnsLoaded\", gridColumnsChanged: \"gridColumnsChanged\", displayedColumnsChanged: \"displayedColumnsChanged\", virtualColumnsChanged: \"virtualColumnsChanged\", columnEverythingChanged: \"columnEverythingChanged\", componentStateChanged: \"componentStateChanged\", cellValueChanged: \"cellValueChanged\", cellEditRequest: \"cellEditRequest\", rowValueChanged: \"rowValueChanged\", cellEditingStarted: \"cellEditingStarted\", cellEditingStopped: \"cellEditingStopped\", rowEditingStarted: \"rowEditingStarted\", rowEditingStopped: \"rowEditingStopped\", filterOpened: \"filterOpened\", filterChanged: \"filterChanged\", filterModified: \"filterModified\", chartCreated: \"chartCreated\", chartRangeSelectionChanged: \"chartRangeSelectionChanged\", chartOptionsChanged: \"chartOptionsChanged\", chartDestroyed: \"chartDestroyed\", cellKeyDown: \"cellKeyDown\", cellKeyPress: \"cellKeyPress\", gridReady: \"gridReady\", firstDataRendered: \"firstDataRendered\", gridSizeChanged: \"gridSizeChanged\", modelUpdated: \"modelUpdated\", virtualRowRemoved: \"virtualRowRemoved\", viewportChanged: \"viewportChanged\", bodyScroll: \"bodyScroll\", bodyScrollEnd: \"bodyScrollEnd\", dragStarted: \"dragStarted\", dragStopped: \"dragStopped\", paginationChanged: \"paginationChanged\", rowDragEnter: \"rowDragEnter\", rowDragMove: \"rowDragMove\", rowDragLeave: \"rowDragLeave\", rowDragEnd: \"rowDragEnd\", columnRowGroupChanged: \"columnRowGroupChanged\", rowGroupOpened: \"rowGroupOpened\", expandOrCollapseAll: \"expandOrCollapseAll\", pinnedRowDataChanged: \"pinnedRowDataChanged\", rowDataChanged: \"rowDataChanged\", rowDataUpdated: \"rowDataUpdated\", asyncTransactionsFlushed: \"asyncTransactionsFlushed\", cellClicked: \"cellClicked\", cellDoubleClicked: \"cellDoubleClicked\", cellFocused: \"cellFocused\", cellMouseOver: \"cellMouseOver\", cellMouseOut: \"cellMouseOut\", cellMouseDown: \"cellMouseDown\", rowClicked: \"rowClicked\", rowDoubleClicked: \"rowDoubleClicked\", rowSelected: \"rowSelected\", selectionChanged: \"selectionChanged\", cellContextMenu: \"cellContextMenu\", rangeSelectionChanged: \"rangeSelectionChanged\", sortChanged: \"sortChanged\", columnRowGroupChangeRequest: \"columnRowGroupChangeRequest\", columnPivotChangeRequest: \"columnPivotChangeRequest\", columnValueChangeRequest: \"columnValueChangeRequest\", columnAggFuncChangeRequest: \"columnAggFuncChangeRequest\" }, providers: [\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ], queries: [{ propertyName: \"columns\", predicate: AgGridColumn }], usesOnChanges: true, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridAngular, decorators: [{\n type: Component,\n args: [{\n selector: 'ag-grid-angular',\n template: '',\n providers: [\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ],\n // tell angular we don't want view encapsulation, we don't want a shadow root\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: AngularFrameworkOverrides }, { type: AngularFrameworkComponentWrapper }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { columns: [{\n type: ContentChildren,\n args: [AgGridColumn]\n }], gridOptions: [{\n type: Input\n }], modules: [{\n type: Input\n }], statusBar: [{\n type: Input\n }], sideBar: [{\n type: Input\n }], suppressContextMenu: [{\n type: Input\n }], preventDefaultOnContextMenu: [{\n type: Input\n }], allowContextMenuWithControlKey: [{\n type: Input\n }], suppressMenuHide: [{\n type: Input\n }], enableBrowserTooltips: [{\n type: Input\n }], tooltipShowDelay: [{\n type: Input\n }], tooltipHideDelay: [{\n type: Input\n }], tooltipMouseTrack: [{\n type: Input\n }], popupParent: [{\n type: Input\n }], copyHeadersToClipboard: [{\n type: Input\n }], copyGroupHeadersToClipboard: [{\n type: Input\n }], clipboardDelimiter: [{\n type: Input\n }], suppressCopyRowsToClipboard: [{\n type: Input\n }], suppressCopySingleCellRanges: [{\n type: Input\n }], suppressLastEmptyLineOnPaste: [{\n type: Input\n }], suppressClipboardPaste: [{\n type: Input\n }], suppressClipboardApi: [{\n type: Input\n }], columnDefs: [{\n type: Input\n }], defaultColDef: [{\n type: Input\n }], defaultColGroupDef: [{\n type: Input\n }], columnTypes: [{\n type: Input\n }], maintainColumnOrder: [{\n type: Input\n }], suppressFieldDotNotation: [{\n type: Input\n }], deltaColumnMode: [{\n type: Input\n }], applyColumnDefOrder: [{\n type: Input\n }], immutableColumns: [{\n type: Input\n }], suppressSetColumnStateEvents: [{\n type: Input\n }], suppressColumnStateEvents: [{\n type: Input\n }], colWidth: [{\n type: Input\n }], minColWidth: [{\n type: Input\n }], maxColWidth: [{\n type: Input\n }], headerHeight: [{\n type: Input\n }], groupHeaderHeight: [{\n type: Input\n }], floatingFiltersHeight: [{\n type: Input\n }], pivotHeaderHeight: [{\n type: Input\n }], pivotGroupHeaderHeight: [{\n type: Input\n }], allowDragFromColumnsToolPanel: [{\n type: Input\n }], suppressMovableColumns: [{\n type: Input\n }], suppressColumnMoveAnimation: [{\n type: Input\n }], suppressDragLeaveHidesColumns: [{\n type: Input\n }], suppressRowGroupHidesColumns: [{\n type: Input\n }], colResizeDefault: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }], autoSizePadding: [{\n type: Input\n }], skipHeaderOnAutoSize: [{\n type: Input\n }], components: [{\n type: Input\n }], frameworkComponents: [{\n type: Input\n }], editType: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], suppressClickEdit: [{\n type: Input\n }], readOnlyEdit: [{\n type: Input\n }], stopEditingWhenCellsLoseFocus: [{\n type: Input\n }], enterMovesDown: [{\n type: Input\n }], enterMovesDownAfterEdit: [{\n type: Input\n }], enableCellEditingOnBackspace: [{\n type: Input\n }], undoRedoCellEditing: [{\n type: Input\n }], undoRedoCellEditingLimit: [{\n type: Input\n }], stopEditingWhenGridLosesFocus: [{\n type: Input\n }], defaultCsvExportParams: [{\n type: Input\n }], suppressCsvExport: [{\n type: Input\n }], defaultExcelExportParams: [{\n type: Input\n }], suppressExcelExport: [{\n type: Input\n }], excelStyles: [{\n type: Input\n }], defaultExportParams: [{\n type: Input\n }], quickFilterText: [{\n type: Input\n }], cacheQuickFilter: [{\n type: Input\n }], excludeChildrenWhenTreeDataFiltering: [{\n type: Input\n }], enableCharts: [{\n type: Input\n }], chartThemes: [{\n type: Input\n }], customChartThemes: [{\n type: Input\n }], chartThemeOverrides: [{\n type: Input\n }], enableChartToolPanelsButton: [{\n type: Input\n }], chartToolPanelsDef: [{\n type: Input\n }], loadingCellRenderer: [{\n type: Input\n }], loadingCellRendererFramework: [{\n type: Input\n }], loadingCellRendererParams: [{\n type: Input\n }], loadingCellRendererSelector: [{\n type: Input\n }], localeText: [{\n type: Input\n }], masterDetail: [{\n type: Input\n }], keepDetailRows: [{\n type: Input\n }], keepDetailRowsCount: [{\n type: Input\n }], detailCellRenderer: [{\n type: Input\n }], detailCellRendererFramework: [{\n type: Input\n }], detailCellRendererParams: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], detailRowAutoHeight: [{\n type: Input\n }], context: [{\n type: Input\n }], alignedGrids: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], rowBuffer: [{\n type: Input\n }], valueCache: [{\n type: Input\n }], valueCacheNeverExpires: [{\n type: Input\n }], enableCellExpressions: [{\n type: Input\n }], suppressParentsInRowNodes: [{\n type: Input\n }], suppressTouch: [{\n type: Input\n }], suppressFocusAfterRefresh: [{\n type: Input\n }], suppressAsyncEvents: [{\n type: Input\n }], suppressBrowserResizeObserver: [{\n type: Input\n }], suppressPropertyNamesCheck: [{\n type: Input\n }], suppressChangeDetection: [{\n type: Input\n }], debug: [{\n type: Input\n }], overlayLoadingTemplate: [{\n type: Input\n }], loadingOverlayComponent: [{\n type: Input\n }], loadingOverlayComponentFramework: [{\n type: Input\n }], loadingOverlayComponentParams: [{\n type: Input\n }], suppressLoadingOverlay: [{\n type: Input\n }], overlayNoRowsTemplate: [{\n type: Input\n }], noRowsOverlayComponent: [{\n type: Input\n }], noRowsOverlayComponentFramework: [{\n type: Input\n }], noRowsOverlayComponentParams: [{\n type: Input\n }], suppressNoRowsOverlay: [{\n type: Input\n }], pagination: [{\n type: Input\n }], paginationPageSize: [{\n type: Input\n }], paginationAutoPageSize: [{\n type: Input\n }], paginateChildRows: [{\n type: Input\n }], suppressPaginationPanel: [{\n type: Input\n }], pivotMode: [{\n type: Input\n }], pivotPanelShow: [{\n type: Input\n }], pivotColumnGroupTotals: [{\n type: Input\n }], pivotRowTotals: [{\n type: Input\n }], pivotSuppressAutoColumn: [{\n type: Input\n }], suppressExpandablePivotGroups: [{\n type: Input\n }], functionsReadOnly: [{\n type: Input\n }], aggFuncs: [{\n type: Input\n }], suppressAggFuncInHeader: [{\n type: Input\n }], suppressAggAtRootLevel: [{\n type: Input\n }], aggregateOnlyChangedColumns: [{\n type: Input\n }], suppressAggFilteredOnly: [{\n type: Input\n }], removePivotHeaderRowWhenSingleValueColumn: [{\n type: Input\n }], animateRows: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], cellFlashDelay: [{\n type: Input\n }], cellFadeDelay: [{\n type: Input\n }], allowShowChangeAfterFilter: [{\n type: Input\n }], domLayout: [{\n type: Input\n }], ensureDomOrder: [{\n type: Input\n }], enableRtl: [{\n type: Input\n }], suppressColumnVirtualisation: [{\n type: Input\n }], suppressMaxRenderedRowRestriction: [{\n type: Input\n }], suppressRowVirtualisation: [{\n type: Input\n }], rowDragManaged: [{\n type: Input\n }], suppressRowDrag: [{\n type: Input\n }], suppressMoveWhenRowDragging: [{\n type: Input\n }], rowDragEntireRow: [{\n type: Input\n }], rowDragMultiRow: [{\n type: Input\n }], rowDragText: [{\n type: Input\n }], fullWidthCellRenderer: [{\n type: Input\n }], fullWidthCellRendererFramework: [{\n type: Input\n }], fullWidthCellRendererParams: [{\n type: Input\n }], embedFullWidthRows: [{\n type: Input\n }], deprecatedEmbedFullWidthRows: [{\n type: Input\n }], groupDisplayType: [{\n type: Input\n }], groupDefaultExpanded: [{\n type: Input\n }], autoGroupColumnDef: [{\n type: Input\n }], groupMaintainOrder: [{\n type: Input\n }], groupSelectsChildren: [{\n type: Input\n }], groupAggFiltering: [{\n type: Input\n }], groupIncludeFooter: [{\n type: Input\n }], groupIncludeTotalFooter: [{\n type: Input\n }], groupSuppressBlankHeader: [{\n type: Input\n }], groupSelectsFiltered: [{\n type: Input\n }], showOpenedGroup: [{\n type: Input\n }], groupRemoveSingleChildren: [{\n type: Input\n }], groupRemoveLowestSingleChildren: [{\n type: Input\n }], groupHideOpenParents: [{\n type: Input\n }], rowGroupPanelShow: [{\n type: Input\n }], groupRowRenderer: [{\n type: Input\n }], groupRowRendererFramework: [{\n type: Input\n }], groupRowRendererParams: [{\n type: Input\n }], suppressMakeColumnVisibleAfterUnGroup: [{\n type: Input\n }], treeData: [{\n type: Input\n }], rowGroupPanelSuppressSort: [{\n type: Input\n }], groupRowsSticky: [{\n type: Input\n }], groupRowInnerRenderer: [{\n type: Input\n }], groupRowInnerRendererFramework: [{\n type: Input\n }], groupMultiAutoColumn: [{\n type: Input\n }], groupUseEntireRow: [{\n type: Input\n }], groupSuppressAutoColumn: [{\n type: Input\n }], rememberGroupStateWhenNewData: [{\n type: Input\n }], pinnedTopRowData: [{\n type: Input\n }], pinnedBottomRowData: [{\n type: Input\n }], rowModelType: [{\n type: Input\n }], rowData: [{\n type: Input\n }], immutableData: [{\n type: Input\n }], asyncTransactionWaitMillis: [{\n type: Input\n }], suppressModelUpdateAfterUpdateTransaction: [{\n type: Input\n }], deltaRowDataMode: [{\n type: Input\n }], batchUpdateWaitMillis: [{\n type: Input\n }], datasource: [{\n type: Input\n }], cacheOverflowSize: [{\n type: Input\n }], infiniteInitialRowCount: [{\n type: Input\n }], serverSideInitialRowCount: [{\n type: Input\n }], serverSideStoreType: [{\n type: Input\n }], serverSideInfiniteScroll: [{\n type: Input\n }], cacheBlockSize: [{\n type: Input\n }], maxBlocksInCache: [{\n type: Input\n }], maxConcurrentDatasourceRequests: [{\n type: Input\n }], blockLoadDebounceMillis: [{\n type: Input\n }], purgeClosedRowNodes: [{\n type: Input\n }], serverSideDatasource: [{\n type: Input\n }], serverSideSortAllLevels: [{\n type: Input\n }], serverSideFilterAllLevels: [{\n type: Input\n }], serverSideSortOnServer: [{\n type: Input\n }], serverSideFilterOnServer: [{\n type: Input\n }], serverSideSortingAlwaysResets: [{\n type: Input\n }], serverSideFilteringAlwaysResets: [{\n type: Input\n }], suppressEnterpriseResetOnNewColumns: [{\n type: Input\n }], viewportDatasource: [{\n type: Input\n }], viewportRowModelPageSize: [{\n type: Input\n }], viewportRowModelBufferSize: [{\n type: Input\n }], alwaysShowHorizontalScroll: [{\n type: Input\n }], alwaysShowVerticalScroll: [{\n type: Input\n }], debounceVerticalScrollbar: [{\n type: Input\n }], suppressHorizontalScroll: [{\n type: Input\n }], suppressScrollOnNewData: [{\n type: Input\n }], suppressScrollWhenPopupsAreOpen: [{\n type: Input\n }], suppressAnimationFrame: [{\n type: Input\n }], suppressMiddleClickScrolls: [{\n type: Input\n }], suppressPreventDefaultOnMouseWheel: [{\n type: Input\n }], scrollbarWidth: [{\n type: Input\n }], rowSelection: [{\n type: Input\n }], rowMultiSelectWithClick: [{\n type: Input\n }], suppressRowDeselection: [{\n type: Input\n }], suppressRowClickSelection: [{\n type: Input\n }], suppressCellSelection: [{\n type: Input\n }], suppressCellFocus: [{\n type: Input\n }], suppressMultiRangeSelection: [{\n type: Input\n }], enableCellTextSelection: [{\n type: Input\n }], enableRangeSelection: [{\n type: Input\n }], enableRangeHandle: [{\n type: Input\n }], enableFillHandle: [{\n type: Input\n }], fillHandleDirection: [{\n type: Input\n }], suppressClearOnFillReduction: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], accentedSort: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], suppressMultiSort: [{\n type: Input\n }], alwaysMultiSort: [{\n type: Input\n }], multiSortKey: [{\n type: Input\n }], suppressMaintainUnsortedOrder: [{\n type: Input\n }], icons: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], rowStyle: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], rowClassRules: [{\n type: Input\n }], suppressRowHoverHighlight: [{\n type: Input\n }], suppressRowTransform: [{\n type: Input\n }], columnHoverHighlight: [{\n type: Input\n }], deltaSort: [{\n type: Input\n }], treeDataDisplayType: [{\n type: Input\n }], angularCompileRows: [{\n type: Input\n }], angularCompileFilters: [{\n type: Input\n }], functionsPassive: [{\n type: Input\n }], enableGroupEdit: [{\n type: Input\n }], getContextMenuItems: [{\n type: Input\n }], getMainMenuItems: [{\n type: Input\n }], postProcessPopup: [{\n type: Input\n }], processCellForClipboard: [{\n type: Input\n }], processHeaderForClipboard: [{\n type: Input\n }], processGroupHeaderForClipboard: [{\n type: Input\n }], processCellFromClipboard: [{\n type: Input\n }], sendToClipboard: [{\n type: Input\n }], processDataFromClipboard: [{\n type: Input\n }], isExternalFilterPresent: [{\n type: Input\n }], doesExternalFilterPass: [{\n type: Input\n }], getChartToolbarItems: [{\n type: Input\n }], createChartContainer: [{\n type: Input\n }], navigateToNextHeader: [{\n type: Input\n }], tabToNextHeader: [{\n type: Input\n }], navigateToNextCell: [{\n type: Input\n }], tabToNextCell: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], localeTextFunc: [{\n type: Input\n }], getLocaleText: [{\n type: Input\n }], getDocument: [{\n type: Input\n }], paginationNumberFormatter: [{\n type: Input\n }], groupRowAggNodes: [{\n type: Input\n }], getGroupRowAgg: [{\n type: Input\n }], isGroupOpenByDefault: [{\n type: Input\n }], initialGroupOrderComparator: [{\n type: Input\n }], defaultGroupOrderComparator: [{\n type: Input\n }], processSecondaryColDef: [{\n type: Input\n }], processSecondaryColGroupDef: [{\n type: Input\n }], processPivotResultColDef: [{\n type: Input\n }], processPivotResultColGroupDef: [{\n type: Input\n }], getDataPath: [{\n type: Input\n }], defaultGroupSortComparator: [{\n type: Input\n }], getChildCount: [{\n type: Input\n }], getServerSideGroupLevelParams: [{\n type: Input\n }], getServerSideStoreParams: [{\n type: Input\n }], isServerSideGroupOpenByDefault: [{\n type: Input\n }], isApplyServerSideTransaction: [{\n type: Input\n }], isServerSideGroup: [{\n type: Input\n }], getServerSideGroupKey: [{\n type: Input\n }], getBusinessKeyForNode: [{\n type: Input\n }], getRowNodeId: [{\n type: Input\n }], getRowId: [{\n type: Input\n }], resetRowDataOnUpdate: [{\n type: Input\n }], processRowPostCreate: [{\n type: Input\n }], isRowSelectable: [{\n type: Input\n }], isRowMaster: [{\n type: Input\n }], fillOperation: [{\n type: Input\n }], postSort: [{\n type: Input\n }], postSortRows: [{\n type: Input\n }], getRowStyle: [{\n type: Input\n }], getRowClass: [{\n type: Input\n }], getRowHeight: [{\n type: Input\n }], isFullWidthCell: [{\n type: Input\n }], isFullWidthRow: [{\n type: Input\n }], toolPanelVisibleChanged: [{\n type: Output\n }], toolPanelSizeChanged: [{\n type: Output\n }], pasteStart: [{\n type: Output\n }], pasteEnd: [{\n type: Output\n }], columnVisible: [{\n type: Output\n }], columnPinned: [{\n type: Output\n }], columnResized: [{\n type: Output\n }], columnMoved: [{\n type: Output\n }], columnValueChanged: [{\n type: Output\n }], columnPivotModeChanged: [{\n type: Output\n }], columnPivotChanged: [{\n type: Output\n }], columnGroupOpened: [{\n type: Output\n }], newColumnsLoaded: [{\n type: Output\n }], gridColumnsChanged: [{\n type: Output\n }], displayedColumnsChanged: [{\n type: Output\n }], virtualColumnsChanged: [{\n type: Output\n }], columnEverythingChanged: [{\n type: Output\n }], componentStateChanged: [{\n type: Output\n }], cellValueChanged: [{\n type: Output\n }], cellEditRequest: [{\n type: Output\n }], rowValueChanged: [{\n type: Output\n }], cellEditingStarted: [{\n type: Output\n }], cellEditingStopped: [{\n type: Output\n }], rowEditingStarted: [{\n type: Output\n }], rowEditingStopped: [{\n type: Output\n }], filterOpened: [{\n type: Output\n }], filterChanged: [{\n type: Output\n }], filterModified: [{\n type: Output\n }], chartCreated: [{\n type: Output\n }], chartRangeSelectionChanged: [{\n type: Output\n }], chartOptionsChanged: [{\n type: Output\n }], chartDestroyed: [{\n type: Output\n }], cellKeyDown: [{\n type: Output\n }], cellKeyPress: [{\n type: Output\n }], gridReady: [{\n type: Output\n }], firstDataRendered: [{\n type: Output\n }], gridSizeChanged: [{\n type: Output\n }], modelUpdated: [{\n type: Output\n }], virtualRowRemoved: [{\n type: Output\n }], viewportChanged: [{\n type: Output\n }], bodyScroll: [{\n type: Output\n }], bodyScrollEnd: [{\n type: Output\n }], dragStarted: [{\n type: Output\n }], dragStopped: [{\n type: Output\n }], paginationChanged: [{\n type: Output\n }], rowDragEnter: [{\n type: Output\n }], rowDragMove: [{\n type: Output\n }], rowDragLeave: [{\n type: Output\n }], rowDragEnd: [{\n type: Output\n }], columnRowGroupChanged: [{\n type: Output\n }], rowGroupOpened: [{\n type: Output\n }], expandOrCollapseAll: [{\n type: Output\n }], pinnedRowDataChanged: [{\n type: Output\n }], rowDataChanged: [{\n type: Output\n }], rowDataUpdated: [{\n type: Output\n }], asyncTransactionsFlushed: [{\n type: Output\n }], cellClicked: [{\n type: Output\n }], cellDoubleClicked: [{\n type: Output\n }], cellFocused: [{\n type: Output\n }], cellMouseOver: [{\n type: Output\n }], cellMouseOut: [{\n type: Output\n }], cellMouseDown: [{\n type: Output\n }], rowClicked: [{\n type: Output\n }], rowDoubleClicked: [{\n type: Output\n }], rowSelected: [{\n type: Output\n }], selectionChanged: [{\n type: Output\n }], cellContextMenu: [{\n type: Output\n }], rangeSelectionChanged: [{\n type: Output\n }], sortChanged: [{\n type: Output\n }], columnRowGroupChangeRequest: [{\n type: Output\n }], columnPivotChangeRequest: [{\n type: Output\n }], columnValueChangeRequest: [{\n type: Output\n }], columnAggFuncChangeRequest: [{\n type: Output\n }] } });\n\nclass AgGridModule {\n}\nAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridModule, declarations: [AgGridAngular, AgGridColumn], exports: [AgGridAngular, AgGridColumn] });\nAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: AgGridModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [AgGridAngular, AgGridColumn],\n imports: [],\n exports: [AgGridAngular, AgGridColumn]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AgGridAngular, AgGridColumn, AgGridModule, AngularFrameworkComponentWrapper, AngularFrameworkOverrides };\n","/**\n * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * If value is undefined, null or blank, returns null, otherwise returns the value\n * @param {T} value\n * @returns {T | null}\n */\nfunction makeNull(value) {\n if (value == null || value === '') {\n return null;\n }\n return value;\n}\nfunction exists(value, allowEmptyString) {\n if (allowEmptyString === void 0) { allowEmptyString = false; }\n return value != null && (value !== '' || allowEmptyString);\n}\nfunction missing(value) {\n return !exists(value);\n}\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nfunction toStringOrNull(value) {\n return value != null && typeof value.toString === 'function' ? value.toString() : null;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToNumber(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null or blank means clear\n return null;\n }\n if (typeof value === 'number') {\n return isNaN(value) ? undefined : value;\n }\n var valueParsed = parseInt(value, 10);\n return isNaN(valueParsed) ? undefined : valueParsed;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToBoolean(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null means clear\n return false;\n }\n if (typeof value === 'boolean') {\n // if simple boolean, return the boolean\n return value;\n }\n // if equal to the string 'true' (ignoring case) then return true\n return (/true/i).test(value);\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToString(value) {\n if (value == null || value === '') {\n return;\n }\n return value;\n}\n/** @deprecated */\nfunction referenceCompare(left, right) {\n if (left == null && right == null) {\n return true;\n }\n if (left == null && right != null) {\n return false;\n }\n if (left != null && right == null) {\n return false;\n }\n return left === right;\n}\nfunction jsonEquals(val1, val2) {\n var val1Json = val1 ? JSON.stringify(val1) : null;\n var val2Json = val2 ? JSON.stringify(val2) : null;\n return val1Json === val2Json;\n}\nfunction defaultComparator(valueA, valueB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n var valueAMissing = valueA == null;\n var valueBMissing = valueB == null;\n // this is for aggregations sum and avg, where the result can be a number that is wrapped.\n // if we didn't do this, then the toString() value would be used, which would result in\n // the strings getting used instead of the numbers.\n if (valueA && valueA.toNumber) {\n valueA = valueA.toNumber();\n }\n if (valueB && valueB.toNumber) {\n valueB = valueB.toNumber();\n }\n if (valueAMissing && valueBMissing) {\n return 0;\n }\n if (valueAMissing) {\n return -1;\n }\n if (valueBMissing) {\n return 1;\n }\n function doQuickCompare(a, b) {\n return (a > b ? 1 : (a < b ? -1 : 0));\n }\n if (typeof valueA !== 'string') {\n return doQuickCompare(valueA, valueB);\n }\n if (!accentedCompare) {\n return doQuickCompare(valueA, valueB);\n }\n try {\n // using local compare also allows chinese comparisons\n return valueA.localeCompare(valueB);\n }\n catch (e) {\n // if something wrong with localeCompare, eg not supported\n // by browser, then just continue with the quick one\n return doQuickCompare(valueA, valueB);\n }\n}\nfunction values(object) {\n if (object instanceof Set || object instanceof Map) {\n var arr_1 = [];\n object.forEach(function (value) { return arr_1.push(value); });\n return arr_1;\n }\n return Object.values(object);\n}\n\nvar GenericUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n makeNull: makeNull,\n exists: exists,\n missing: missing,\n missingOrEmpty: missingOrEmpty,\n toStringOrNull: toStringOrNull,\n attrToNumber: attrToNumber,\n attrToBoolean: attrToBoolean,\n attrToString: attrToString,\n referenceCompare: referenceCompare,\n jsonEquals: jsonEquals,\n defaultComparator: defaultComparator,\n values: values\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ColumnKeyCreator = /** @class */ (function () {\n function ColumnKeyCreator() {\n this.existingKeys = {};\n }\n ColumnKeyCreator.prototype.addExistingKeys = function (keys) {\n for (var i = 0; i < keys.length; i++) {\n this.existingKeys[keys[i]] = true;\n }\n };\n ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {\n // in case user passed in number for colId, convert to string\n colId = toStringOrNull(colId);\n var count = 0;\n while (true) {\n var idToTry = void 0;\n if (colId) {\n idToTry = colId;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else if (colField) {\n idToTry = colField;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else {\n idToTry = '' + count;\n }\n if (!this.existingKeys[idToTry]) {\n this.existingKeys[idToTry] = true;\n return idToTry;\n }\n count++;\n }\n };\n return ColumnKeyCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction iterateObject(object, callback) {\n if (object == null) {\n return;\n }\n if (Array.isArray(object)) {\n object.forEach(function (value, index) { return callback(\"\" + index, value); });\n }\n else {\n Object.keys(object).forEach(function (key) { return callback(key, object[key]); });\n }\n}\nfunction cloneObject(object) {\n var copy = {};\n var keys = Object.keys(object);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = object[key];\n copy[key] = value;\n }\n return copy;\n}\nfunction deepCloneObject(object) {\n return JSON.parse(JSON.stringify(object));\n}\n// returns copy of an object, doing a deep clone of any objects with that object.\n// this is used for eg creating copies of Column Definitions, where we want to\n// deep copy all objects, but do not want to deep copy functions (eg when user provides\n// a function or class for colDef.cellRenderer)\nfunction deepCloneDefinition(object, keysToSkip) {\n if (!object) {\n return;\n }\n var obj = object;\n var res = {};\n Object.keys(obj).forEach(function (key) {\n if (keysToSkip && keysToSkip.indexOf(key) >= 0) {\n return;\n }\n var value = obj[key];\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does\n // NOT include the following:\n // 1) arrays\n // 2) functions or classes (eg ColumnAPI instance)\n var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;\n if (sourceIsSimpleObject) {\n res[key] = deepCloneDefinition(value);\n }\n else {\n res[key] = value;\n }\n });\n return res;\n}\nfunction getProperty(object, key) {\n return object[key];\n}\nfunction setProperty(object, key, value) {\n object[key] = value;\n}\n/**\n * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with\n * a value of `undefined`.\n */\nfunction copyPropertiesIfPresent(source, target) {\n var properties = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n properties[_i - 2] = arguments[_i];\n }\n properties.forEach(function (p) { return copyPropertyIfPresent(source, target, p); });\n}\n/**\n * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a\n * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.\n */\nfunction copyPropertyIfPresent(source, target, property, transform) {\n var value = getProperty(source, property);\n if (value !== undefined) {\n setProperty(target, property, transform ? transform(value) : value);\n }\n}\nfunction getAllKeysInObjects(objects) {\n var allValues = {};\n objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {\n Object.keys(obj).forEach(function (key) { return allValues[key] = null; });\n });\n return Object.keys(allValues);\n}\nfunction getAllValuesInObject(obj) {\n if (!obj) {\n return [];\n }\n var anyObject = Object;\n if (typeof anyObject.values === 'function') {\n return anyObject.values(obj);\n }\n var ret = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {\n ret.push(obj[key]);\n }\n }\n return ret;\n}\nfunction mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {\n if (copyUndefined === void 0) { copyUndefined = true; }\n if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }\n if (!exists(source)) {\n return;\n }\n iterateObject(source, function (key, sourceValue) {\n var destValue = dest[key];\n if (destValue === sourceValue) {\n return;\n }\n // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef\n // and Column Types) would result in params getting shared between objects.\n // by putting an empty value into destValue first, it means we end up copying over values from\n // the source object, rather than just copying in the source object in it's entirety.\n if (makeCopyOfSimpleObjects) {\n var objectIsDueToBeCopied = destValue == null && sourceValue != null;\n if (objectIsDueToBeCopied) {\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed\n // to a Class instance (such as ColumnAPI instance).\n var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;\n var dontCopy = sourceIsSimpleObject;\n if (dontCopy) {\n destValue = {};\n dest[key] = destValue;\n }\n }\n }\n if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {\n mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);\n }\n else if (copyUndefined || sourceValue !== undefined) {\n dest[key] = sourceValue;\n }\n });\n}\nfunction missingOrEmptyObject(value) {\n return missing(value) || Object.keys(value).length === 0;\n}\nfunction get(source, expression, defaultValue) {\n if (source == null) {\n return defaultValue;\n }\n var keys = expression.split('.');\n var objectToRead = source;\n while (keys.length > 1) {\n objectToRead = objectToRead[keys.shift()];\n if (objectToRead == null) {\n return defaultValue;\n }\n }\n var value = objectToRead[keys[0]];\n return value != null ? value : defaultValue;\n}\nfunction set(target, expression, value) {\n if (target == null) {\n return;\n }\n var keys = expression.split('.');\n var objectToUpdate = target;\n while (keys.length > 1) {\n objectToUpdate = objectToUpdate[keys.shift()];\n if (objectToUpdate == null) {\n return;\n }\n }\n objectToUpdate[keys[0]] = value;\n}\nfunction deepFreeze(object) {\n Object.freeze(object);\n values(object).forEach(function (v) {\n if (isNonNullObject(v) || typeof v === 'function') {\n deepFreeze(v);\n }\n });\n return object;\n}\nfunction getValueUsingField(data, field, fieldContainsDots) {\n if (!field || !data) {\n return;\n }\n // if no '.', then it's not a deep value\n if (!fieldContainsDots) {\n return data[field];\n }\n // otherwise it is a deep value, so need to dig for it\n var fields = field.split('.');\n var currentObject = data;\n for (var i = 0; i < fields.length; i++) {\n if (currentObject == null) {\n return undefined;\n }\n currentObject = currentObject[fields[i]];\n }\n return currentObject;\n}\n// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a\n// memory leak if user is not disposing of the GridAPI or ColumnApi references\nfunction removeAllReferences(obj, objectName) {\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)\n // we don't care about\n if (typeof value === 'object') {\n obj[key] = undefined;\n }\n });\n var proto = Object.getPrototypeOf(obj);\n var properties = {};\n Object.keys(proto).forEach(function (key) {\n var value = proto[key];\n // leave all basic types - this is needed for GridAPI to leave the \"destroyed: boolean\" attribute alone\n if (typeof value === 'function') {\n var func = function () {\n console.warn(\"AG Grid: \" + objectName + \" function \" + key + \"() cannot be called as the grid has been destroyed.\\n Please don't call grid API functions on destroyed grids - as a matter of fact you shouldn't\\n be keeping the API reference, your application has a memory leak! Remove the API reference\\n when the grid is destroyed.\");\n };\n properties[key] = { value: func, writable: true };\n }\n });\n Object.defineProperties(obj, properties);\n}\nfunction isNonNullObject(value) {\n return typeof value === 'object' && value !== null;\n}\n\nvar ObjectUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iterateObject: iterateObject,\n cloneObject: cloneObject,\n deepCloneObject: deepCloneObject,\n deepCloneDefinition: deepCloneDefinition,\n getProperty: getProperty,\n setProperty: setProperty,\n copyPropertiesIfPresent: copyPropertiesIfPresent,\n copyPropertyIfPresent: copyPropertyIfPresent,\n getAllKeysInObjects: getAllKeysInObjects,\n getAllValuesInObject: getAllValuesInObject,\n mergeDeep: mergeDeep,\n missingOrEmptyObject: missingOrEmptyObject,\n get: get,\n set: set,\n deepFreeze: deepFreeze,\n getValueUsingField: getValueUsingField,\n removeAllReferences: removeAllReferences,\n isNonNullObject: isNonNullObject\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nfunction getFunctionName(funcConstructor) {\n // for every other browser in the world\n if (funcConstructor.name) {\n return funcConstructor.name;\n }\n // for the pestilence that is ie11\n var matches = /function\\s+([^\\(]+)/.exec(funcConstructor.toString());\n return matches && matches.length === 2 ? matches[1].trim() : null;\n}\nfunction isFunction(val) {\n return !!(val && val.constructor && val.call && val.apply);\n}\nfunction executeInAWhile(funcs) {\n executeAfter(funcs, 400);\n}\nvar executeNextVMTurnFuncs = [];\nvar executeNextVMTurnPending = false;\nfunction executeNextVMTurn(func) {\n executeNextVMTurnFuncs.push(func);\n if (executeNextVMTurnPending) {\n return;\n }\n executeNextVMTurnPending = true;\n window.setTimeout(function () {\n var funcsCopy = executeNextVMTurnFuncs.slice();\n executeNextVMTurnFuncs.length = 0;\n executeNextVMTurnPending = false;\n funcsCopy.forEach(function (func) { return func(); });\n }, 0);\n}\nfunction executeAfter(funcs, milliseconds) {\n if (milliseconds === void 0) { milliseconds = 0; }\n if (funcs.length > 0) {\n window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);\n }\n}\n/**\n * from https://stackoverflow.com/questions/24004791/can-someone-explain-the-debounce-function-in-javascript\n * @param {Function} func The function to be debounced\n * @param {number} wait The time in ms to debounce\n * @param {boolean} immediate If it should run immediately or wait for the initial debounce delay\n * @return {Function} The debounced function\n */\nfunction debounce(func, wait, immediate) {\n if (immediate === void 0) { immediate = false; }\n // 'private' variable for instance\n // The returned function will be able to reference this due to closure.\n // Each call to the returned function will share this common timer.\n var timeout;\n // Calling debounce returns a new anonymous function\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // reference the context and args for the setTimeout function\n var context = this;\n // Should the function be called now? If immediate is true\n // and not already in a timeout then the answer is: Yes\n var callNow = immediate && !timeout;\n // This is the basic debounce behaviour where you can call this\n // function several times, but it will only execute once\n // [before or after imposing a delay].\n // Each time the returned function is called, the timer starts over.\n window.clearTimeout(timeout);\n // Set the new timeout\n timeout = window.setTimeout(function () {\n // Inside the timeout function, clear the timeout variable\n // which will let the next execution run when in 'immediate' mode\n timeout = null;\n // Check if the function already ran with the immediate flag\n if (!immediate) {\n // Call the original function with apply\n // apply lets you define the 'this' object as well as the arguments\n // (both captured before setTimeout)\n func.apply(context, args);\n }\n }, wait);\n // Immediate mode and no wait timer? Execute the function..\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n/**\n * @param {Function} func The function to be throttled\n * @param {number} wait The time in ms to throttle\n * @return {Function} The throttled function\n */\nfunction throttle(func, wait) {\n var previousCall = 0;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var currentCall = new Date().getTime();\n if (currentCall - previousCall < wait) {\n return;\n }\n previousCall = currentCall;\n func.apply(context, args);\n };\n}\nfunction waitUntil(condition, callback, timeout, timeoutMessage) {\n if (timeout === void 0) { timeout = 100; }\n var timeStamp = new Date().getTime();\n var interval = null;\n var executed = false;\n var internalCallback = function () {\n var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;\n if (condition() || reachedTimeout) {\n callback();\n executed = true;\n if (interval != null) {\n window.clearInterval(interval);\n interval = null;\n }\n if (reachedTimeout && timeoutMessage) {\n console.warn(timeoutMessage);\n }\n }\n };\n internalCallback();\n if (!executed) {\n interval = window.setInterval(internalCallback, 10);\n }\n}\nfunction compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };\n}\nfunction callIfPresent(func) {\n if (func) {\n func();\n }\n}\nvar noop = function () { return; };\n\nvar FunctionUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n doOnce: doOnce,\n getFunctionName: getFunctionName,\n isFunction: isFunction,\n executeInAWhile: executeInAWhile,\n executeNextVMTurn: executeNextVMTurn,\n executeAfter: executeAfter,\n debounce: debounce,\n throttle: throttle,\n waitUntil: waitUntil,\n compose: compose,\n callIfPresent: callIfPresent,\n noop: noop\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Context = /** @class */ (function () {\n function Context(params, logger) {\n this.beanWrappers = {};\n this.destroyed = false;\n if (!params || !params.beanClasses) {\n return;\n }\n this.contextParams = params;\n this.logger = logger;\n this.logger.log(\">> creating ag-Application Context\");\n this.createBeans();\n var beanInstances = this.getBeanInstances();\n this.wireBeans(beanInstances);\n this.logger.log(\">> ag-Application Context ready - component is alive\");\n }\n Context.prototype.getBeanInstances = function () {\n return values(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });\n };\n Context.prototype.createBean = function (bean, afterPreCreateCallback) {\n if (!bean) {\n throw Error(\"Can't wire to bean since it is null\");\n }\n this.wireBeans([bean], afterPreCreateCallback);\n return bean;\n };\n Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {\n this.autoWireBeans(beanInstances);\n this.methodWireBeans(beanInstances);\n this.callLifeCycleMethods(beanInstances, 'preConstructMethods');\n // the callback sets the attributes, so the component has access to attributes\n // before postConstruct methods in the component are executed\n if (exists(afterPreCreateCallback)) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n this.callLifeCycleMethods(beanInstances, 'postConstructMethods');\n };\n Context.prototype.createBeans = function () {\n var _this = this;\n // register all normal beans\n this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));\n // register override beans, these will overwrite beans above of same name\n // instantiate all beans - overridden beans will be left out\n iterateObject(this.beanWrappers, function (key, beanEntry) {\n var constructorParamsMeta;\n if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {\n constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;\n }\n var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);\n var newInstance = applyToConstructor(beanEntry.bean, constructorParams);\n beanEntry.beanInstance = newInstance;\n });\n var createdBeanNames = Object.keys(this.beanWrappers).join(', ');\n this.logger.log(\"created beans: \" + createdBeanNames);\n };\n // tslint:disable-next-line\n Context.prototype.createBeanWrapper = function (BeanClass) {\n var metaData = BeanClass.__agBeanMetaData;\n if (!metaData) {\n var beanName = void 0;\n if (BeanClass.prototype.constructor) {\n beanName = getFunctionName(BeanClass.prototype.constructor);\n }\n else {\n beanName = \"\" + BeanClass;\n }\n console.error(\"Context item \" + beanName + \" is not a bean\");\n return;\n }\n var beanEntry = {\n bean: BeanClass,\n beanInstance: null,\n beanName: metaData.beanName\n };\n this.beanWrappers[metaData.beanName] = beanEntry;\n };\n Context.prototype.autoWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n var attributes = metaData.agClassAttributes;\n if (!attributes) {\n return;\n }\n attributes.forEach(function (attribute) {\n var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);\n beanInstance[attribute.attributeName] = otherBean;\n });\n });\n });\n };\n Context.prototype.methodWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n iterateObject(metaData.autowireMethods, function (methodName, wireParams) {\n // skip constructor, as this is dealt with elsewhere\n if (methodName === \"agConstructor\") {\n return;\n }\n var initParams = _this.getBeansForParameters(wireParams, beanName);\n beanInstance[methodName].apply(beanInstance, initParams);\n });\n });\n });\n };\n Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {\n var prototype = Object.getPrototypeOf(beanInstance);\n while (prototype != null) {\n var constructor = prototype.constructor;\n if (constructor.hasOwnProperty('__agBeanMetaData')) {\n var metaData = constructor.__agBeanMetaData;\n var beanName = this.getBeanName(constructor);\n callback(metaData, beanName);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n };\n Context.prototype.getBeanName = function (constructor) {\n if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {\n return constructor.__agBeanMetaData.beanName;\n }\n var constructorString = constructor.toString();\n var beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n return beanName;\n };\n Context.prototype.getBeansForParameters = function (parameters, beanName) {\n var _this = this;\n var beansList = [];\n if (parameters) {\n iterateObject(parameters, function (paramIndex, otherBeanName) {\n var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);\n beansList[Number(paramIndex)] = otherBean;\n });\n }\n return beansList;\n };\n Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {\n if (optional === void 0) { optional = false; }\n if (beanName === \"context\") {\n return this;\n }\n if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {\n return this.contextParams.providedBeanInstances[beanName];\n }\n var beanEntry = this.beanWrappers[beanName];\n if (beanEntry) {\n return beanEntry.beanInstance;\n }\n if (!optional) {\n console.error(\"AG Grid: unable to find bean reference \" + beanName + \" while initialising \" + wiringBean);\n }\n return null;\n };\n Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });\n };\n Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {\n // putting all methods into a map removes duplicates\n var allMethods = {};\n // dump methods from each level of the metadata hierarchy\n this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {\n var methods = metaData[lifeCycleMethod];\n if (methods) {\n methods.forEach(function (methodName) {\n if (methodName != methodToIgnore) {\n allMethods[methodName] = true;\n }\n });\n }\n });\n var allMethodsList = Object.keys(allMethods);\n allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });\n };\n Context.prototype.getBean = function (name) {\n return this.lookupBeanInstance(\"getBean\", name, true);\n };\n Context.prototype.destroy = function () {\n if (this.destroyed) {\n return;\n }\n this.logger.log(\">> Shutting down ag-Application Context\");\n var beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n this.destroyed = true;\n this.logger.log(\">> ag-Application Context shut down - component is dead\");\n };\n Context.prototype.destroyBean = function (bean) {\n if (!bean) {\n return;\n }\n this.destroyBeans([bean]);\n };\n Context.prototype.destroyBeans = function (beans) {\n var _this = this;\n if (!beans) {\n return [];\n }\n beans.forEach(function (bean) {\n _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');\n // call destroy() explicitly if it exists\n var beanAny = bean;\n if (typeof beanAny.destroy === 'function') {\n beanAny.destroy();\n }\n });\n return [];\n };\n return Context;\n}());\n// taken from: http://stackoverflow.com/questions/3362471/how-can-i-call-a-javascript-constructor-using-call-or-apply\n// allows calling 'apply' on a constructor\nfunction applyToConstructor(constructor, argArray) {\n var args = [null].concat(argArray);\n var factoryFunction = constructor.bind.apply(constructor, args);\n return new factoryFunction();\n}\nfunction PreConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.preConstructMethods) {\n props.preConstructMethods = [];\n }\n props.preConstructMethods.push(methodName);\n}\nfunction PostConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.postConstructMethods) {\n props.postConstructMethods = [];\n }\n props.postConstructMethods.push(methodName);\n}\nfunction PreDestroy(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.preDestroyMethods) {\n props.preDestroyMethods = [];\n }\n props.preDestroyMethods.push(methodName);\n}\nfunction Bean(beanName) {\n return function (classConstructor) {\n var props = getOrCreateProps$1(classConstructor);\n props.beanName = beanName;\n };\n}\nfunction Autowired(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, false, target, propertyKey, null);\n };\n}\nfunction Optional(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, true, target, propertyKey, null);\n };\n}\nfunction autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {\n if (name === null) {\n console.error(\"AG Grid: Autowired name should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"AG Grid: Autowired should be on an attribute\");\n return;\n }\n // it's an attribute on the class\n var props = getOrCreateProps$1(target.constructor);\n if (!props.agClassAttributes) {\n props.agClassAttributes = [];\n }\n props.agClassAttributes.push({\n attributeName: methodOrAttributeName,\n beanName: name,\n optional: optional\n });\n}\nfunction Qualifier(name) {\n return function (classPrototype, methodOrAttributeName, index) {\n var constructor = typeof classPrototype == \"function\" ? classPrototype : classPrototype.constructor;\n var props;\n if (typeof index === \"number\") {\n // it's a parameter on a method\n var methodName = void 0;\n if (methodOrAttributeName) {\n props = getOrCreateProps$1(constructor);\n methodName = methodOrAttributeName;\n }\n else {\n props = getOrCreateProps$1(constructor);\n methodName = \"agConstructor\";\n }\n if (!props.autowireMethods) {\n props.autowireMethods = {};\n }\n if (!props.autowireMethods[methodName]) {\n props.autowireMethods[methodName] = {};\n }\n props.autowireMethods[methodName][index] = name;\n }\n };\n}\nfunction getOrCreateProps$1(target) {\n if (!target.hasOwnProperty(\"__agBeanMetaData\")) {\n target.__agBeanMetaData = {};\n }\n return target.__agBeanMetaData;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$i = (undefined && undefined.__assign) || function () {\n __assign$i = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$i.apply(this, arguments);\n};\nvar __decorate$2A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$a = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EventService = /** @class */ (function () {\n function EventService() {\n this.allSyncListeners = new Map();\n this.allAsyncListeners = new Map();\n this.globalSyncListeners = new Set();\n this.globalAsyncListeners = new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n // because this class is used both inside the context and outside the context, we do not\n // use autowired attributes, as that would be confusing, as sometimes the attributes\n // would be wired, and sometimes not.\n //\n // the global event servers used by AG Grid is autowired by the context once, and this\n // setBeans method gets called once.\n //\n // the times when this class is used outside of the context (eg RowNode has an instance of this\n // class) then it is not a bean, and this setBeans method is not called.\n EventService.prototype.setBeans = function (loggerFactory, gridOptionsWrapper, frameworkOverrides, globalEventListener) {\n if (globalEventListener === void 0) { globalEventListener = null; }\n this.frameworkOverrides = frameworkOverrides;\n this.gridOptionsWrapper = gridOptionsWrapper;\n if (globalEventListener) {\n var async = gridOptionsWrapper.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n };\n EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n var listeners = listenerMap.get(eventType);\n // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance\n // getListeners() is also called during event dispatch even though no listeners are added. This measure protects\n // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after\n // the RowComp is destroyed, see noRegisteredListenersExist() below.\n if (!listeners && autoCreateListenerCollection) {\n listeners = new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n };\n EventService.prototype.noRegisteredListenersExist = function () {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&\n this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n };\n EventService.prototype.addEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n this.getListeners(eventType, async, true).add(listener);\n };\n EventService.prototype.removeEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n var listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n listenerMap.delete(eventType);\n }\n };\n EventService.prototype.addGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);\n };\n EventService.prototype.removeGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);\n };\n EventService.prototype.dispatchEvent = function (event) {\n var agEvent = event;\n if (this.gridOptionsWrapper) {\n // Apply common properties to all dispatched events if this event service has had its beans set with gridOptionsWrapper.\n // Note there are multiple instances of EventService that are used local to components which do not set gridOptionsWrapper. \n agEvent = __assign$i(__assign$i({}, event), { api: this.gridOptionsWrapper.getApi(), columnApi: this.gridOptionsWrapper.getColumnApi(), context: this.gridOptionsWrapper.getContext() });\n }\n this.dispatchToListeners(agEvent, true);\n this.dispatchToListeners(agEvent, false);\n this.firedEvents[agEvent.type] = true;\n };\n EventService.prototype.dispatchEventOnce = function (event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n };\n EventService.prototype.dispatchToListeners = function (event, async) {\n var _this = this;\n var eventType = event.type;\n var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return listener(event); });\n }\n else {\n listener(event);\n }\n }); };\n var listeners = this.getListeners(eventType, async, false);\n if (listeners) {\n processEventListeners(listeners);\n }\n var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;\n globalListeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true); });\n }\n else {\n _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true);\n }\n });\n };\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n EventService.prototype.dispatchAsync = function (func) {\n // add to the queue for executing later in the next VM turn\n this.asyncFunctionsQueue.push(func);\n // check if timeout is already scheduled. the first time the grid calls\n // this within it's thread turn, this should be false, so it will schedule\n // the 'flush queue' method the first time it comes here. then the flag is\n // set to 'true' so it will know it's already scheduled for subsequent calls.\n if (!this.scheduled) {\n // if not scheduled, schedule one\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n // mark that it is scheduled\n this.scheduled = true;\n }\n };\n // this happens in the next VM turn only, and empties the queue of events\n EventService.prototype.flushAsyncQueue = function () {\n this.scheduled = false;\n // we take a copy, because the event listener could be using\n // the grid, which would cause more events, which would be potentially\n // added to the queue, so safe to take a copy, the new events will\n // get executed in a later VM turn rather than risk updating the\n // queue as we are flushing it.\n var queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n // execute the queue\n queueCopy.forEach(function (func) { return func(); });\n };\n __decorate$2A([\n __param$a(0, Qualifier('loggerFactory')),\n __param$a(1, Qualifier('gridOptionsWrapper')),\n __param$a(2, Qualifier('frameworkOverrides')),\n __param$a(3, Qualifier('globalEventListener'))\n ], EventService.prototype, \"setBeans\", null);\n EventService = __decorate$2A([\n Bean('eventService')\n ], EventService);\n return EventService;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.ROW_BUFFER_SIZE = 10;\n Constants.LAYOUT_INTERVAL = 500;\n Constants.BATCH_WAIT_MILLIS = 50;\n Constants.EXPORT_TYPE_DRAG_COPY = 'dragCopy';\n Constants.EXPORT_TYPE_CLIPBOARD = 'clipboard';\n Constants.EXPORT_TYPE_EXCEL = 'excel';\n Constants.EXPORT_TYPE_CSV = 'csv';\n Constants.ROW_MODEL_TYPE_INFINITE = 'infinite';\n Constants.ROW_MODEL_TYPE_VIEWPORT = 'viewport';\n Constants.ROW_MODEL_TYPE_CLIENT_SIDE = 'clientSide';\n Constants.ROW_MODEL_TYPE_SERVER_SIDE = 'serverSide';\n Constants.ALWAYS = 'always';\n Constants.ONLY_WHEN_GROUPING = 'onlyWhenGrouping';\n Constants.PINNED_TOP = 'top';\n Constants.PINNED_BOTTOM = 'bottom';\n Constants.DOM_LAYOUT_NORMAL = 'normal';\n Constants.DOM_LAYOUT_PRINT = 'print';\n Constants.DOM_LAYOUT_AUTO_HEIGHT = 'autoHeight';\n Constants.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\n Constants.SOURCE_PASTE = 'paste';\n Constants.PINNED_RIGHT = 'right';\n Constants.PINNED_LEFT = 'left';\n Constants.SORT_ASC = 'asc';\n Constants.SORT_DESC = 'desc';\n Constants.INPUT_SELECTOR = 'input, select, button, textarea';\n Constants.FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea';\n Constants.FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';\n return Constants;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ModuleNames;\n(function (ModuleNames) {\n // when using modules, user references this\n ModuleNames[\"CommunityCoreModule\"] = \"@ag-grid-community/core\";\n // when not using modules, user references this\n ModuleNames[\"CommunityAllModules\"] = \"@ag-grid-community/all\";\n // community modules\n ModuleNames[\"InfiniteRowModelModule\"] = \"@ag-grid-community/infinite-row-model\";\n ModuleNames[\"ClientSideRowModelModule\"] = \"@ag-grid-community/client-side-row-model\";\n ModuleNames[\"CsvExportModule\"] = \"@ag-grid-community/csv-export\";\n // enterprise core - users never import on this, but other enterprise modules do\n ModuleNames[\"EnterpriseCoreModule\"] = \"@ag-grid-enterprise/core\";\n // when not using modules, user references this\n ModuleNames[\"EnterpriseAllModules\"] = \"@ag-grid-enterprise/all\";\n // enterprise modules\n ModuleNames[\"RowGroupingModule\"] = \"@ag-grid-enterprise/row-grouping\";\n ModuleNames[\"ColumnToolPanelModule\"] = \"@ag-grid-enterprise/column-tool-panel\";\n ModuleNames[\"FiltersToolPanelModule\"] = \"@ag-grid-enterprise/filter-tool-panel\";\n ModuleNames[\"MenuModule\"] = \"@ag-grid-enterprise/menu\";\n ModuleNames[\"SetFilterModule\"] = \"@ag-grid-enterprise/set-filter\";\n ModuleNames[\"MultiFilterModule\"] = \"@ag-grid-enterprise/multi-filter\";\n ModuleNames[\"StatusBarModule\"] = \"@ag-grid-enterprise/status-bar\";\n ModuleNames[\"SideBarModule\"] = \"@ag-grid-enterprise/side-bar\";\n ModuleNames[\"RangeSelectionModule\"] = \"@ag-grid-enterprise/range-selection\";\n ModuleNames[\"MasterDetailModule\"] = \"@ag-grid-enterprise/master-detail\";\n ModuleNames[\"RichSelectModule\"] = \"@ag-grid-enterprise/rich-select\";\n ModuleNames[\"GridChartsModule\"] = \"@ag-grid-enterprise/charts\";\n ModuleNames[\"ViewportRowModelModule\"] = \"@ag-grid-enterprise/viewport-row-model\";\n ModuleNames[\"ServerSideRowModelModule\"] = \"@ag-grid-enterprise/server-side-row-model\";\n ModuleNames[\"ExcelExportModule\"] = \"@ag-grid-enterprise/excel-export\";\n ModuleNames[\"ClipboardModule\"] = \"@ag-grid-enterprise/clipboard\";\n ModuleNames[\"SparklinesModule\"] = \"@ag-grid-enterprise/sparklines\";\n // framework wrappers currently don't provide beans, comps etc, so no need to be modules,\n // however i argue they should be as in theory they 'could' provide beans etc\n ModuleNames[\"AngularModule\"] = \"@ag-grid-community/angular\";\n ModuleNames[\"ReactModule\"] = \"@ag-grid-community/react\";\n ModuleNames[\"VueModule\"] = \"@ag-grid-community/vue\";\n ModuleNames[\"PolymerModule\"] = \"@ag-grid-community/polymer\";\n // and then this, which is definitely not a grid module, as it should not have any dependency\n // on the grid (ie shouldn't even reference the Module interface)\n // ChartsModule = \"@ag-grid-community/charts-core\",\n})(ModuleNames || (ModuleNames = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ModuleRegistry = /** @class */ (function () {\n function ModuleRegistry() {\n }\n ModuleRegistry.register = function (module, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n ModuleRegistry.modulesMap[module.moduleName] = module;\n if (ModuleRegistry.moduleBased === undefined) {\n ModuleRegistry.moduleBased = moduleBased;\n }\n else {\n if (ModuleRegistry.moduleBased !== moduleBased) {\n doOnce(function () {\n console.warn(\"AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.\");\n console.warn('Please see https://www.ag-grid.com/javascript-grid/packages-modules/ for more information.');\n }, 'ModulePackageCheck');\n }\n }\n };\n // noinspection JSUnusedGlobalSymbols\n ModuleRegistry.registerModules = function (modules, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n if (!modules) {\n return;\n }\n modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });\n };\n ModuleRegistry.assertRegistered = function (moduleName, reason) {\n if (this.isRegistered(moduleName)) {\n return true;\n }\n var warningKey = reason + moduleName;\n var warningMessage;\n if (ModuleRegistry.moduleBased) {\n warningMessage = \"AG Grid: unable to use \" + reason + \" as module \" + moduleName + \" is not present. Please see: https://www.ag-grid.com/javascript-grid/modules/\";\n }\n else {\n warningMessage = \"AG Grid: unable to use \" + reason + \" as package 'ag-grid-enterprise' is not present. Please see: https://www.ag-grid.com/javascript-grid/packages/\";\n }\n doOnce(function () {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n };\n ModuleRegistry.isRegistered = function (moduleName) {\n return !!ModuleRegistry.modulesMap[moduleName];\n };\n ModuleRegistry.getRegisteredModules = function () {\n return values(ModuleRegistry.modulesMap);\n };\n ModuleRegistry.isPackageBased = function () {\n return !ModuleRegistry.moduleBased;\n };\n // having in a map a) removes duplicates and b) allows fast lookup\n ModuleRegistry.modulesMap = {};\n return ModuleRegistry;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence$4 = 0;\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and ProvidedColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg ProvidedColumnGroup\n// can only appear in OriginalColumn tree).\nvar Column = /** @class */ (function () {\n function Column(colDef, userProvidedColDef, colId, primary) {\n // used by React (and possibly other frameworks) as key for rendering\n this.instanceId = instanceIdSequence$4++;\n // The measured height of this column's header when autoHeaderHeight is enabled\n this.autoHeaderHeight = null;\n this.moving = false;\n this.menuVisible = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.colId = colId;\n this.primary = primary;\n this.setState(colDef);\n }\n Column.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n Column.prototype.setState = function (colDef) {\n // sort\n if (colDef.sort !== undefined) {\n if (colDef.sort === Constants.SORT_ASC || colDef.sort === Constants.SORT_DESC) {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === Constants.SORT_ASC || colDef.initialSort === Constants.SORT_DESC) {\n this.sort = colDef.initialSort;\n }\n }\n // sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n var initialSortIndex = attrToNumber(colDef.initialSortIndex);\n if (sortIndex !== undefined) {\n if (sortIndex !== null) {\n this.sortIndex = sortIndex;\n }\n }\n else {\n if (initialSortIndex !== null) {\n this.sortIndex = initialSortIndex;\n }\n }\n // hide\n var hide = attrToBoolean(colDef.hide);\n var initialHide = attrToBoolean(colDef.initialHide);\n if (hide !== undefined) {\n this.visible = !hide;\n }\n else {\n this.visible = !initialHide;\n }\n // pinned\n if (colDef.pinned !== undefined) {\n this.setPinned(colDef.pinned);\n }\n else {\n this.setPinned(colDef.initialPinned);\n }\n // flex\n var flex = attrToNumber(colDef.flex);\n var initialFlex = attrToNumber(colDef.initialFlex);\n if (flex !== undefined) {\n this.flex = flex;\n }\n else if (initialFlex !== undefined) {\n this.flex = initialFlex;\n }\n };\n // gets called when user provides an alternative colDef, eg\n Column.prototype.setColDef = function (colDef, userProvidedColDef) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.initMinAndMaxWidths();\n this.initDotNotation();\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_COL_DEF_CHANGED, \"api\"));\n };\n /**\n * Returns the column definition provided by the application.\n * This may not be correct, as items can be superseded by default column options.\n * However it's useful for comparison, eg to know which application column definition matches that column.\n */\n Column.prototype.getUserProvidedColDef = function () {\n return this.userProvidedColDef;\n };\n Column.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n /** Returns the parent column group, if column grouping is active. */\n Column.prototype.getParent = function () {\n return this.parent;\n };\n Column.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsWrapper\n Column.prototype.initialise = function () {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.validate();\n };\n Column.prototype.initDotNotation = function () {\n var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();\n this.fieldContainsDots = exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n };\n Column.prototype.initMinAndMaxWidths = function () {\n var colDef = this.colDef;\n this.minWidth = this.columnUtils.calculateColMinWidth(colDef);\n this.maxWidth = this.columnUtils.calculateColMaxWidth(colDef);\n };\n Column.prototype.resetActualWidth = function (source) {\n if (source === void 0) { source = 'api'; }\n var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n this.setActualWidth(initialWidth, source, true);\n };\n Column.prototype.isEmptyGroup = function () {\n return false;\n };\n Column.prototype.isRowGroupDisplayed = function (colId) {\n if (missing(this.colDef) || missing(this.colDef.showRowGroup)) {\n return false;\n }\n var showingAllGroups = this.colDef.showRowGroup === true;\n var showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n };\n /** Returns `true` if column is a primary column, `false` if secondary. Secondary columns are used for pivoting. */\n Column.prototype.isPrimary = function () {\n return this.primary;\n };\n /** Returns `true` if column filtering is allowed. */\n Column.prototype.isFilterAllowed = function () {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;\n return filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipFieldContainsDots = function () {\n return this.tooltipFieldContainsDots;\n };\n Column.prototype.validate = function () {\n var colDefAny = this.colDef;\n function warnOnce(msg, key, obj) {\n doOnce(function () {\n if (obj) {\n console.warn(msg, obj);\n }\n else {\n doOnce(function () { return console.warn(msg); }, key);\n }\n }, key);\n }\n var usingCSRM = this.gridOptionsWrapper.isRowModelDefault();\n if (usingCSRM && !ModuleRegistry.isRegistered(ModuleNames.RowGroupingModule)) {\n var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];\n rowGroupingItems.forEach(function (item) {\n if (exists(colDefAny[item])) {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + item + \" is only valid in ag-grid-enterprise, your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n else {\n warnOnce(\"AG Grid: \" + item + \" is only valid with AG Grid Enterprise Module \" + ModuleNames.RowGroupingModule + \" - your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n }\n });\n }\n if (!ModuleRegistry.isRegistered(ModuleNames.RichSelectModule)) {\n if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with ag-grid-enterprise\", 'ColumnRichSelectMissing');\n }\n else {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with AG Grid Enterprise Module \" + ModuleNames.RichSelectModule, 'ColumnRichSelectMissing');\n }\n }\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n itemsNotAllowedWithTreeData.forEach(function (item) {\n if (exists(colDefAny[item])) {\n warnOnce(\"AG Grid: \" + item + \" is not possible when doing tree data, your column definition should not have \" + item, 'TreeDataCannotRowGroup');\n }\n });\n }\n if (exists(this.colDef.width) && typeof this.colDef.width !== 'number') {\n warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck_asdfawef');\n }\n if (colDefAny.pinnedRowCellRenderer) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowCellRendererParams) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowCellRendererFramework) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowValueGetter) {\n warnOnce('AG Grid: pinnedRowCellRenderer is deprecated, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue.', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n };\n /** Add an event listener to the column. */\n Column.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener from the column. */\n Column.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {\n return {\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n };\n Column.prototype.isSuppressNavigable = function (rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n };\n Column.prototype.isCellEditable = function (rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n };\n Column.prototype.isSuppressFillHandle = function () {\n return !!attrToBoolean(this.colDef.suppressFillHandle);\n };\n Column.prototype.isAutoHeight = function () {\n return !!attrToBoolean(this.colDef.autoHeight);\n };\n Column.prototype.isAutoHeaderHeight = function () {\n return !!attrToBoolean(this.colDef.autoHeaderHeight);\n };\n Column.prototype.isRowDrag = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n };\n Column.prototype.isDndSource = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n };\n Column.prototype.isCellCheckboxSelection = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n };\n Column.prototype.isSuppressPaste = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n };\n Column.prototype.isResizable = function () {\n return !!attrToBoolean(this.colDef.resizable);\n };\n Column.prototype.isColumnFunc = function (rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var editableFunc = value;\n return editableFunc(params);\n }\n return false;\n };\n Column.prototype.setMoving = function (moving, source) {\n if (source === void 0) { source = \"api\"; }\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));\n };\n Column.prototype.createColumnEvent = function (type, source) {\n return {\n type: type,\n column: this,\n columns: [this],\n source: source,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n };\n Column.prototype.isMoving = function () {\n return this.moving;\n };\n /** If sorting is active, returns the sort direction e.g. `'asc'` or `'desc'`. */\n Column.prototype.getSort = function () {\n return this.sort;\n };\n Column.prototype.setSort = function (sort, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));\n }\n };\n Column.prototype.setMenuVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === Constants.SORT_ASC;\n };\n Column.prototype.isSortDescending = function () {\n return this.sort === Constants.SORT_DESC;\n };\n Column.prototype.isSortNone = function () {\n return missing(this.sort);\n };\n Column.prototype.isSorting = function () {\n return exists(this.sort);\n };\n Column.prototype.getSortIndex = function () {\n return this.sortIndex;\n };\n Column.prototype.setSortIndex = function (sortOrder) {\n this.sortIndex = sortOrder;\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n };\n /** If aggregation is set for the column, returns the aggregation function. */\n Column.prototype.getAggFunc = function () {\n return this.aggFunc;\n };\n Column.prototype.getLeft = function () {\n return this.left;\n };\n Column.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n Column.prototype.getRight = function () {\n return this.left + this.actualWidth;\n };\n Column.prototype.setLeft = function (left, source) {\n if (source === void 0) { source = \"api\"; }\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));\n }\n };\n /** Returns `true` if filter is active on the column. */\n Column.prototype.isFilterActive = function () {\n return this.filterActive;\n };\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {\n if (source === void 0) { source = \"api\"; }\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));\n }\n var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n this.pinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n this.pinned = Constants.PINNED_RIGHT;\n }\n else {\n this.pinned = null;\n }\n };\n Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.isFirstRightPinned = function () {\n return this.firstRightPinned;\n };\n Column.prototype.isLastLeftPinned = function () {\n return this.lastLeftPinned;\n };\n Column.prototype.isPinned = function () {\n return this.pinned === Constants.PINNED_LEFT || this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === Constants.PINNED_LEFT;\n };\n Column.prototype.isPinnedRight = function () {\n return this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.getPinned = function () {\n return this.pinned;\n };\n Column.prototype.setVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n var newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n /** Returns the column definition for this column.\n * The column definition will be the result of merging the application provided column definition with any provided defaults\n * (e.g. `defaultColDef` grid option, or column types.\n *\n * Equivalent: `getDefinition` */\n Column.prototype.getColDef = function () {\n return this.colDef;\n };\n Column.prototype.getColumnGroupShow = function () {\n return this.colDef.columnGroupShow;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getId`, `getUniqueId` */\n Column.prototype.getColId = function () {\n return this.colId;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getUniqueId` */\n Column.prototype.getId = function () {\n return this.getColId();\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getId` */\n Column.prototype.getUniqueId = function () {\n return this.getId();\n };\n Column.prototype.getDefinition = function () {\n return this.colDef;\n };\n /** Returns the current width of the column. If the column is resized, the actual width is the new size. */\n Column.prototype.getActualWidth = function () {\n return this.actualWidth;\n };\n Column.prototype.getAutoHeaderHeight = function () {\n return this.autoHeaderHeight;\n };\n /** Returns true if the header height has changed */\n Column.prototype.setAutoHeaderHeight = function (height) {\n var changed = height !== this.autoHeaderHeight;\n this.autoHeaderHeight = height;\n return changed;\n };\n Column.prototype.createBaseColDefParams = function (rowNode) {\n var params = {\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n Column.prototype.getColSpan = function (rowNode) {\n if (missing(this.colDef.colSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n };\n Column.prototype.getRowSpan = function (rowNode) {\n if (missing(this.colDef.rowSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n };\n Column.prototype.setActualWidth = function (actualWidth, source, silent) {\n if (source === void 0) { source = \"api\"; }\n if (silent === void 0) { silent = false; }\n if (this.minWidth != null) {\n actualWidth = Math.max(actualWidth, this.minWidth);\n }\n if (this.maxWidth != null) {\n actualWidth = Math.min(actualWidth, this.maxWidth);\n }\n if (this.actualWidth !== actualWidth) {\n // disable flex for this column if it was manually resized.\n this.actualWidth = actualWidth;\n if (this.flex && source !== 'flex' && source !== 'gridInitializing') {\n this.flex = null;\n }\n if (!silent) {\n this.fireColumnWidthChangedEvent(source);\n }\n }\n };\n Column.prototype.fireColumnWidthChangedEvent = function (source) {\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));\n };\n Column.prototype.isGreaterThanMax = function (width) {\n if (this.maxWidth != null) {\n return width > this.maxWidth;\n }\n return false;\n };\n Column.prototype.getMinWidth = function () {\n return this.minWidth;\n };\n Column.prototype.getMaxWidth = function () {\n return this.maxWidth;\n };\n Column.prototype.getFlex = function () {\n return this.flex || 0;\n };\n // this method should only be used by the columnModel to\n // change flex when required by the setColumnState method.\n Column.prototype.setFlex = function (flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n };\n Column.prototype.setMinimum = function (source) {\n if (source === void 0) { source = \"api\"; }\n if (exists(this.minWidth)) {\n this.setActualWidth(this.minWidth, source);\n }\n };\n Column.prototype.setRowGroupActive = function (rowGroup, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));\n }\n };\n /** Returns `true` if row group is currently active for this column. */\n Column.prototype.isRowGroupActive = function () {\n return this.rowGroupActive;\n };\n Column.prototype.setPivotActive = function (pivot, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));\n }\n };\n /** Returns `true` if pivot is currently active for this column. */\n Column.prototype.isPivotActive = function () {\n return this.pivotActive;\n };\n Column.prototype.isAnyFunctionActive = function () {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n };\n Column.prototype.isAnyFunctionAllowed = function () {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n };\n Column.prototype.setValueActive = function (value, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));\n }\n };\n /** Returns `true` if value (aggregation) is currently active for this column. */\n Column.prototype.isValueActive = function () {\n return this.aggregationActive;\n };\n Column.prototype.isAllowPivot = function () {\n return this.colDef.enablePivot === true;\n };\n Column.prototype.isAllowValue = function () {\n return this.colDef.enableValue === true;\n };\n Column.prototype.isAllowRowGroup = function () {\n return this.colDef.enableRowGroup === true;\n };\n Column.prototype.getMenuTabs = function (defaultValues) {\n var menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n };\n // this used to be needed, as previous version of ag-grid had lockPosition as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPosition = function () {\n console.warn('AG Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');\n return this.colDef ? !!this.colDef.lockPosition : false;\n };\n // this used to be needed, as previous version of ag-grid had lockVisible as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockVisible = function () {\n console.warn('AG Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');\n return this.colDef ? !!this.colDef.lockVisible : false;\n };\n // this used to be needed, as previous version of ag-grid had lockPinned as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPinned = function () {\n console.warn('AG Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');\n return this.colDef ? !!this.colDef.lockPinned : false;\n };\n // + renderedHeaderCell - for making header cell transparent when moving\n Column.EVENT_MOVING_CHANGED = 'movingChanged';\n // + renderedCell - changing left position\n Column.EVENT_LEFT_CHANGED = 'leftChanged';\n // + renderedCell - changing width\n Column.EVENT_WIDTH_CHANGED = 'widthChanged';\n // + renderedCell - for changing pinned classes\n Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\n Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n // + renderedColumn - for changing visibility icon\n Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n // + every time the filter changes, used in the floating filters\n Column.EVENT_FILTER_CHANGED = 'filterChanged';\n // + renderedHeaderCell - marks the header with filter icon\n Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_SORT_CHANGED = 'sortChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_COL_DEF_CHANGED = 'colDefChanged';\n Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n // + toolpanel, for gui updates\n Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n // + toolpanel, for gui updates\n Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n // + toolpanel, for gui updates\n Column.EVENT_VALUE_CHANGED = 'columnValueChanged';\n __decorate$2z([\n Autowired('gridOptionsWrapper')\n ], Column.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$2z([\n Autowired('columnUtils')\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate$2z([\n PostConstruct\n ], Column.prototype, \"initialise\", null);\n return Column;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction firstExistingValue() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (exists(value)) {\n return value;\n }\n }\n return null;\n}\nfunction existsAndNotEmpty(value) {\n return value != null && value.length > 0;\n}\nfunction last(arr) {\n if (!arr || !arr.length) {\n return;\n }\n return arr[arr.length - 1];\n}\nfunction areEqual(a, b, comparator) {\n if (a == null && b == null) {\n return true;\n }\n return a != null &&\n b != null &&\n a.length === b.length &&\n a.every(function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });\n}\n/** @deprecated */\nfunction compareArrays(array1, array2) {\n return areEqual(array1, array2);\n}\n/** @deprecated */\nfunction shallowCompare(arr1, arr2) {\n return areEqual(arr1, arr2);\n}\nfunction sortNumerically(array) {\n return array.sort(function (a, b) { return a - b; });\n}\nfunction removeRepeatsFromArray(array, object) {\n if (!array) {\n return;\n }\n for (var index = array.length - 2; index >= 0; index--) {\n var thisOneMatches = array[index] === object;\n var nextOneMatches = array[index + 1] === object;\n if (thisOneMatches && nextOneMatches) {\n array.splice(index + 1, 1);\n }\n }\n}\nfunction removeFromArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction removeAllFromArray(array, toRemove) {\n toRemove.forEach(function (item) { return removeFromArray(array, item); });\n}\nfunction insertIntoArray(array, object, toIndex) {\n array.splice(toIndex, 0, object);\n}\nfunction insertArrayIntoArray(dest, src, toIndex) {\n if (dest == null || src == null) {\n return;\n }\n // put items in backwards, otherwise inserted items end up in reverse order\n for (var i = src.length - 1; i >= 0; i--) {\n var item = src[i];\n insertIntoArray(dest, item, toIndex);\n }\n}\nfunction moveInArray(array, objectsToMove, toIndex) {\n // first take out items from the array\n removeAllFromArray(array, objectsToMove);\n // now add the objects, in same order as provided to us, that means we start at the end\n // as the objects will be pushed to the right as they are inserted\n objectsToMove.slice().reverse().forEach(function (obj) { return insertIntoArray(array, obj, toIndex); });\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction flatten(arrayOfArrays) {\n return [].concat.apply([], arrayOfArrays);\n}\nfunction pushAll(target, source) {\n if (source == null || target == null) {\n return;\n }\n source.forEach(function (value) { return target.push(value); });\n}\nfunction toStrings(array) {\n return array.map(toStringOrNull);\n}\nfunction forEachReverse(list, action) {\n if (list == null) {\n return;\n }\n for (var i = list.length - 1; i >= 0; i--) {\n action(list[i], i);\n }\n}\n\nvar ArrayUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n firstExistingValue: firstExistingValue,\n existsAndNotEmpty: existsAndNotEmpty,\n last: last,\n areEqual: areEqual,\n compareArrays: compareArrays,\n shallowCompare: shallowCompare,\n sortNumerically: sortNumerically,\n removeRepeatsFromArray: removeRepeatsFromArray,\n removeFromArray: removeFromArray,\n removeAllFromArray: removeAllFromArray,\n insertIntoArray: insertIntoArray,\n insertArrayIntoArray: insertArrayIntoArray,\n moveInArray: moveInArray,\n includes: includes,\n flatten: flatten,\n pushAll: pushAll,\n toStrings: toStrings,\n forEachReverse: forEachReverse\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnGroup = /** @class */ (function () {\n function ColumnGroup(providedColumnGroup, groupId, instanceId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new EventService();\n this.groupId = groupId;\n this.instanceId = instanceId;\n this.providedColumnGroup = providedColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n ColumnGroup.createUniqueId = function (groupId, instanceId) {\n return groupId + '_' + instanceId;\n };\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n ColumnGroup.prototype.reset = function () {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n };\n ColumnGroup.prototype.getParent = function () {\n return this.parent;\n };\n ColumnGroup.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n ColumnGroup.prototype.getUniqueId = function () {\n return ColumnGroup.createUniqueId(this.groupId, this.instanceId);\n };\n ColumnGroup.prototype.isEmptyGroup = function () {\n return this.displayedChildren.length === 0;\n };\n ColumnGroup.prototype.isMoving = function () {\n var allLeafColumns = this.getProvidedColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n return allLeafColumns.every(function (col) { return col.isMoving(); });\n };\n ColumnGroup.prototype.checkLeft = function () {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var lastChild = last(this.displayedChildren);\n var lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n var firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n };\n ColumnGroup.prototype.getLeft = function () {\n return this.left;\n };\n ColumnGroup.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n ColumnGroup.prototype.setLeft = function (left) {\n this.oldLeft = left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n };\n ColumnGroup.prototype.getPinned = function () {\n return this.pinned;\n };\n ColumnGroup.prototype.createAgEvent = function (type) {\n return { type: type };\n };\n ColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ColumnGroup.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {\n var result = false;\n this.children.forEach(function (foundChild) {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n };\n ColumnGroup.prototype.getActualWidth = function () {\n var groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach(function (child) {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n };\n ColumnGroup.prototype.isResizable = function () {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n var result = false;\n this.displayedChildren.forEach(function (child) {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n };\n ColumnGroup.prototype.getMinWidth = function () {\n var result = 0;\n this.displayedChildren.forEach(function (groupChild) {\n result += groupChild.getMinWidth() || 0;\n });\n return result;\n };\n ColumnGroup.prototype.addChild = function (child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n };\n ColumnGroup.prototype.getDisplayedChildren = function () {\n return this.displayedChildren;\n };\n ColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDisplayedLeafColumns = function () {\n var result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n };\n // why two methods here doing the same thing?\n ColumnGroup.prototype.getDefinition = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.getColGroupDef = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.isPadding = function () {\n return this.providedColumnGroup.isPadding();\n };\n ColumnGroup.prototype.isExpandable = function () {\n return this.providedColumnGroup.isExpandable();\n };\n ColumnGroup.prototype.isExpanded = function () {\n return this.providedColumnGroup.isExpanded();\n };\n ColumnGroup.prototype.setExpanded = function (expanded) {\n this.providedColumnGroup.setExpanded(expanded);\n };\n ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {\n this.displayedChildren.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ColumnGroup.prototype.getColumnGroupShow = function () {\n return this.providedColumnGroup.getColumnGroupShow();\n };\n ColumnGroup.prototype.getProvidedColumnGroup = function () {\n return this.providedColumnGroup;\n };\n /** @deprecated getOriginalColumnGroup is deprecated, use getOriginalColumnGroup. */\n ColumnGroup.prototype.getOriginalColumnGroup = function () {\n console.warn('AG Grid: columnGroup.getOriginalColumnGroup() is deprecated due to a method rename, use columnGroup.getProvidedColumnGroup() instead');\n return this.getProvidedColumnGroup();\n };\n ColumnGroup.prototype.getPaddingLevel = function () {\n var parent = this.getParent();\n if (!this.isPadding() || !parent || !parent.isPadding()) {\n return 0;\n }\n return 1 + parent.getPaddingLevel();\n };\n ColumnGroup.prototype.calculateDisplayedColumns = function () {\n var _this = this;\n // clear out last time we calculated\n this.displayedChildren = [];\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n var parentWithExpansion = this;\n while (parentWithExpansion != null && parentWithExpansion.isPadding()) {\n parentWithExpansion = parentWithExpansion.getParent();\n }\n var isExpandable = parentWithExpansion ? parentWithExpansion.providedColumnGroup.isExpandable() : false;\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n return;\n }\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(function (child) {\n // never add empty groups\n var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);\n if (emptyGroup) {\n return;\n }\n var headerGroupShow = child.getColumnGroupShow();\n switch (headerGroupShow) {\n case ColumnGroup.HEADER_GROUP_SHOW_OPEN:\n // when set to open, only show col if group is open\n if (parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:\n // when set to open, only show col if group is open\n if (!parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n default:\n _this.displayedChildren.push(child);\n break;\n }\n });\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n };\n ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';\n ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';\n ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate$2y([\n Autowired('gridOptionsWrapper')\n ], ColumnGroup.prototype, \"gridOptionsWrapper\", void 0);\n return ColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ProvidedColumnGroup = /** @class */ (function () {\n function ProvidedColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n ProvidedColumnGroup.prototype.reset = function (colGroupDef, level) {\n this.colGroupDef = colGroupDef;\n this.level = level;\n this.originalParent = null;\n // we use ! below, as we want to set the object back to the\n // way it was when it was first created\n this.children = undefined;\n this.expandable = undefined;\n };\n ProvidedColumnGroup.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n ProvidedColumnGroup.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n ProvidedColumnGroup.prototype.getLevel = function () {\n return this.level;\n };\n ProvidedColumnGroup.prototype.isVisible = function () {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(function (child) { return child.isVisible(); });\n }\n return false;\n };\n ProvidedColumnGroup.prototype.isPadding = function () {\n return this.padding;\n };\n ProvidedColumnGroup.prototype.setExpanded = function (expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n var event = {\n type: ProvidedColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n };\n ProvidedColumnGroup.prototype.isExpandable = function () {\n return this.expandable;\n };\n ProvidedColumnGroup.prototype.isExpanded = function () {\n return this.expanded;\n };\n ProvidedColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ProvidedColumnGroup.prototype.getId = function () {\n return this.getGroupId();\n };\n ProvidedColumnGroup.prototype.setChildren = function (children) {\n this.children = children;\n };\n ProvidedColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ProvidedColumnGroup.prototype.getColGroupDef = function () {\n return this.colGroupDef;\n };\n ProvidedColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ProvidedColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ProvidedColumnGroup.prototype.getColumnGroupShow = function () {\n var colGroupDef = this.colGroupDef;\n if (!colGroupDef) {\n return;\n }\n return colGroupDef.columnGroupShow;\n };\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n ProvidedColumnGroup.prototype.setupExpandable = function () {\n var _this = this;\n this.setExpandable();\n // note - we should be removing this event listener\n this.getLeafColumns().forEach(function (col) { return col.addEventListener(Column.EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });\n };\n ProvidedColumnGroup.prototype.setExpandable = function () {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n var atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n var atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n var atLeastOneChangeable = false;\n var children = this.findChildrenRemovingPadding();\n for (var i = 0, j = children.length; i < j; i++) {\n var abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_OPEN) {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_CLOSED) {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n }\n }\n var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n var event_1 = {\n type: ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event_1);\n }\n };\n ProvidedColumnGroup.prototype.findChildrenRemovingPadding = function () {\n var res = [];\n var process = function (items) {\n items.forEach(function (item) {\n // if padding, we add this children instead of the padding\n var skipBecausePadding = item instanceof ProvidedColumnGroup && item.isPadding();\n if (skipBecausePadding) {\n process(item.children);\n }\n else {\n res.push(item);\n }\n });\n };\n process(this.children);\n return res;\n };\n ProvidedColumnGroup.prototype.onColumnVisibilityChanged = function () {\n this.setExpandable();\n };\n ProvidedColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ProvidedColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ProvidedColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n return ProvidedColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DefaultColumnTypes = {\n numericColumn: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n },\n rightAligned: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n }\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nvar PASSIVE_EVENTS$1 = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\nvar supports = {};\n/**\n * a user once raised an issue - they said that when you opened a popup (eg context menu)\n * and then clicked on a selection checkbox, the popup wasn't closed. this is because the\n * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the\n * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).\n * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,\n * but we still let the event pass back to the body.\n * @param {Event} event\n */\nfunction stopPropagationForAgGrid(event) {\n event[AG_GRID_STOP_PROPAGATION] = true;\n}\nfunction isStopPropagationForAgGrid(event) {\n return event[AG_GRID_STOP_PROPAGATION] === true;\n}\nvar isEventSupported = (function () {\n var tags = {\n select: 'input',\n change: 'input',\n submit: 'form',\n reset: 'form',\n error: 'img',\n load: 'img',\n abort: 'img'\n };\n var eventChecker = function (eventName) {\n if (typeof supports[eventName] === 'boolean') {\n return supports[eventName];\n }\n var el = document.createElement(tags[eventName] || 'div');\n eventName = 'on' + eventName;\n return supports[eventName] = (eventName in el);\n };\n return eventChecker;\n})();\nfunction getCtrlForEvent(gridOptionsWrapper, event, type) {\n var sourceElement = event.target;\n while (sourceElement) {\n var renderedComp = gridOptionsWrapper.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n}\n/**\n * @deprecated\n * Adds all type of change listeners to an element, intended to be a text field\n * @param {HTMLElement} element\n * @param {EventListener} listener\n */\nfunction addChangeListener(element, listener) {\n element.addEventListener('changed', listener);\n element.addEventListener('paste', listener);\n element.addEventListener('input', listener);\n}\nfunction isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return getEventPath(event).indexOf(element) >= 0;\n}\nfunction createEventPath(event) {\n var res = [];\n var pointer = event.target;\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\n/**\n * firefox doesn't have event.path set, or any alternative to it, so we hack\n * it in. this is needed as it's to late to work out the path when the item is\n * removed from the dom. used by MouseEventService, where it works out if a click\n * was from the current grid, or a detail grid (master / detail).\n * @param {Event} event\n */\nfunction addAgGridEventPath(event) {\n event.__agGridEventPath = getEventPath(event);\n}\n/**\n * Gets the path for an Event.\n * https://stackoverflow.com/questions/39245488/event-path-undefined-with-firefox-and-vue-js\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event} event\n * @returns {EventTarget[]}\n */\nfunction getEventPath(event) {\n var eventNoType = event;\n if (eventNoType.path) {\n // Chrome supports path\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n // Firefox supports composePath\n return eventNoType.composedPath();\n }\n if (eventNoType.__agGridEventPath) {\n // Firefox supports composePath\n return eventNoType.__agGridEventPath;\n }\n // and finally, if none of the above worked,\n // we create the path ourselves\n return createEventPath(event);\n}\nfunction addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {\n var isPassive = includes(PASSIVE_EVENTS$1, event);\n var options = isPassive ? { passive: true } : undefined;\n // this check is here for certain scenarios where I believe the user must be destroying\n // the grid somehow but continuing for it to be used\n if (frameworkOverrides && frameworkOverrides.addEventListener) {\n frameworkOverrides.addEventListener(eElement, event, listener, options);\n }\n}\n\nvar EventUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n stopPropagationForAgGrid: stopPropagationForAgGrid,\n isStopPropagationForAgGrid: isStopPropagationForAgGrid,\n isEventSupported: isEventSupported,\n getCtrlForEvent: getCtrlForEvent,\n addChangeListener: addChangeListener,\n isElementInEventPath: isElementInEventPath,\n createEventPath: createEventPath,\n addAgGridEventPath: addAgGridEventPath,\n getEventPath: getEventPath,\n addSafePassiveEventListener: addSafePassiveEventListener\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BeanStub = /** @class */ (function () {\n function BeanStub() {\n var _this = this;\n this.destroyFunctions = [];\n this.destroyed = false;\n // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive\n // prevents vue from creating proxies for created objects and prevents identity related issues\n this.__v_skip = true;\n this.isAlive = function () { return !_this.destroyed; };\n }\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean\n BeanStub.prototype.getFrameworkOverrides = function () {\n return this.frameworkOverrides;\n };\n BeanStub.prototype.getContext = function () {\n return this.context;\n };\n BeanStub.prototype.destroy = function () {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n this.destroyFunctions.forEach(function (func) { return func(); });\n this.destroyFunctions.length = 0;\n this.destroyed = true;\n this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });\n };\n BeanStub.prototype.addEventListener = function (eventType, listener) {\n if (!this.localEventService) {\n this.localEventService = new EventService();\n }\n this.localEventService.addEventListener(eventType, listener);\n };\n BeanStub.prototype.removeEventListener = function (eventType, listener) {\n if (this.localEventService) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n };\n BeanStub.prototype.dispatchEventAsync = function (event) {\n var _this = this;\n window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);\n };\n BeanStub.prototype.dispatchEvent = function (event) {\n if (this.localEventService) {\n this.localEventService.dispatchEvent(event);\n }\n };\n BeanStub.prototype.addManagedListener = function (object, event, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n if (object instanceof HTMLElement) {\n addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);\n }\n else {\n object.addEventListener(event, listener);\n }\n var destroyFunc = function () {\n object.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n };\n BeanStub.prototype.addDestroyFunc = function (func) {\n // if we are already destroyed, we execute the func now\n if (this.isAlive()) {\n this.destroyFunctions.push(func);\n }\n else {\n func();\n }\n };\n BeanStub.prototype.createManagedBean = function (bean, context) {\n var res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n };\n BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {\n return (context || this.getContext()).createBean(bean, afterPreCreateCallback);\n };\n BeanStub.prototype.destroyBean = function (bean, context) {\n return (context || this.getContext()).destroyBean(bean);\n };\n BeanStub.prototype.destroyBeans = function (beans, context) {\n var _this = this;\n if (beans) {\n beans.forEach(function (bean) { return _this.destroyBean(bean, context); });\n }\n return [];\n };\n BeanStub.EVENT_DESTROYED = 'destroyed';\n __decorate$2x([\n Autowired('frameworkOverrides')\n ], BeanStub.prototype, \"frameworkOverrides\", void 0);\n __decorate$2x([\n Autowired('context')\n ], BeanStub.prototype, \"context\", void 0);\n __decorate$2x([\n Autowired('eventService')\n ], BeanStub.prototype, \"eventService\", void 0);\n __decorate$2x([\n Autowired('gridOptionsWrapper')\n ], BeanStub.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$2x([\n PreDestroy\n ], BeanStub.prototype, \"destroy\", null);\n return BeanStub;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$9 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups\nvar ColumnFactory = /** @class */ (function (_super) {\n __extends$2U(ColumnFactory, _super);\n function ColumnFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFactory.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ColumnFactory');\n };\n ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {\n // column key creator dishes out unique column id's in a deterministic way,\n // so if we have two grids (that could be master/slave) with same column definitions,\n // then this ensures the two grids use identical id's.\n var columnKeyCreator = new ColumnKeyCreator();\n var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;\n columnKeyCreator.addExistingKeys(existingColKeys);\n // create am unbalanced tree that maps the provided definitions\n var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);\n var treeDept = this.findMaxDept(unbalancedTree, 0);\n this.logger.log('Number of levels for grouped columns is ' + treeDept);\n var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);\n var deptFirstCallback = function (child, parent) {\n if (child instanceof ProvidedColumnGroup) {\n child.setupExpandable();\n }\n // we set the original parents at the end, rather than when we go along, as balancing the tree\n // adds extra levels into the tree. so we can only set parents when balancing is done.\n child.setOriginalParent(parent);\n };\n this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);\n return {\n columnTree: columnTree,\n treeDept: treeDept\n };\n };\n ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {\n var existingCols = [];\n var existingGroups = [];\n var existingColKeys = [];\n if (existingTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {\n if (item instanceof ProvidedColumnGroup) {\n var group = item;\n existingGroups.push(group);\n }\n else {\n var col = item;\n existingColKeys.push(col.getId());\n existingCols.push(col);\n }\n });\n }\n return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };\n };\n ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {\n var _this = this;\n return autoGroupCols.map(function (col) { return _this.createAutoGroupTreeItem(gridBalancedTree, col); });\n };\n ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {\n var dept = this.findDepth(balancedColumnTree);\n // at the end, this will be the top of the tree item.\n var nextChild = column;\n for (var i = dept - 1; i >= 0; i--) {\n var autoGroup = new ProvidedColumnGroup(null, \"FAKE_PATH_\" + column.getId() + \"}_\" + i, true, i);\n this.context.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n // at this point, the nextChild is the top most item in the tree\n return nextChild;\n };\n ColumnFactory.prototype.findDepth = function (balancedColumnTree) {\n var dept = 0;\n var pointer = balancedColumnTree;\n while (pointer && pointer[0] && pointer[0] instanceof ProvidedColumnGroup) {\n dept++;\n pointer = pointer[0].getChildren();\n }\n return dept;\n };\n ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {\n var result = [];\n // go through each child, for groups, recurse a level deeper,\n // for columns we need to pad\n for (var i = 0; i < unbalancedTree.length; i++) {\n var child = unbalancedTree[i];\n if (child instanceof ProvidedColumnGroup) {\n // child is a group, all we do is go to the next level of recursion\n var originalGroup = child;\n var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);\n originalGroup.setChildren(newChildren);\n result.push(originalGroup);\n }\n else {\n // child is a column - so here we add in the padded column groups if needed\n var firstPaddedGroup = void 0;\n var currentPaddedGroup = void 0;\n // this for loop will NOT run any loops if no padded column groups are needed\n for (var j = columnDept - 1; j >= currentDept; j--) {\n var newColId = columnKeyCreator.getUniqueKey(null, null);\n var colGroupDefMerged = this.createMergedColGroupDef(null);\n var paddedGroup = new ProvidedColumnGroup(colGroupDefMerged, newColId, true, currentDept);\n this.context.createBean(paddedGroup);\n if (currentPaddedGroup) {\n currentPaddedGroup.setChildren([paddedGroup]);\n }\n currentPaddedGroup = paddedGroup;\n if (!firstPaddedGroup) {\n firstPaddedGroup = currentPaddedGroup;\n }\n }\n // likewise this if statement will not run if no padded groups\n if (firstPaddedGroup && currentPaddedGroup) {\n result.push(firstPaddedGroup);\n var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof ProvidedColumnGroup; });\n if (hasGroups) {\n currentPaddedGroup.setChildren([child]);\n continue;\n }\n else {\n currentPaddedGroup.setChildren(unbalancedTree);\n break;\n }\n }\n result.push(child);\n }\n }\n return result;\n };\n ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {\n var maxDeptThisLevel = dept;\n for (var i = 0; i < treeChildren.length; i++) {\n var abstractColumn = treeChildren[i];\n if (abstractColumn instanceof ProvidedColumnGroup) {\n var originalGroup = abstractColumn;\n var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);\n if (maxDeptThisLevel < newDept) {\n maxDeptThisLevel = newDept;\n }\n }\n }\n return maxDeptThisLevel;\n };\n ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {\n var _this = this;\n return (defs || []).map(function (def) {\n if (_this.isColumnGroup(def)) {\n return _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);\n }\n else {\n return _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);\n }\n });\n };\n ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {\n var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);\n var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);\n var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);\n var providedGroup;\n if (existingGroup) {\n providedGroup = existingGroup;\n providedGroup.reset(colGroupDefMerged, level);\n removeFromArray(existingGroups, existingGroup);\n }\n else {\n providedGroup = new ProvidedColumnGroup(colGroupDefMerged, groupId, false, level);\n this.context.createBean(providedGroup);\n }\n var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);\n providedGroup.setChildren(children);\n return providedGroup;\n };\n ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {\n var colGroupDefMerged = {};\n Object.assign(colGroupDefMerged, this.gridOptionsWrapper.getDefaultColGroupDef());\n Object.assign(colGroupDefMerged, colGroupDef);\n this.checkForDeprecatedItems(colGroupDefMerged);\n return colGroupDefMerged;\n };\n ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {\n var colDefMerged = this.mergeColDefs(colDef);\n this.checkForDeprecatedItems(colDefMerged);\n // see if column already exists\n var column = this.findExistingColumn(colDef, existingColsCopy);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingColsCopy && column) {\n removeFromArray(existingColsCopy, column);\n }\n if (!column) {\n // no existing column, need to create one\n var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n column.setColDef(colDefMerged, colDef);\n this.applyColumnState(column, colDefMerged);\n }\n return column;\n };\n ColumnFactory.prototype.applyColumnState = function (column, colDef) {\n // flex\n var flex = attrToNumber(colDef.flex);\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = attrToNumber(colDef.width);\n if (width != null) {\n column.setActualWidth(width);\n }\n else {\n // otherwise set the width again, in case min or max width has changed,\n // and width needs to be adjusted.\n var widthBeforeUpdate = column.getActualWidth();\n column.setActualWidth(widthBeforeUpdate);\n }\n }\n // sort - anything but undefined will set sort, thus null or empty string will clear the sort\n if (colDef.sort !== undefined) {\n if (colDef.sort == Constants.SORT_ASC || colDef.sort == Constants.SORT_DESC) {\n column.setSort(colDef.sort);\n }\n else {\n column.setSort(undefined);\n }\n }\n // sorted at - anything but undefined, thus null will clear the sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // hide - anything but undefined, thus null will clear the hide\n var hide = attrToBoolean(colDef.hide);\n if (hide !== undefined) {\n column.setVisible(!hide);\n }\n // pinned - anything but undefined, thus null or empty string will remove pinned\n if (colDef.pinned !== undefined) {\n column.setPinned(colDef.pinned);\n }\n };\n ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {\n return (existingColsCopy || []).find(function (existingCol) {\n var existingColDef = existingCol.getUserProvidedColDef();\n if (!existingColDef) {\n return false;\n }\n var newHasId = newColDef.colId != null;\n var newHasField = newColDef.field != null;\n if (newHasId) {\n return existingCol.getId() === newColDef.colId;\n }\n if (newHasField) {\n return existingColDef.field === newColDef.field;\n }\n // if no id or field present, then try object equivalence.\n if (existingColDef === newColDef) {\n return true;\n }\n return false;\n });\n };\n ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {\n return existingGroups.find(function (existingGroup) {\n var existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n return false;\n }\n var newHasId = newGroupDef.groupId != null;\n if (newHasId) {\n return existingGroup.getId() === newGroupDef.groupId;\n }\n return false;\n });\n };\n ColumnFactory.prototype.mergeColDefs = function (colDef) {\n // start with empty merged definition\n var colDefMerged = {};\n // merge properties from default column definitions\n var defaultColDef = this.gridOptionsWrapper.getDefaultColDef();\n mergeDeep(colDefMerged, defaultColDef, false, true);\n // merge properties from column type properties\n var columnType = colDef.type;\n if (!columnType) {\n columnType = defaultColDef && defaultColDef.type;\n }\n // if type of both colDef and defaultColDef, then colDef gets preference\n if (columnType) {\n this.assignColumnTypes(columnType, colDefMerged);\n }\n // merge properties from column definitions\n mergeDeep(colDefMerged, colDef, false, true);\n var autoGroupColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n var isSortingCoupled = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n if (colDef.rowGroup && autoGroupColDef && isSortingCoupled) {\n // override the sort for row group columns where the autoGroupColDef defines these values.\n mergeDeep(colDefMerged, { sort: autoGroupColDef.sort, initialSort: autoGroupColDef.initialSort }, false, true);\n }\n return colDefMerged;\n };\n ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {\n var typeKeys = [];\n if (type instanceof Array) {\n var invalidArray = type.some(function (a) { return typeof a !== 'string'; });\n if (invalidArray) {\n console.warn(\"AG Grid: if colDef.type is supplied an array it should be of type 'string[]'\");\n }\n else {\n typeKeys = type;\n }\n }\n else if (typeof type === 'string') {\n typeKeys = type.split(',');\n }\n else {\n console.warn(\"AG Grid: colDef.type should be of type 'string' | 'string[]'\");\n return;\n }\n // merge user defined with default column types\n var allColumnTypes = Object.assign({}, DefaultColumnTypes);\n var userTypes = this.gridOptionsWrapper.getColumnTypes() || {};\n iterateObject(userTypes, function (key, value) {\n if (key in allColumnTypes) {\n console.warn(\"AG Grid: the column type '\" + key + \"' is a default column type and cannot be overridden.\");\n }\n else {\n allColumnTypes[key] = value;\n }\n });\n typeKeys.forEach(function (t) {\n var typeColDef = allColumnTypes[t.trim()];\n if (typeColDef) {\n mergeDeep(colDefMerged, typeColDef, false, true);\n }\n else {\n console.warn(\"AG Grid: colDef.type '\" + t + \"' does not correspond to defined gridOptions.columnTypes\");\n }\n });\n };\n ColumnFactory.prototype.checkForDeprecatedItems = function (colDef) {\n if (colDef) {\n var colDefNoType = colDef; // take out the type, so we can access attributes not defined in the type\n if (colDefNoType.group !== undefined) {\n console.warn('AG Grid: colDef.group is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroup !== undefined) {\n console.warn('AG Grid: colDef.headerGroup is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroupShow !== undefined) {\n console.warn('AG Grid: colDef.headerGroupShow is invalid, should be columnGroupShow, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.suppressRowGroup !== undefined) {\n console.warn('AG Grid: colDef.suppressRowGroup is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressAggregation !== undefined) {\n console.warn('AG Grid: colDef.suppressAggregation is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressRowGroup || colDefNoType.suppressAggregation) {\n console.warn('AG Grid: colDef.suppressAggregation and colDef.suppressRowGroup are deprecated, use allowRowGroup, allowPivot and allowValue instead');\n }\n if (colDefNoType.displayName) {\n console.warn(\"AG Grid: Found displayName \" + colDefNoType.displayName + \", please use headerName instead, displayName is deprecated.\");\n colDefNoType.headerName = colDefNoType.displayName;\n }\n }\n };\n // if object has children, we assume it's a group\n ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {\n return abstractColDef.children !== undefined;\n };\n __decorate$2w([\n Autowired('columnUtils')\n ], ColumnFactory.prototype, \"columnUtils\", void 0);\n __decorate$2w([\n __param$9(0, Qualifier('loggerFactory'))\n ], ColumnFactory.prototype, \"setBeans\", null);\n ColumnFactory = __decorate$2w([\n Bean('columnFactory')\n ], ColumnFactory);\n return ColumnFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Events = /** @class */ (function () {\n function Events() {\n }\n /** Everything has changed with the columns. Either complete new set of columns set, or user called setState() */\n /** @deprecated - grid no longer uses this, and setSate() also fires individual events */\n Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';\n /** User has set in new columns. */\n Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';\n /** The pivot mode flag was changed */\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';\n /** A row group column was added, removed or order changed. */\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n /** expandAll / collapseAll was called from the api. */\n Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';\n /** A pivot column was added, removed or order changed. */\n Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';\n /** The list of grid columns has changed. */\n Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';\n /** A value column was added, removed or agg function was changed. */\n Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';\n /** A column was moved */\n Events.EVENT_COLUMN_MOVED = 'columnMoved';\n /** One or more columns was shown / hidden */\n Events.EVENT_COLUMN_VISIBLE = 'columnVisible';\n /** One or more columns was pinned / unpinned*/\n Events.EVENT_COLUMN_PINNED = 'columnPinned';\n /** A column group was opened / closed */\n Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';\n /** One or more columns was resized. If just one, the column in the event is set. */\n Events.EVENT_COLUMN_RESIZED = 'columnResized';\n /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */\n Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';\n /** The list of virtual columns has changed, results from viewport changing */\n Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';\n /** Async Transactions Executed */\n Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';\n /** A row group was opened / closed */\n Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';\n /** @deprecated use EVENT_ROW_DATA_UPDATED instead */\n Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';\n /** The client has updated data for the grid */\n Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';\n /** The client has set new floating data into the grid */\n Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';\n /** Range selection has changed */\n Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';\n /** Chart was created */\n Events.EVENT_CHART_CREATED = 'chartCreated';\n /** Chart Range selection has changed */\n Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';\n /** Chart Options have changed */\n Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';\n /** Chart was destroyed */\n Events.EVENT_CHART_DESTROYED = 'chartDestroyed';\n /** For when the tool panel is shown / hidden */\n Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';\n Events.EVENT_TOOL_PANEL_SIZE_CHANGED = 'toolPanelSizeChanged';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START = 'columnPanelItemDragStart';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END = 'columnPanelItemDragEnd';\n /** Model was updated - grid updates the drawn rows when this happens */\n Events.EVENT_MODEL_UPDATED = 'modelUpdated';\n Events.EVENT_PASTE_START = 'pasteStart';\n Events.EVENT_PASTE_END = 'pasteEnd';\n Events.EVENT_FILL_START = 'fillStart';\n Events.EVENT_FILL_END = 'fillEnd';\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START = 'keyShortcutChangedCellStart';\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END = 'keyShortcutChangedCellEnd';\n Events.EVENT_CELL_CLICKED = 'cellClicked';\n Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';\n Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';\n Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';\n Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';\n Events.EVENT_CELL_EDIT_REQUEST = 'cellEditRequest';\n Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';\n Events.EVENT_CELL_FOCUSED = 'cellFocused';\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';\n Events.EVENT_ROW_SELECTED = 'rowSelected';\n Events.EVENT_SELECTION_CHANGED = 'selectionChanged';\n Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\n Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';\n Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';\n Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';\n /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */\n Events.EVENT_FILTER_CHANGED = 'filterChanged';\n /** Filter was change but not applied. Only useful if apply buttons are used in filters. */\n Events.EVENT_FILTER_MODIFIED = 'filterModified';\n Events.EVENT_FILTER_OPENED = 'filterOpened';\n Events.EVENT_SORT_CHANGED = 'sortChanged';\n /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */\n Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';\n Events.EVENT_ROW_CLICKED = 'rowClicked';\n Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';\n /** Gets called once after the grid has finished initialising. */\n Events.EVENT_GRID_READY = 'gridReady';\n /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's\n * changed, so always filling the space it was given. */\n Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';\n /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */\n Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';\n /* The width of the scrollbar has been calculated */\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';\n /** Rows were rendered for the first time (ie on async data load). */\n Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';\n /** A column drag has started, either resizing a column or moving a column. */\n Events.EVENT_DRAG_STARTED = 'dragStarted';\n /** A column drag has stopped */\n Events.EVENT_DRAG_STOPPED = 'dragStopped';\n Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';\n Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';\n Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';\n Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';\n Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';\n /** Main body of grid has scrolled, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL = 'bodyScroll';\n /** Main body of the grid has stopped scrolling, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL_END = 'bodyScrollEnd';\n Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';\n /** The displayed page for pagination has changed. For example the data was filtered or sorted,\n * or the user has moved to a different page. */\n Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';\n /** Only used by React, Angular, Web Components and VueJS AG Grid components\n * (not used if doing plain JavaScript). If the grid receives changes due\n * to bound properties, this event fires after the grid has finished processing the change. */\n Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';\n /***************************** INTERNAL EVENTS: START ******************************************* */\n /** Please remember to add to ComponentUtil.EXCLUDED_INTERNAL_EVENTS to not have these events exposed to framework components. */\n /** All items from here down are used internally by the grid, not intended for external use. */\n // not documented, either experimental, or we just don't want users using an depending on them\n Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';\n Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';\n Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';\n Events.EVENT_FLASH_CELLS = 'flashCells';\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';\n Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';\n Events.EVENT_HEADER_HEIGHT_CHANGED = 'headerHeightChanged';\n Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED = 'columnHeaderHeightChanged';\n Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';\n Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';\n Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';\n Events.EVENT_ROW_DRAG_END = 'rowDragEnd';\n // primarily for charts\n Events.EVENT_POPUP_TO_FRONT = 'popupToFront';\n // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is\n // to design these better around server side functions and then release to general public when fully working with\n // all the row models.\n Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';\n Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';\n Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';\n Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';\n Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';\n Events.EVENT_MOUSE_FOCUS = 'mouseFocus';\n Events.EVENT_STORE_UPDATED = 'storeUpdated';\n return Events;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// class returns unique instance id's for columns.\n// eg, the following calls (in this order) will result in:\n//\n// getInstanceIdForKey('country') => 0\n// getInstanceIdForKey('country') => 1\n// getInstanceIdForKey('country') => 2\n// getInstanceIdForKey('country') => 3\n// getInstanceIdForKey('age') => 0\n// getInstanceIdForKey('age') => 1\n// getInstanceIdForKey('country') => 4\nvar GroupInstanceIdCreator = /** @class */ (function () {\n function GroupInstanceIdCreator() {\n // this map contains keys to numbers, so we remember what the last call was\n this.existingIds = {};\n }\n GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {\n var lastResult = this.existingIds[key];\n var result;\n if (typeof lastResult !== 'number') {\n // first time this key\n result = 0;\n }\n else {\n result = lastResult + 1;\n }\n this.existingIds[key] = result;\n return result;\n };\n return GroupInstanceIdCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar reUnescapedHtml = /[&<>\"']/g;\n/**\n * HTML Escapes.\n */\nvar HTML_ESCAPES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n/**\n * It encodes any string in UTF-8 format\n * taken from https://github.com/mathiasbynens/utf8.js\n * @param {string} s\n * @returns {string}\n */\nfunction utf8_encode(s) {\n var stringFromCharCode = String.fromCharCode;\n function ucs2decode(string) {\n var output = [];\n if (!string) {\n return [];\n }\n var len = string.length;\n var counter = 0;\n var value;\n var extra;\n while (counter < len) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < len) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n }\n else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n }\n else {\n output.push(value);\n }\n }\n return output;\n }\n function checkScalarValue(point) {\n if (point >= 0xD800 && point <= 0xDFFF) {\n throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +\n ' is not a scalar value');\n }\n }\n function createByte(point, shift) {\n return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);\n }\n function encodeCodePoint(point) {\n if ((point >= 0 && point <= 31 && point !== 10)) {\n var convertedCode = point.toString(16).toUpperCase();\n var paddedCode = convertedCode.padStart(4, '0');\n return \"_x\" + paddedCode + \"_\";\n }\n if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence\n return stringFromCharCode(point);\n }\n var symbol = '';\n if ((point & 0xFFFFF800) == 0) { // 2-byte sequence\n symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);\n }\n else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence\n checkScalarValue(point);\n symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);\n symbol += createByte(point, 6);\n }\n else if ((point & 0xFFE00000) == 0) { // 4-byte sequence\n symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);\n symbol += createByte(point, 12);\n symbol += createByte(point, 6);\n }\n symbol += stringFromCharCode((point & 0x3F) | 0x80);\n return symbol;\n }\n var codePoints = ucs2decode(s);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint);\n }\n return byteString;\n}\n/**\n * Converts a camelCase string into hyphenated string\n * from https://gist.github.com/youssman/745578062609e8acac9f\n * @param {string} str\n * @return {string}\n */\nfunction camelCaseToHyphen(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/([A-Z])/g, function (g) { return '-' + g[0].toLowerCase(); });\n}\n/**\n * Converts a hyphenated string into camelCase string\n * from https://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase\n * @param {string} str\n * @return {string}\n */\nfunction hyphenToCamelCase(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\n}\nfunction capitalise(str) {\n return str[0].toUpperCase() + str.substr(1).toLowerCase();\n}\nfunction escapeString(toEscape, skipEscapingHtmlChars) {\n if (toEscape == null) {\n return null;\n }\n // we call toString() twice, in case value is an object, where user provides\n // a toString() method, and first call to toString() returns back something other\n // than a string (eg a number to render)\n var stringResult = toEscape.toString().toString();\n if (skipEscapingHtmlChars) {\n return stringResult;\n }\n // in react we don't need to escape html characters, as it's done by the framework\n return stringResult.replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });\n}\n/**\n * Converts a camelCase string into regular text\n * from: https://stackoverflow.com/questions/15369566/putting-space-in-camel-case-string-using-regular-expression\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;\n var words = camelCase.replace(rex, '$1$4 $2$3$5').replace('.', ' ').split(' ');\n return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');\n}\n\nvar StringUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n utf8_encode: utf8_encode,\n camelCaseToHyphen: camelCaseToHyphen,\n hyphenToCamelCase: hyphenToCamelCase,\n capitalise: capitalise,\n escapeString: escapeString,\n camelCaseToHumanText: camelCaseToHumanText\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToMap(arr) {\n var map = new Map();\n arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });\n return map;\n}\n// handy for organising a list into a map, where each item is mapped by an attribute, eg mapping Columns by ID\nfunction mapById(arr, callback) {\n var map = new Map();\n arr.forEach(function (item) { return map.set(callback(item), item); });\n return map;\n}\nfunction keys(map) {\n var arr = [];\n map.forEach(function (_, key) { return arr.push(key); });\n return arr;\n}\n\nvar MapUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToMap: convertToMap,\n mapById: mapById,\n keys: keys\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$j = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$p(arguments[i]));\n return ar;\n};\nvar ColDefUtil = /** @class */ (function () {\n function ColDefUtil() {\n }\n ColDefUtil.STRING_PROPERTIES = [\n 'headerName',\n 'columnGroupShow',\n 'headerClass',\n 'toolPanelClass',\n 'headerValueGetter',\n 'pivotKeys',\n 'groupId',\n 'colId',\n 'sort',\n 'initialSort',\n 'field',\n 'type',\n 'tooltipComponent',\n 'tooltipField',\n 'headerTooltip',\n 'cellClass',\n 'showRowGroup',\n 'filter',\n 'initialAggFunc',\n 'defaultAggFunc',\n 'aggFunc',\n 'pinned',\n 'initialPinned',\n 'chartDataType',\n 'cellEditorPopupPosition'\n ];\n ColDefUtil.OBJECT_PROPERTIES = [\n 'headerGroupComponent',\n 'headerGroupComponentFramework',\n 'headerGroupComponentParams',\n 'cellStyle',\n 'cellRenderer',\n 'cellRendererParams',\n 'cellRendererFramework',\n 'cellEditor',\n 'cellEditorFramework',\n 'cellEditorParams',\n 'pinnedRowCellRendererFramework',\n 'pinnedRowCellRendererParams',\n 'filterFramework',\n 'filterParams',\n 'pivotValueColumn',\n 'headerComponent',\n 'headerComponentFramework',\n 'headerComponentParams',\n 'floatingFilterComponent',\n 'floatingFilterComponentParams',\n 'floatingFilterComponentFramework',\n 'tooltipComponent',\n 'tooltipComponentParams',\n 'tooltipComponentFramework',\n 'refData',\n 'columnsMenuParams'\n ];\n ColDefUtil.ARRAY_PROPERTIES = [\n 'children',\n 'sortingOrder',\n 'allowedAggFuncs',\n 'menuTabs',\n 'pivotTotalColumnIds',\n 'cellClassRules',\n 'icons'\n ];\n ColDefUtil.NUMBER_PROPERTIES = [\n 'sortedAt',\n 'sortIndex',\n 'initialSortIndex',\n 'flex',\n 'initialFlex',\n 'width',\n 'initialWidth',\n 'minWidth',\n 'maxWidth',\n 'rowGroupIndex',\n 'initialRowGroupIndex',\n 'pivotIndex',\n 'initialPivotIndex'\n ];\n ColDefUtil.BOOLEAN_PROPERTIES = [\n 'suppressCellFlash',\n 'suppressColumnsToolPanel',\n 'suppressFiltersToolPanel',\n 'openByDefault',\n 'marryChildren',\n 'hide',\n 'initialHide',\n 'rowGroup',\n 'initialRowGroup',\n 'pivot',\n 'initialPivot',\n 'checkboxSelection',\n 'showDisabledCheckboxes',\n 'headerCheckboxSelection',\n 'headerCheckboxSelectionFilteredOnly',\n 'suppressMenu',\n 'suppressMovable',\n 'lockPosition',\n 'lockVisible',\n 'lockPinned',\n 'unSortIcon',\n 'suppressSizeToFit',\n 'suppressAutoSize',\n 'enableRowGroup',\n 'enablePivot',\n 'enableValue',\n 'editable',\n 'suppressPaste',\n 'suppressNavigable',\n 'enableCellChangeFlash',\n 'rowDrag',\n 'dndSource',\n 'autoHeight',\n 'wrapText',\n 'sortable',\n 'resizable',\n 'singleClickEdit',\n 'floatingFilter',\n 'cellEditorPopup',\n 'suppressFillHandle',\n 'wrapHeaderText',\n 'autoHeaderHeight'\n ];\n ColDefUtil.FUNCTION_PROPERTIES = [\n 'dndSourceOnRowDrag',\n 'valueGetter',\n 'valueSetter',\n 'filterValueGetter',\n 'keyCreator',\n 'pinnedRowCellRenderer',\n 'valueFormatter',\n 'pinnedRowValueFormatter',\n 'valueParser',\n 'comparator',\n 'equals',\n 'pivotComparator',\n 'suppressKeyboardEvent',\n 'suppressHeaderKeyboardEvent',\n 'colSpan',\n 'rowSpan',\n 'getQuickFilterText',\n 'newValueHandler',\n 'onCellValueChanged',\n 'onCellClicked',\n 'onCellDoubleClicked',\n 'onCellContextMenu',\n 'rowDragText',\n 'tooltipValueGetter',\n 'tooltipComponent',\n 'tooltipComponentFramework',\n 'cellRendererSelector',\n 'cellEditorSelector'\n ];\n ColDefUtil.ALL_PROPERTIES = __spread$j(ColDefUtil.ARRAY_PROPERTIES, ColDefUtil.OBJECT_PROPERTIES, ColDefUtil.STRING_PROPERTIES, ColDefUtil.NUMBER_PROPERTIES, ColDefUtil.FUNCTION_PROPERTIES, ColDefUtil.BOOLEAN_PROPERTIES);\n // used when doing property checks - this causes noise when using frameworks which can add their own fw specific\n // properties to colDefs, gridOptions etc\n ColDefUtil.FRAMEWORK_PROPERTIES = [\n '__ob__',\n '__v_skip',\n '__metadata__',\n 'mappedColumnProperties',\n 'hasChildColumns',\n 'toColDef',\n 'createColDefFromGridColumn'\n ];\n return ColDefUtil;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$i = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$o(arguments[i]));\n return ar;\n};\n/**\n * These keys are used for validating properties supplied on a gridOptions object, and for code generation.\n * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.\n */\nvar PropertyKeys = /** @class */ (function () {\n function PropertyKeys() {\n }\n PropertyKeys.STRING_PROPERTIES = [\n 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',\n 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDelimiter', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'serverSideStoreType', 'groupDisplayType', 'treeDataDisplayType', 'colResizeDefault'\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',\n 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',\n 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',\n 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'statusBar', 'sideBar', 'chartThemeOverrides',\n 'customChartThemes', 'chartToolPanelsDef'\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'sortingOrder', 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes', 'rowClass'\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'serverSideInitialRowCount', 'scrollbarWidth',\n 'batchUpdateWaitMillis', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',\n 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressCellFocus', 'suppressHorizontalScroll',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions',\n 'angularCompileRows', 'angularCompileFilters', 'groupSuppressAutoColumn', 'groupSelectsChildren', 'groupIncludeFooter',\n 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection',\n 'unSortIcon', 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',\n 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns',\n 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',\n 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu',\n 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressRowGroupHidesColumns', 'suppressMiddleClickScrolls',\n 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'copyGroupHeadersToClipboard',\n 'pivotMode', 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',\n 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',\n 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag',\n 'suppressMoveWhenRowDragging', 'rowDragMultiRow', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',\n 'suppressPaginationPanel', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',\n 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'suppressScrollWhenPopupsAreOpen',\n 'purgeClosedRowNodes', 'cacheQuickFilter', 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection',\n 'valueCache', 'valueCacheNeverExpires', 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport',\n 'suppressCsvExport', 'treeData', 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown',\n 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick', 'suppressEnterpriseResetOnNewColumns',\n 'suppressRowHoverHighlight', 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste',\n 'suppressSetColumnStateEvents', 'suppressColumnStateEvents', 'enableCharts', 'enableChartToolPanelsButton', 'deltaColumnMode',\n 'suppressMaintainUnsortedOrder', 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',\n 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',\n 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData', 'immutableColumns', 'pivotSuppressAutoColumn',\n 'suppressExpandablePivotGroups', 'applyColumnDefOrder', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilteringAlwaysResets', 'serverSideSortingAlwaysResets', 'serverSideSortAllLevels', 'serverSideFilterAllLevels',\n 'serverSideSortOnServer', 'serverSideFilterOnServer', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi',\n 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus', 'maintainColumnOrder', 'groupMaintainOrder',\n 'columnHoverHighlight', 'reactUi', 'suppressReactUi', 'readOnlyEdit', 'suppressRowVirtualisation', 'enableCellEditingOnBackspace',\n 'resetRowDataOnUpdate', 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges',\n 'groupRowsSticky', 'serverSideInfiniteScroll', 'rowGroupPanelSuppressSort', 'allowShowChangeAfterFilter'\n ];\n /** You do not need to include event callbacks in this list, as they are generated automatically. */\n PropertyKeys.FUNCTIONAL_PROPERTIES = [\n 'localeTextFunc', 'doesExternalFilterPass', 'groupRowAggNodes', 'isFullWidthCell', 'processSecondaryColDef', 'processSecondaryColGroupDef', 'processPivotResultColDef',\n 'processPivotResultColGroupDef', 'getBusinessKeyForNode', 'isRowSelectable', 'postSort', 'defaultGroupSortComparator', 'defaultGroupOrderComparator', 'rowDragText',\n 'groupRowInnerRenderer', 'groupRowInnerRendererFramework', 'groupRowRenderer', 'groupRowRendererFramework', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework',\n 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent', 'noRowsOverlayComponentFramework',\n 'detailCellRenderer', 'detailCellRendererFramework'\n ];\n PropertyKeys.CALLBACK_PROPERTIES = [\n 'getLocaleText', 'isExternalFilterPresent', 'getRowHeight', 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems',\n 'processRowPostCreate', 'processCellForClipboard', 'getGroupRowAgg', 'getRowNodeId', 'isFullWidthRow',\n 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',\n 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath', 'isRowMaster', 'postSortRows', 'processHeaderForClipboard',\n 'processGroupHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup', 'suppressKeyboardEvent',\n 'createChartContainer', 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'getServerSideGroupLevelParams',\n 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault', 'initialGroupOrderComparator',\n 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'\n ];\n PropertyKeys.FUNCTION_PROPERTIES = __spread$i(PropertyKeys.FUNCTIONAL_PROPERTIES, PropertyKeys.CALLBACK_PROPERTIES);\n PropertyKeys.ALL_PROPERTIES = __spread$i(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);\n /**\n * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own\n * framework-specific properties to colDefs, gridOptions etc.\n */\n PropertyKeys.FRAMEWORK_PROPERTIES = [\n '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'\n ];\n return PropertyKeys;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$h = (undefined && undefined.__assign) || function () {\n __assign$h = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$h.apply(this, arguments);\n};\nvar __read$n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$h = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$n(arguments[i]));\n return ar;\n};\nvar ComponentUtil = /** @class */ (function () {\n function ComponentUtil() {\n }\n ComponentUtil.getEventCallbacks = function () {\n if (!ComponentUtil.EVENT_CALLBACKS) {\n ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });\n }\n return ComponentUtil.EVENT_CALLBACKS;\n };\n ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, skipEventDeprecationCheck) {\n // create empty grid options if none were passed\n if (typeof gridOptions !== 'object') {\n gridOptions = {};\n }\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return typeof component[key] !== 'undefined'; };\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (keyExists('groupAggFiltering') && typeof component.groupAggFiltering !== 'function') {\n pGridOptions.groupAggFiltering = ComponentUtil.toBoolean(component.groupAggFiltering);\n delete component.groupAggFiltering;\n }\n // add in all the simple properties\n __spread$h(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = component[key]; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(component[key]); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(component[key]); });\n return gridOptions;\n };\n ComponentUtil.getCallbackForEvent = function (eventName) {\n if (!eventName || eventName.length < 2) {\n return eventName;\n }\n return 'on' + eventName[0].toUpperCase() + eventName.substr(1);\n };\n ComponentUtil.processOnChange = function (changes, gridOptions, api, columnApi) {\n if (!changes) {\n return;\n }\n var changesToApply = __assign$h({}, changes);\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return changesToApply[key]; };\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (keyExists('groupAggFiltering')) {\n if (typeof changesToApply.groupAggFiltering === 'function') {\n pGridOptions.groupAggFiltering = changesToApply.groupAggFiltering;\n }\n else {\n pGridOptions.groupAggFiltering = ComponentUtil.toBoolean(changesToApply.groupAggFiltering);\n }\n delete changesToApply.groupAggFiltering;\n }\n if (keyExists('groupDisplayType')) {\n if (typeof changesToApply.groupDisplayType.currentValue === 'string') {\n api.setGroupDisplayType(changesToApply.groupDisplayType.currentValue);\n delete changesToApply.groupDisplayType;\n }\n }\n // ********* CODE ORDER TO AVOID BUGS *************** //\n // If you want to call an update method that just calls through to gridOptionsWrapper.setProperty then it needs to be\n // called before the values get copied across otherwise the change will not fire an event because the method\n // gridOptionsWrapper.setProperty does a diff check first.\n // All these manual calls are required in the current setup as changes to these properties are being listened to in the \n // rest of the code base which can be found by searching for: \"addManagedListener(this.gridOptionsWrapper\"\n if (changesToApply.domLayout) {\n api.setDomLayout(changesToApply.domLayout.currentValue);\n delete changesToApply.domLayout;\n }\n if (changesToApply.rowClass) {\n api.setRowClass(changesToApply.rowClass.currentValue);\n delete changesToApply.rowClass;\n }\n if (changesToApply.paginationPageSize) {\n api.paginationSetPageSize(ComponentUtil.toNumber(changesToApply.paginationPageSize.currentValue));\n delete changesToApply.paginationPageSize;\n }\n if (changesToApply.rowGroupPanelShow) {\n api.setRowGroupPanelShow(changesToApply.rowGroupPanelShow.currentValue);\n delete changesToApply.rowGroupPanelShow;\n }\n if (changesToApply.groupRemoveSingleChildren) {\n api.setGroupRemoveSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveSingleChildren.currentValue));\n delete changesToApply.groupRemoveSingleChildren;\n }\n if (changesToApply.groupRemoveLowestSingleChildren) {\n api.setGroupRemoveLowestSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveLowestSingleChildren.currentValue));\n delete changesToApply.groupRemoveLowestSingleChildren;\n }\n if (changesToApply.suppressRowDrag) {\n api.setSuppressRowDrag(ComponentUtil.toBoolean(changesToApply.suppressRowDrag.currentValue));\n delete changesToApply.suppressRowDrag;\n }\n if (changesToApply.suppressMoveWhenRowDragging) {\n api.setSuppressMoveWhenRowDragging(ComponentUtil.toBoolean(changesToApply.suppressMoveWhenRowDragging.currentValue));\n delete changesToApply.suppressMoveWhenRowDragging;\n }\n if (changesToApply.suppressRowClickSelection) {\n api.setSuppressRowClickSelection(ComponentUtil.toBoolean(changesToApply.suppressRowClickSelection.currentValue));\n delete changesToApply.suppressRowClickSelection;\n }\n if (changesToApply.suppressClipboardPaste) {\n api.setSuppressClipboardPaste(ComponentUtil.toBoolean(changesToApply.suppressClipboardPaste.currentValue));\n delete changesToApply.suppressClipboardPaste;\n }\n if (changesToApply.headerHeight) {\n api.setHeaderHeight(ComponentUtil.toNumber(changesToApply.headerHeight.currentValue));\n delete changesToApply.headerHeight;\n }\n if (changesToApply.pivotHeaderHeight) {\n api.setPivotHeaderHeight(ComponentUtil.toNumber(changesToApply.pivotHeaderHeight.currentValue));\n delete changesToApply.pivotHeaderHeight;\n }\n if (changesToApply.groupHeaderHeight) {\n api.setGroupHeaderHeight(ComponentUtil.toNumber(changesToApply.groupHeaderHeight.currentValue));\n delete changesToApply.groupHeaderHeight;\n }\n if (changesToApply.pivotGroupHeaderHeight) {\n api.setPivotGroupHeaderHeight(ComponentUtil.toNumber(changesToApply.pivotGroupHeaderHeight.currentValue));\n delete changesToApply.pivotGroupHeaderHeight;\n }\n if (changesToApply.floatingFiltersHeight) {\n api.setFloatingFiltersHeight(ComponentUtil.toNumber(changesToApply.floatingFiltersHeight.currentValue));\n delete changesToApply.floatingFiltersHeight;\n }\n if (changesToApply.functionsReadOnly) {\n api.setFunctionsReadOnly(ComponentUtil.toBoolean(changesToApply.functionsReadOnly.currentValue));\n delete changesToApply.functionsReadOnly;\n }\n // ********* CODE ORDER TO AVOID BUGS *************** //\n // check if any change for the simple types, and if so, then just copy in the new value\n __spread$h(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = changesToApply[key].currentValue; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(changesToApply[key].currentValue); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(changesToApply[key].currentValue); });\n // ********* CODE ORDER TO AVOID BUGS *************** //\n // The following manual updates call directly into code models and rely on the simple copy being made by the\n // code above to keep gridOptions in sync with the change.\n if (changesToApply.enableCellTextSelection) {\n api.setEnableCellTextSelection(ComponentUtil.toBoolean(changesToApply.enableCellTextSelection.currentValue));\n delete changesToApply.enableCellTextSelection;\n }\n if (changesToApply.quickFilterText) {\n api.setQuickFilter(changesToApply.quickFilterText.currentValue);\n delete changesToApply.quickFilterText;\n }\n if (changesToApply.autoGroupColumnDef) {\n api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.autoGroupColumnDef;\n }\n if (changesToApply.columnDefs) {\n api.setColumnDefs(changesToApply.columnDefs.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnDefs;\n }\n if (changesToApply.defaultColDef) {\n api.setDefaultColDef(changesToApply.defaultColDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.defaultColDef;\n }\n if (changesToApply.pivotMode) {\n columnApi.setPivotMode(ComponentUtil.toBoolean(changesToApply.pivotMode.currentValue));\n delete changesToApply.pivotMode;\n }\n // any remaining properties can be set in a generic way\n // ie the setter takes the form of setXXX and the argument requires no formatting/translation first\n var dynamicApi = api;\n Object.keys(changesToApply)\n .forEach(function (property) {\n var setterName = \"set\" + property.charAt(0).toUpperCase() + property.substring(1);\n if (dynamicApi[setterName]) {\n dynamicApi[setterName](changes[property].currentValue);\n }\n });\n // copy changes into an event for dispatch\n var event = {\n type: Events.EVENT_COMPONENT_STATE_CHANGED\n };\n iterateObject(changes, function (key, value) {\n event[key] = value;\n });\n api.dispatchEvent(event);\n };\n ComponentUtil.toBoolean = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // for boolean, compare to empty String to allow attributes appearing with\n // no value to be treated as 'true'\n return value.toUpperCase() === 'TRUE' || value == '';\n }\n return false;\n };\n ComponentUtil.toNumber = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n };\n // all the events are populated in here AFTER this class (at the bottom of the file).\n ComponentUtil.EVENTS = [];\n // events that are available for use by users of AG Grid and so should be documented\n ComponentUtil.PUBLIC_EVENTS = [];\n // events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components\n ComponentUtil.EXCLUDED_INTERNAL_EVENTS = [];\n ComponentUtil.STRING_PROPERTIES = PropertyKeys.STRING_PROPERTIES;\n ComponentUtil.OBJECT_PROPERTIES = PropertyKeys.OBJECT_PROPERTIES;\n ComponentUtil.ARRAY_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES;\n ComponentUtil.NUMBER_PROPERTIES = PropertyKeys.NUMBER_PROPERTIES;\n ComponentUtil.BOOLEAN_PROPERTIES = PropertyKeys.BOOLEAN_PROPERTIES;\n ComponentUtil.FUNCTION_PROPERTIES = PropertyKeys.FUNCTION_PROPERTIES;\n ComponentUtil.ALL_PROPERTIES = PropertyKeys.ALL_PROPERTIES;\n return ComponentUtil;\n}());\nComponentUtil.EVENTS = values(Events);\n/** Exclude the following internal events from code generation to prevent exposing these events via framework components */\nComponentUtil.EXCLUDED_INTERNAL_EVENTS = [\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED,\n Events.EVENT_CHECKBOX_CHANGED,\n Events.EVENT_HEIGHT_SCALE_CHANGED,\n Events.EVENT_BODY_HEIGHT_CHANGED,\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n Events.EVENT_COLUMN_HOVER_CHANGED,\n Events.EVENT_FLASH_CELLS,\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED,\n Events.EVENT_DISPLAYED_ROWS_CHANGED,\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED,\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED,\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED,\n Events.EVENT_POPUP_TO_FRONT,\n Events.EVENT_KEYBOARD_FOCUS,\n Events.EVENT_MOUSE_FOCUS,\n Events.EVENT_STORE_UPDATED,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END,\n Events.EVENT_FILL_START,\n Events.EVENT_FILL_END,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END,\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n Events.EVENT_HEADER_HEIGHT_CHANGED,\n Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED\n];\n/** EVENTS that should be exposed via code generation for the framework components. */\nComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(function (e) { return !includes(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e); });\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar SideBarDefParser = /** @class */ (function () {\n function SideBarDefParser() {\n }\n SideBarDefParser.parse = function (toParse) {\n if (!toParse) {\n return null;\n }\n if (toParse === true) {\n return {\n toolPanels: [\n SideBarDefParser.DEFAULT_COLUMN_COMP,\n SideBarDefParser.DEFAULT_FILTER_COMP,\n ],\n defaultToolPanel: 'columns'\n };\n }\n if (typeof toParse === 'string') {\n return SideBarDefParser.parse([toParse]);\n }\n if (Array.isArray(toParse)) {\n var comps_1 = [];\n toParse.forEach(function (key) {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + key + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n comps_1.push(lookupResult);\n });\n if (comps_1.length === 0) {\n return null;\n }\n return {\n toolPanels: comps_1,\n defaultToolPanel: comps_1[0].id\n };\n }\n var result = {\n toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),\n defaultToolPanel: toParse.defaultToolPanel,\n hiddenByDefault: toParse.hiddenByDefault,\n position: toParse.position\n };\n return result;\n };\n SideBarDefParser.parseComponents = function (from) {\n var result = [];\n if (!from) {\n return result;\n }\n from.forEach(function (it) {\n var toAdd = null;\n if (typeof it === 'string') {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + it + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n toAdd = lookupResult;\n }\n else {\n toAdd = it;\n }\n result.push(toAdd);\n });\n return result;\n };\n SideBarDefParser.DEFAULT_COLUMN_COMP = {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n };\n SideBarDefParser.DEFAULT_FILTER_COMP = {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n };\n SideBarDefParser.DEFAULT_BY_KEY = {\n columns: SideBarDefParser.DEFAULT_COLUMN_COMP,\n filters: SideBarDefParser.DEFAULT_FILTER_COMP\n };\n return SideBarDefParser;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __values$5 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * These variables are lazy loaded, as otherwise they try and get initialised when we are loading\n * unit tests and we don't have references to window or document in the unit tests\n * from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n */\nvar isSafari;\nvar isIE;\nvar isEdge;\nvar isChrome;\nvar isFirefox;\nvar isMacOs;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nvar browserInfo;\n/**\n * from https://stackoverflow.com/a/16938481/1388233\n */\nfunction getBrowserInfo() {\n if (browserInfo) {\n return browserInfo;\n }\n var userAgent = navigator.userAgent;\n var match = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n var tem;\n var version;\n if (/trident/i.test(match[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n version = tem[1] != null ? parseFloat(tem[1]) : 0;\n return {\n name: 'IE',\n version: version\n };\n }\n if (match[1] === 'Chrome') {\n tem = userAgent.match(/\\bOPR|Edge\\/(\\d+)/);\n if (tem != null) {\n version = tem[1] != null ? parseFloat(tem[1]) : 0;\n return {\n name: 'Opera',\n version: version\n };\n }\n }\n match = match[2] ? [match[1], match[2]] : [navigator.appName, navigator.appVersion, '-?'];\n tem = userAgent.match(/version\\/(\\d+)/i);\n if (tem != null) {\n match.splice(1, 1, tem[1]);\n }\n var name = match[0];\n version = match[1] != null ? parseFloat(match[1]) : 0;\n browserInfo = { name: name, version: version };\n return browserInfo;\n}\nfunction isBrowserIE() {\n if (isIE === undefined) {\n isIE = /*@cc_on!@*/ !!document.documentMode; // At least IE6\n }\n return isIE;\n}\nfunction isBrowserEdge() {\n if (isEdge === undefined) {\n isEdge = !isBrowserIE() && !!window.StyleMedia;\n }\n return isEdge;\n}\nfunction isBrowserSafari() {\n if (isSafari === undefined) {\n // taken from https://stackoverflow.com/a/23522755/1388233\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction isBrowserChrome() {\n if (isChrome === undefined) {\n var win = window;\n isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||\n (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n }\n return isChrome;\n}\nfunction isBrowserFirefox() {\n if (isFirefox === undefined) {\n var win = window;\n isFirefox = typeof win.InstallTrigger !== 'undefined';\n }\n return isFirefox;\n}\nfunction isMacOsUserAgent() {\n if (isMacOs === undefined) {\n isMacOs = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n }\n return isMacOs;\n}\nfunction isIOSUserAgent() {\n if (isIOS === undefined) {\n // taken from https://stackoverflow.com/a/58064481/1388233\n isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n // @ts-ignore\n !window.MSStream;\n }\n return isIOS;\n}\nfunction browserSupportsPreventScroll() {\n // all browsers except safari support focus({ preventScroll: true }).\n // this feature was added on Safari 15+\n return !isBrowserSafari() || getBrowserInfo().version >= 15;\n}\nfunction getTabIndex(el) {\n if (!el) {\n return null;\n }\n var numberTabIndex = el.tabIndex;\n var tabIndex = el.getAttribute('tabIndex');\n if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {\n return null;\n }\n return numberTabIndex.toString();\n}\nfunction getMaxDivHeight() {\n if (!document.body) {\n return -1;\n }\n var res = 1000000;\n // FF reports the height back but still renders blank after ~6M px\n var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;\n var div = document.createElement('div');\n document.body.appendChild(div);\n while (true) {\n var test = res * 2;\n div.style.height = test + 'px';\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n }\n else {\n res = test;\n }\n }\n document.body.removeChild(div);\n return res;\n}\nfunction getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n var body = document.body;\n var div = document.createElement('div');\n div.style.width = div.style.height = '100px';\n div.style.opacity = '0';\n div.style.overflow = 'scroll';\n div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n div.style.position = 'absolute';\n body.appendChild(div);\n var width = div.offsetWidth - div.clientWidth;\n // if width is 0 and client width is 0, means the DOM isn't ready\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n // remove div\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nfunction isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n/** @deprecated */\nfunction hasOverflowScrolling() {\n var e_1, _a;\n var prefixes = ['webkit', 'moz', 'o', 'ms'];\n var div = document.createElement('div');\n var body = document.getElementsByTagName('body')[0];\n var found = false;\n var p;\n body.appendChild(div);\n div.setAttribute('style', prefixes.map(function (prefix) { return \"-\" + prefix + \"-overflow-scrolling: touch\"; }).concat('overflow-scrolling: touch').join(';'));\n var computedStyle = window.getComputedStyle(div);\n if (computedStyle.overflowScrolling === 'touch') {\n found = true;\n }\n if (!found) {\n try {\n for (var prefixes_1 = __values$5(prefixes), prefixes_1_1 = prefixes_1.next(); !prefixes_1_1.done; prefixes_1_1 = prefixes_1.next()) {\n p = prefixes_1_1.value;\n if (computedStyle[p + \"OverflowScrolling\"] === 'touch') {\n found = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (prefixes_1_1 && !prefixes_1_1.done && (_a = prefixes_1.return)) _a.call(prefixes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n return found;\n}\n/**\n * Gets the document body width\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyWidth() {\n if (document.body) {\n return document.body.clientWidth;\n }\n if (window.innerHeight) {\n return window.innerWidth;\n }\n if (document.documentElement && document.documentElement.clientWidth) {\n return document.documentElement.clientWidth;\n }\n return -1;\n}\n/**\n * Gets the body height\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyHeight() {\n if (document.body) {\n return document.body.clientHeight;\n }\n if (window.innerHeight) {\n return window.innerHeight;\n }\n if (document.documentElement && document.documentElement.clientHeight) {\n return document.documentElement.clientHeight;\n }\n return -1;\n}\n\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getBrowserInfo: getBrowserInfo,\n isBrowserEdge: isBrowserEdge,\n isBrowserSafari: isBrowserSafari,\n isBrowserChrome: isBrowserChrome,\n isBrowserFirefox: isBrowserFirefox,\n isMacOsUserAgent: isMacOsUserAgent,\n isIOSUserAgent: isIOSUserAgent,\n browserSupportsPreventScroll: browserSupportsPreventScroll,\n getTabIndex: getTabIndex,\n getMaxDivHeight: getMaxDivHeight,\n getScrollbarWidth: getScrollbarWidth,\n isInvisibleScrollbar: isInvisibleScrollbar,\n hasOverflowScrolling: hasOverflowScrolling,\n getBodyWidth: getBodyWidth,\n getBodyHeight: getBodyHeight\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction fuzzyCheckStrings(inputValues, validValues, allSuggestions) {\n var fuzzyMatches = {};\n var invalidInputs = inputValues.filter(function (inputValue) {\n return !validValues.some(function (validValue) { return validValue === inputValue; });\n });\n if (invalidInputs.length > 0) {\n invalidInputs.forEach(function (invalidInput) {\n return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);\n });\n }\n return fuzzyMatches;\n}\n/**\n *\n * @param {String} inputValue The value to be compared against a list of strings\n * @param allSuggestions The list of strings to be compared against\n * @param hideIrrelevant By default, fuzzy suggestions will just sort the allSuggestions list, set this to true\n * to filter out the irrelevant values\n * @param weighted Set this to true, to make letters matched in the order they were typed have priority in the results.\n */\nfunction fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, weighted) {\n var search = weighted ? string_weighted_distances : string_distances;\n var thisSuggestions = allSuggestions.map(function (text) { return ({\n value: text,\n relevance: search(inputValue.toLowerCase(), text.toLocaleLowerCase())\n }); });\n thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });\n }\n return thisSuggestions.map(function (suggestion) { return suggestion.value; });\n}\n/**\n * Algorithm to do fuzzy search\n * from https://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense\n * @param {string} from\n * @return {[]}\n */\nfunction get_bigrams(from) {\n var s = from.toLowerCase();\n var v = new Array(s.length - 1);\n var i;\n var j;\n var ref;\n for (i = j = 0, ref = v.length; j <= ref; i = j += 1) {\n v[i] = s.slice(i, i + 2);\n }\n return v;\n}\nfunction string_distances(str1, str2) {\n if (str1.length === 0 && str2.length === 0) {\n return 0;\n }\n var pairs1 = get_bigrams(str1);\n var pairs2 = get_bigrams(str2);\n var union = pairs1.length + pairs2.length;\n var hit_count = 0;\n var j;\n var len;\n for (j = 0, len = pairs1.length; j < len; j++) {\n var x = pairs1[j];\n var k = void 0;\n var len1 = void 0;\n for (k = 0, len1 = pairs2.length; k < len1; k++) {\n var y = pairs2[k];\n if (x === y) {\n hit_count++;\n }\n }\n }\n return hit_count > 0 ? (2 * hit_count) / union : 0;\n}\nfunction string_weighted_distances(str1, str2) {\n var a = str1.replace(/\\s/g, '');\n var b = str2.replace(/\\s/g, '');\n var weight = 0;\n var lastIndex = 0;\n for (var i = 0; i < a.length; i++) {\n var idx = b.indexOf(a[i], lastIndex);\n if (idx === -1) {\n continue;\n }\n lastIndex = idx;\n weight += (100 - (lastIndex * 100 / 10000) * 100);\n }\n return weight;\n}\n\nvar FuzzyMatchUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fuzzyCheckStrings: fuzzyCheckStrings,\n fuzzySuggestions: fuzzySuggestions,\n get_bigrams: get_bigrams,\n string_distances: string_distances,\n string_weighted_distances: string_weighted_distances\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction padStartWidthZeros(value, totalStringSize) {\n return value.toString().padStart(totalStringSize, '0');\n}\nfunction createArrayOfNumbers(first, last) {\n var result = [];\n for (var i = first; i <= last; i++) {\n result.push(i);\n }\n return result;\n}\n/**\n * Check if a value is numeric\n * from http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers\n * @param {any} value\n * @return {boolean}\n */\nfunction isNumeric(value) {\n return value !== '' && !isNaN(parseFloat(value)) && isFinite(value);\n}\nfunction cleanNumber(value) {\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n if (typeof value === 'number') {\n return Math.floor(value);\n }\n return null;\n}\nfunction decToHex(number, bytes) {\n var hex = '';\n for (var i = 0; i < bytes; i++) {\n hex += String.fromCharCode(number & 0xff);\n number >>>= 8;\n }\n return hex;\n}\nfunction formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return formatNumberCommas(Math.round(value * 100) / 100, thousandSeparator, decimalSeparator);\n}\n/**\n * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})\n * puts in decimal places in IE, so we use this method instead\n * from: http://blog.tompawlak.org/number-currency-formatting-javascript\n * @param {number} value\n * @returns {string}\n */\nfunction formatNumberCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return value.toString().replace('.', decimalSeparator).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1\" + thousandSeparator);\n}\nfunction sum(values) {\n return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);\n}\n\nvar NumberUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n padStartWidthZeros: padStartWidthZeros,\n createArrayOfNumbers: createArrayOfNumbers,\n isNumeric: isNumeric,\n cleanNumber: cleanNumber,\n decToHex: decToHex,\n formatNumberTwoDecimalPlacesAndCommas: formatNumberTwoDecimalPlacesAndCommas,\n formatNumberCommas: formatNumberCommas,\n sum: sum\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$g = (undefined && undefined.__assign) || function () {\n __assign$g = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$g.apply(this, arguments);\n};\nvar __decorate$2v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$8 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __read$m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$g = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$m(arguments[i]));\n return ar;\n};\nvar DEFAULT_ROW_HEIGHT = 25;\nvar DEFAULT_DETAIL_ROW_HEIGHT = 300;\nvar DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;\nvar DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;\nvar DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nfunction isTrue(value) {\n return value === true || value === 'true';\n}\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (typeof value == 'string') {\n return parseInt(value, 10);\n }\n}\nfunction zeroOrGreater(value, defaultValue) {\n if (value >= 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nfunction oneOrGreater(value, defaultValue) {\n var valueNumber = parseInt(value, 10);\n if (isNumeric(valueNumber) && valueNumber > 0) {\n return valueNumber;\n }\n return defaultValue;\n}\nvar GridOptionsWrapper = /** @class */ (function () {\n function GridOptionsWrapper() {\n this.propertyEventService = new EventService();\n this.domDataKey = '__AG_' + Math.random().toString();\n this.destroyed = false;\n }\n GridOptionsWrapper_1 = GridOptionsWrapper;\n GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.checkForDeprecated();\n this.checkForViolations();\n };\n GridOptionsWrapper.prototype.destroy = function () {\n // need to remove these, as we don't own the lifecycle of the gridOptions, we need to\n // remove the references in case the user keeps the grid options, we want the rest\n // of the grid to be picked up by the garbage collector\n this.gridOptions.api = null;\n this.gridOptions.columnApi = null;\n this.destroyed = true;\n };\n GridOptionsWrapper.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n // parse side bar options into correct format\n if (this.gridOptions.sideBar != null) {\n this.gridOptions.sideBar = SideBarDefParser.parse(this.gridOptions.sideBar);\n }\n var async = this.useAsyncEvents();\n this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);\n if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {\n console.warn(\"AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work\");\n }\n if (this.isGroupSelectsChildren()) {\n if (!this.isRowSelectionMulti()) {\n console.warn(\"AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n if (this.isRowModelServerSide()) {\n console.warn('AG Grid: group selects children is NOT support for Server Side Row Model. ' +\n 'This is because the rows are lazy loaded, so selecting a group is not possible as' +\n 'the grid has no way of knowing what the children are.');\n }\n }\n if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {\n console.warn(\"AG Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don't ask us how to use these together on our support forum either, you will get the same answer!\");\n }\n if (this.isRowModelServerSide()) {\n var msg = function (prop) { return \"AG Grid: '\" + prop + \"' is not supported on the Server-Side Row Model\"; };\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupDefaultExpanded'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeFooter'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeTotalFooter'));\n }\n }\n if (isTrue(this.gridOptions.enableRangeSelection)) {\n ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'enableRangeSelection');\n }\n else if (this.isEnableRangeHandle() || this.isEnableFillHandle()) {\n console.warn(\"AG Grid: 'enableRangeHandle' or 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true\");\n }\n if (this.isGroupRowsSticky()) {\n if (this.isGroupHideOpenParents()) {\n console.warn(\"AG Grid: groupRowsSticky and groupHideOpenParents do not work with each other, you need to pick one.\");\n }\n if (this.isMasterDetail()) {\n console.warn(\"AG Grid: groupRowsSticky and masterDetail do not work with each other, you need to pick one.\");\n }\n if (this.isPagination()) {\n console.warn(\"AG Grid: groupRowsSticky and pagination do not work with each other, you need to pick one.\");\n }\n }\n var warnOfDeprecaredIcon = function (name) {\n if (_this.gridOptions.icons && _this.gridOptions.icons[name]) {\n console.warn(\"gridOptions.icons.\" + name + \" is no longer supported. For information on how to style checkboxes and radio buttons, see https://www.ag-grid.com/javascript-grid-icons/\");\n }\n };\n warnOfDeprecaredIcon('radioButtonOff');\n warnOfDeprecaredIcon('radioButtonOn');\n warnOfDeprecaredIcon('checkboxChecked');\n warnOfDeprecaredIcon('checkboxUnchecked');\n warnOfDeprecaredIcon('checkboxIndeterminate');\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n };\n GridOptionsWrapper.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n this.gridOptions.columnDefs.forEach(function (colDef) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n var validProperties = __spread$g(ColDefUtil.ALL_PROPERTIES, ColDefUtil.FRAMEWORK_PROPERTIES);\n _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');\n });\n };\n GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = __spread$g(PropertyKeys.ALL_PROPERTIES, PropertyKeys.FRAMEWORK_PROPERTIES, values(Events).map(function (event) { return ComponentUtil.getCallbackForEvent(event); }));\n var validPropertiesAndExceptions = __spread$g(validProperties, ['api', 'columnApi']);\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-data-grid/grid-options/');\n };\n GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n iterateObject(invalidProperties, function (key, value) {\n console.warn(\"ag-grid: invalid \" + containerName + \" property '\" + key + \"' did you mean any of these: \" + value.slice(0, 8).join(\", \"));\n });\n if (Object.keys(invalidProperties).length > 0) {\n console.warn(\"ag-grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl);\n }\n };\n /**\n * Wrap the user callback and attach the api, columnApi and context to the params object on the way through.\n * @param callback User provided callback\n * @returns Wrapped callback where the params object not require api, columnApi and context\n */\n GridOptionsWrapper.prototype.mergeGridCommonParams = function (callback) {\n var _this = this;\n if (callback) {\n var wrapped = function (callbackParams) {\n var mergedParams = __assign$g(__assign$g({}, callbackParams), { api: _this.getApi(), columnApi: _this.getColumnApi(), context: _this.getContext() });\n return callback(mergedParams);\n };\n return wrapped;\n }\n return callback;\n };\n GridOptionsWrapper.prototype.getDomDataKey = function () {\n return this.domDataKey;\n };\n // returns the dom data, or undefined if not found\n GridOptionsWrapper.prototype.getDomData = function (element, key) {\n var domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n };\n GridOptionsWrapper.prototype.setDomData = function (element, key, value) {\n var domDataKey = this.getDomDataKey();\n var domData = element[domDataKey];\n if (missing(domData)) {\n domData = {};\n element[domDataKey] = domData;\n }\n domData[key] = value;\n };\n GridOptionsWrapper.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isSuppressRowDeselection = function () {\n return isTrue(this.gridOptions.suppressRowDeselection);\n };\n GridOptionsWrapper.prototype.isRowSelectionMulti = function () {\n return this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {\n return isTrue(this.gridOptions.rowMultiSelectWithClick);\n };\n GridOptionsWrapper.prototype.getContext = function () {\n return this.gridOptions.context;\n };\n GridOptionsWrapper.prototype.isPivotMode = function () {\n return isTrue(this.gridOptions.pivotMode);\n };\n GridOptionsWrapper.prototype.isSuppressExpandablePivotGroups = function () {\n return isTrue(this.gridOptions.suppressExpandablePivotGroups);\n };\n GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {\n return this.gridOptions.pivotColumnGroupTotals;\n };\n GridOptionsWrapper.prototype.getPivotRowTotals = function () {\n return this.gridOptions.pivotRowTotals;\n };\n GridOptionsWrapper.prototype.isRowModelInfinite = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_INFINITE;\n };\n GridOptionsWrapper.prototype.isRowModelViewport = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n GridOptionsWrapper.prototype.isRowModelServerSide = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n GridOptionsWrapper.prototype.isRowModelDefault = function () {\n return (missing(this.gridOptions.rowModelType) ||\n this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE);\n };\n GridOptionsWrapper.prototype.isFullRowEdit = function () {\n return this.gridOptions.editType === 'fullRow';\n };\n GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {\n return isTrue(this.gridOptions.suppressFocusAfterRefresh);\n };\n GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {\n return isTrue(this.gridOptions.suppressBrowserResizeObserver);\n };\n GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {\n return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);\n };\n GridOptionsWrapper.prototype.isSuppressClearOnFillReduction = function () {\n return isTrue(this.gridOptions.suppressClearOnFillReduction);\n };\n GridOptionsWrapper.prototype.isShowToolPanel = function () {\n return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));\n };\n GridOptionsWrapper.prototype.getSideBar = function () {\n return this.gridOptions.sideBar;\n };\n GridOptionsWrapper.prototype.isSuppressTouch = function () {\n return isTrue(this.gridOptions.suppressTouch);\n };\n GridOptionsWrapper.prototype.isMaintainColumnOrder = function () {\n return isTrue(this.gridOptions.maintainColumnOrder);\n };\n GridOptionsWrapper.prototype.isSuppressRowTransform = function () {\n return isTrue(this.gridOptions.suppressRowTransform);\n };\n GridOptionsWrapper.prototype.isSuppressColumnStateEvents = function () {\n return isTrue(this.gridOptions.suppressColumnStateEvents);\n };\n GridOptionsWrapper.prototype.isAllowDragFromColumnsToolPanel = function () {\n return isTrue(this.gridOptions.allowDragFromColumnsToolPanel);\n };\n GridOptionsWrapper.prototype.useAsyncEvents = function () {\n return !isTrue(this.gridOptions.suppressAsyncEvents);\n };\n GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {\n return isTrue(this.gridOptions.enableCellChangeFlash);\n };\n GridOptionsWrapper.prototype.getCellFlashDelay = function () {\n return this.gridOptions.cellFlashDelay || 500;\n };\n GridOptionsWrapper.prototype.getCellFadeDelay = function () {\n return this.gridOptions.cellFadeDelay || 1000;\n };\n GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {\n return isTrue(this.gridOptions.groupSelectsChildren);\n };\n GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {\n return isTrue(this.gridOptions.suppressRowHoverHighlight);\n };\n GridOptionsWrapper.prototype.isColumnHoverHighlight = function () {\n return isTrue(this.gridOptions.columnHoverHighlight);\n };\n GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {\n return isTrue(this.gridOptions.groupSelectsFiltered);\n };\n GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupMaintainOrder = function () {\n return isTrue(this.gridOptions.groupMaintainOrder);\n };\n GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {\n return this.gridOptions.autoGroupColumnDef;\n };\n GridOptionsWrapper.prototype.isColumnsSortingCoupledToGroup = function () {\n var _a;\n var autoGroupColumnDef = this.getAutoGroupColumnDef();\n var isClientSideRowModel = this.isRowModelDefault();\n return isClientSideRowModel && !((_a = autoGroupColumnDef) === null || _a === void 0 ? void 0 : _a.comparator);\n };\n GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {\n if (this.gridOptions.groupDisplayType) {\n return this.matchesGroupDisplayType('multipleColumns', this.gridOptions.groupDisplayType);\n }\n // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {\n // we never allow groupUseEntireRow if in pivot mode, otherwise we won't see the pivot values.\n if (pivotMode) {\n return false;\n }\n return this.gridOptions.groupDisplayType ?\n this.matchesGroupDisplayType('groupRows', this.gridOptions.groupDisplayType) : false;\n };\n GridOptionsWrapper.prototype.isRowGroupPanelSuppressSort = function () {\n return isTrue(this.gridOptions.rowGroupPanelSuppressSort);\n };\n GridOptionsWrapper.prototype.isGroupRowsSticky = function () {\n return isTrue(this.gridOptions.groupRowsSticky);\n };\n GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {\n var isCustomRowGroups = this.gridOptions.groupDisplayType ?\n this.matchesGroupDisplayType('custom', this.gridOptions.groupDisplayType) : false;\n if (isCustomRowGroups) {\n return true;\n }\n return this.gridOptions.treeDataDisplayType ?\n this.matchesTreeDataDisplayType('custom', this.gridOptions.treeDataDisplayType) : false;\n };\n GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {\n return isTrue(this.gridOptions.groupIncludeFooter);\n };\n GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {\n return isTrue(this.gridOptions.groupIncludeTotalFooter);\n };\n GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {\n return isTrue(this.gridOptions.groupSuppressBlankHeader);\n };\n GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {\n return isTrue(this.gridOptions.suppressRowClickSelection);\n };\n GridOptionsWrapper.prototype.isSuppressCellFocus = function () {\n return isTrue(this.gridOptions.suppressCellFocus);\n };\n GridOptionsWrapper.prototype.isSuppressMultiSort = function () {\n return isTrue(this.gridOptions.suppressMultiSort);\n };\n GridOptionsWrapper.prototype.isAlwaysMultiSort = function () {\n return isTrue(this.gridOptions.alwaysMultiSort);\n };\n GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {\n return this.gridOptions.multiSortKey === 'ctrl';\n };\n GridOptionsWrapper.prototype.isPivotSuppressAutoColumn = function () {\n return isTrue(this.gridOptions.pivotSuppressAutoColumn);\n };\n GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {\n return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);\n };\n GridOptionsWrapper.prototype.isSuppressRowGroupHidesColumns = function () {\n return isTrue(this.gridOptions.suppressRowGroupHidesColumns);\n };\n GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {\n return isTrue(this.gridOptions.suppressScrollOnNewData);\n };\n GridOptionsWrapper.prototype.isSuppressScrollWhenPopupsAreOpen = function () {\n return isTrue(this.gridOptions.suppressScrollWhenPopupsAreOpen);\n };\n GridOptionsWrapper.prototype.isRowDragEntireRow = function () {\n return isTrue(this.gridOptions.rowDragEntireRow);\n };\n GridOptionsWrapper.prototype.getRowDragText = function (column) {\n if (column) {\n var colDef = column.getColDef();\n if (colDef.rowDragText) {\n return colDef.rowDragText;\n }\n }\n return this.gridOptions.rowDragText;\n };\n GridOptionsWrapper.prototype.isSuppressRowDrag = function () {\n return isTrue(this.gridOptions.suppressRowDrag);\n };\n GridOptionsWrapper.prototype.isRowDragManaged = function () {\n return isTrue(this.gridOptions.rowDragManaged);\n };\n GridOptionsWrapper.prototype.isSuppressMoveWhenRowDragging = function () {\n return isTrue(this.gridOptions.suppressMoveWhenRowDragging);\n };\n GridOptionsWrapper.prototype.isRowDragMultiRow = function () {\n return isTrue(this.gridOptions.rowDragMultiRow);\n };\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n GridOptionsWrapper.prototype.getDomLayout = function () {\n var domLayout = this.gridOptions.domLayout || Constants.DOM_LAYOUT_NORMAL;\n var validLayouts = [\n Constants.DOM_LAYOUT_PRINT,\n Constants.DOM_LAYOUT_AUTO_HEIGHT,\n Constants.DOM_LAYOUT_NORMAL\n ];\n if (validLayouts.indexOf(domLayout) === -1) {\n doOnce(function () {\n return console.warn(\"AG Grid: \" + domLayout + \" is not valid for DOM Layout, valid values are \" + Constants.DOM_LAYOUT_NORMAL + \", \" + Constants.DOM_LAYOUT_AUTO_HEIGHT + \" and \" + Constants.DOM_LAYOUT_PRINT);\n }, 'warn about dom layout values');\n return Constants.DOM_LAYOUT_NORMAL;\n }\n return domLayout;\n };\n GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {\n return isTrue(this.gridOptions.suppressHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {\n return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);\n };\n GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {\n return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);\n };\n GridOptionsWrapper.prototype.isAlwaysShowHorizontalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowVerticalScroll);\n };\n GridOptionsWrapper.prototype.isDebounceVerticalScrollbar = function () {\n return isTrue(this.gridOptions.debounceVerticalScrollbar);\n };\n GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {\n return isTrue(this.gridOptions.suppressLoadingOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {\n return isTrue(this.gridOptions.suppressNoRowsOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {\n return isTrue(this.gridOptions.suppressFieldDotNotation);\n };\n GridOptionsWrapper.prototype.getPinnedTopRowData = function () {\n return this.gridOptions.pinnedTopRowData;\n };\n GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {\n return this.gridOptions.pinnedBottomRowData;\n };\n GridOptionsWrapper.prototype.isFunctionsPassive = function () {\n return isTrue(this.gridOptions.functionsPassive);\n };\n GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {\n return isTrue(this.gridOptions.suppressChangeDetection);\n };\n GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {\n return isTrue(this.gridOptions.suppressAnimationFrame);\n };\n GridOptionsWrapper.prototype.getQuickFilterText = function () {\n return this.gridOptions.quickFilterText;\n };\n GridOptionsWrapper.prototype.isCacheQuickFilter = function () {\n return isTrue(this.gridOptions.cacheQuickFilter);\n };\n GridOptionsWrapper.prototype.isUnSortIcon = function () {\n return isTrue(this.gridOptions.unSortIcon);\n };\n GridOptionsWrapper.prototype.isSuppressMenuHide = function () {\n return isTrue(this.gridOptions.suppressMenuHide);\n };\n GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {\n return isTrue(this.gridOptions.enterMovesDownAfterEdit);\n };\n GridOptionsWrapper.prototype.isEnterMovesDown = function () {\n return isTrue(this.gridOptions.enterMovesDown);\n };\n GridOptionsWrapper.prototype.isUndoRedoCellEditing = function () {\n return isTrue(this.gridOptions.undoRedoCellEditing);\n };\n GridOptionsWrapper.prototype.getUndoRedoCellEditingLimit = function () {\n return toNumber(this.gridOptions.undoRedoCellEditingLimit);\n };\n GridOptionsWrapper.prototype.isEnableCellEditingOnBackspace = function () {\n return isTrue(this.gridOptions.enableCellEditingOnBackspace);\n };\n GridOptionsWrapper.prototype.getRowStyle = function () {\n return this.gridOptions.rowStyle;\n };\n GridOptionsWrapper.prototype.getRowClass = function () {\n return this.gridOptions.rowClass;\n };\n GridOptionsWrapper.prototype.getRowStyleFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getRowStyle);\n };\n GridOptionsWrapper.prototype.getRowClassFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getRowClass);\n };\n GridOptionsWrapper.prototype.rowClassRules = function () {\n return this.gridOptions.rowClassRules;\n };\n GridOptionsWrapper.prototype.isServerSideInfiniteScroll = function () {\n return isTrue(this.gridOptions.serverSideInfiniteScroll);\n };\n GridOptionsWrapper.prototype.getServerSideGroupLevelParamsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getServerSideGroupLevelParams);\n };\n GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.createChartContainer);\n };\n GridOptionsWrapper.prototype.getPopupParent = function () {\n return this.gridOptions.popupParent;\n };\n GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {\n return this.gridOptions.blockLoadDebounceMillis;\n };\n GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.postProcessPopup);\n };\n GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.paginationNumberFormatter);\n };\n GridOptionsWrapper.prototype.getChildCountFunc = function () {\n return this.gridOptions.getChildCount;\n };\n GridOptionsWrapper.prototype.getIsApplyServerSideTransactionFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isApplyServerSideTransaction);\n };\n GridOptionsWrapper.prototype.getInitialGroupOrderComparator = function () {\n var _a = this.gridOptions, initialGroupOrderComparator = _a.initialGroupOrderComparator, defaultGroupOrderComparator = _a.defaultGroupOrderComparator;\n if (initialGroupOrderComparator) {\n return this.mergeGridCommonParams(initialGroupOrderComparator);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (defaultGroupOrderComparator) {\n return function (params) { return defaultGroupOrderComparator(params.nodeA, params.nodeB); };\n }\n };\n GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {\n var _a = this.gridOptions, isFullWidthRow = _a.isFullWidthRow, isFullWidthCell = _a.isFullWidthCell;\n if (isFullWidthRow) {\n return this.mergeGridCommonParams(isFullWidthRow);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (isFullWidthCell) {\n return function (params) { return isFullWidthCell(params.rowNode); };\n }\n };\n GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {\n return this.gridOptions.fullWidthCellRendererParams;\n };\n GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {\n return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);\n };\n GridOptionsWrapper.prototype.isDetailRowAutoHeight = function () {\n return isTrue(this.gridOptions.detailRowAutoHeight);\n };\n GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {\n return this.gridOptions.suppressKeyboardEvent;\n };\n GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {\n return this.gridOptions.getBusinessKeyForNode;\n };\n GridOptionsWrapper.prototype.getApi = function () {\n return this.gridOptions.api;\n };\n GridOptionsWrapper.prototype.getColumnApi = function () {\n return this.gridOptions.columnApi;\n };\n GridOptionsWrapper.prototype.isReadOnlyEdit = function () {\n return isTrue(this.gridOptions.readOnlyEdit);\n };\n GridOptionsWrapper.prototype.isImmutableData = function () {\n // we used to have a property immutableData for this. however this was deprecated\n // in favour of having Immutable Data on by default when getRowId is provided\n var getRowIdProvided = this.gridOptions.getRowId != null;\n var immutableData = isTrue(this.gridOptions.immutableData);\n // this property is a backwards compatibility property, for those who want\n // the old behaviour of Row ID's but NOT Immutable Data.\n var resetRowDataOnUpdate = isTrue(this.gridOptions.resetRowDataOnUpdate);\n if (resetRowDataOnUpdate) {\n return false;\n }\n return getRowIdProvided || immutableData;\n };\n GridOptionsWrapper.prototype.isEnsureDomOrder = function () {\n return isTrue(this.gridOptions.ensureDomOrder);\n };\n GridOptionsWrapper.prototype.isEnableCharts = function () {\n if (isTrue(this.gridOptions.enableCharts)) {\n return ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'enableCharts');\n }\n return false;\n };\n GridOptionsWrapper.prototype.isEnableChartToolPanelsButton = function () {\n return isTrue(this.gridOptions.enableChartToolPanelsButton);\n };\n GridOptionsWrapper.prototype.getColResizeDefault = function () {\n return this.gridOptions.colResizeDefault;\n };\n GridOptionsWrapper.prototype.isSingleClickEdit = function () {\n return isTrue(this.gridOptions.singleClickEdit);\n };\n GridOptionsWrapper.prototype.isSuppressClickEdit = function () {\n return isTrue(this.gridOptions.suppressClickEdit);\n };\n GridOptionsWrapper.prototype.isStopEditingWhenCellsLoseFocus = function () {\n return isTrue(this.gridOptions.stopEditingWhenCellsLoseFocus);\n };\n GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {\n return this.gridOptions.groupDefaultExpanded;\n };\n GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {\n var res = toNumber(this.gridOptions.maxConcurrentDatasourceRequests);\n if (res == null) {\n return 2;\n } // 2 is the default\n if (res <= 0) {\n return;\n } // negative number, eg -1, means no max restriction\n return res;\n };\n GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {\n return this.gridOptions.maxBlocksInCache;\n };\n GridOptionsWrapper.prototype.getCacheOverflowSize = function () {\n return this.gridOptions.cacheOverflowSize;\n };\n GridOptionsWrapper.prototype.getPaginationPageSize = function () {\n return toNumber(this.gridOptions.paginationPageSize);\n };\n GridOptionsWrapper.prototype.isPaginateChildRows = function () {\n var shouldPaginate = this.isGroupRemoveSingleChildren() || this.isGroupRemoveLowestSingleChildren();\n if (shouldPaginate) {\n return true;\n }\n return isTrue(this.gridOptions.paginateChildRows);\n };\n GridOptionsWrapper.prototype.getCacheBlockSize = function () {\n return oneOrGreater(this.gridOptions.cacheBlockSize);\n };\n GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {\n return this.gridOptions.infiniteInitialRowCount;\n };\n GridOptionsWrapper.prototype.getServerSideInitialRowCount = function () {\n var rowCount = this.gridOptions.serverSideInitialRowCount;\n if (typeof rowCount === 'number' && rowCount > 0) {\n return rowCount;\n }\n return 1;\n };\n GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {\n return isTrue(this.gridOptions.purgeClosedRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {\n return isTrue(this.gridOptions.suppressPaginationPanel);\n };\n GridOptionsWrapper.prototype.getRowData = function () {\n return this.gridOptions.rowData;\n };\n GridOptionsWrapper.prototype.isEnableRtl = function () {\n return isTrue(this.gridOptions.enableRtl);\n };\n GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {\n return this.gridOptions.rowGroupPanelShow;\n };\n GridOptionsWrapper.prototype.getPivotPanelShow = function () {\n return this.gridOptions.pivotPanelShow;\n };\n GridOptionsWrapper.prototype.isAngularCompileRows = function () {\n return isTrue(this.gridOptions.angularCompileRows);\n };\n GridOptionsWrapper.prototype.isAngularCompileFilters = function () {\n return isTrue(this.gridOptions.angularCompileFilters);\n };\n GridOptionsWrapper.prototype.isDebug = function () {\n return isTrue(this.gridOptions.debug);\n };\n GridOptionsWrapper.prototype.getColumnDefs = function () {\n return this.gridOptions.columnDefs;\n };\n GridOptionsWrapper.prototype.getColumnTypes = function () {\n return this.gridOptions.columnTypes;\n };\n GridOptionsWrapper.prototype.getDatasource = function () {\n return this.gridOptions.datasource;\n };\n GridOptionsWrapper.prototype.getViewportDatasource = function () {\n return this.gridOptions.viewportDatasource;\n };\n GridOptionsWrapper.prototype.getServerSideDatasource = function () {\n return this.gridOptions.serverSideDatasource;\n };\n GridOptionsWrapper.prototype.isAccentedSort = function () {\n return isTrue(this.gridOptions.accentedSort);\n };\n GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {\n return isTrue(this.gridOptions.enableBrowserTooltips);\n };\n GridOptionsWrapper.prototype.isEnableCellExpressions = function () {\n return isTrue(this.gridOptions.enableCellExpressions);\n };\n GridOptionsWrapper.prototype.isEnableGroupEdit = function () {\n return isTrue(this.gridOptions.enableGroupEdit);\n };\n GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {\n return isTrue(this.gridOptions.suppressMiddleClickScrolls);\n };\n GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {\n return isTrue(this.gridOptions.preventDefaultOnContextMenu);\n };\n GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {\n return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);\n };\n GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {\n return isTrue(this.gridOptions.suppressColumnVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressRowVirtualisation = function () {\n return isTrue(this.gridOptions.suppressRowVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressContextMenu = function () {\n return isTrue(this.gridOptions.suppressContextMenu);\n };\n GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {\n return isTrue(this.gridOptions.allowContextMenuWithControlKey);\n };\n GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {\n return isTrue(this.gridOptions.suppressCopyRowsToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressCopySingleCellRanges = function () {\n return isTrue(this.gridOptions.suppressCopySingleCellRanges);\n };\n GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isCopyGroupHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyGroupHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {\n return isTrue(this.gridOptions.suppressClipboardPaste);\n };\n GridOptionsWrapper.prototype.isSuppressLastEmptyLineOnPaste = function () {\n return isTrue(this.gridOptions.suppressLastEmptyLineOnPaste);\n };\n GridOptionsWrapper.prototype.isPagination = function () {\n return isTrue(this.gridOptions.pagination);\n };\n GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {\n return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);\n };\n GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processDataFromClipboard);\n };\n GridOptionsWrapper.prototype.getAsyncTransactionWaitMillis = function () {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : Constants.BATCH_WAIT_MILLIS;\n };\n GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {\n return isTrue(this.gridOptions.suppressMovableColumns);\n };\n GridOptionsWrapper.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.isEnsureDomOrder()) {\n return false;\n }\n return isTrue(this.gridOptions.animateRows);\n };\n GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {\n return isTrue(this.gridOptions.suppressColumnMoveAnimation);\n };\n GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {\n return isTrue(this.gridOptions.suppressAggFuncInHeader);\n };\n GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {\n return isTrue(this.gridOptions.suppressAggAtRootLevel);\n };\n GridOptionsWrapper.prototype.isSuppressAggFilteredOnly = function () {\n var isGroupAggFiltering = this.getGroupAggFiltering() !== undefined;\n return isGroupAggFiltering || isTrue(this.gridOptions.suppressAggFilteredOnly);\n };\n GridOptionsWrapper.prototype.isRemovePivotHeaderRowWhenSingleValueColumn = function () {\n return isTrue(this.gridOptions.removePivotHeaderRowWhenSingleValueColumn);\n };\n GridOptionsWrapper.prototype.isShowOpenedGroup = function () {\n return isTrue(this.gridOptions.showOpenedGroup);\n };\n GridOptionsWrapper.prototype.isReactUi = function () {\n return isTrue(this.gridOptions.reactUi);\n };\n GridOptionsWrapper.prototype.isSuppressReactUi = function () {\n return isTrue(this.gridOptions.suppressReactUi);\n };\n GridOptionsWrapper.prototype.isEnableRangeSelection = function () {\n return ModuleRegistry.isRegistered(ModuleNames.RangeSelectionModule) && isTrue(this.gridOptions.enableRangeSelection);\n };\n GridOptionsWrapper.prototype.isEnableRangeHandle = function () {\n return isTrue(this.gridOptions.enableRangeHandle);\n };\n GridOptionsWrapper.prototype.isEnableFillHandle = function () {\n return isTrue(this.gridOptions.enableFillHandle);\n };\n GridOptionsWrapper.prototype.getFillHandleDirection = function () {\n var direction = this.gridOptions.fillHandleDirection;\n if (!direction) {\n return 'xy';\n }\n if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {\n doOnce(function () { return console.warn(\"AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'.\"); }, 'warn invalid fill direction');\n return 'xy';\n }\n return direction;\n };\n GridOptionsWrapper.prototype.getFillOperation = function () {\n return this.mergeGridCommonParams(this.gridOptions.fillOperation);\n };\n GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {\n return isTrue(this.gridOptions.suppressMultiRangeSelection);\n };\n GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {\n return isTrue(this.gridOptions.paginationAutoPageSize);\n };\n GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {\n return isTrue(this.gridOptions.rememberGroupStateWhenNewData);\n };\n GridOptionsWrapper.prototype.getIcons = function () {\n return this.gridOptions.icons;\n };\n GridOptionsWrapper.prototype.getGroupAggFiltering = function () {\n var userValue = this.gridOptions.groupAggFiltering;\n if (typeof userValue === 'function') {\n return this.mergeGridCommonParams(userValue);\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return undefined;\n };\n GridOptionsWrapper.prototype.getAggFuncs = function () {\n return this.gridOptions.aggFuncs;\n };\n GridOptionsWrapper.prototype.getSortingOrder = function () {\n return this.gridOptions.sortingOrder;\n };\n GridOptionsWrapper.prototype.getAlignedGrids = function () {\n return this.gridOptions.alignedGrids;\n };\n GridOptionsWrapper.prototype.isMasterDetail = function () {\n var masterDetail = isTrue(this.gridOptions.masterDetail);\n if (masterDetail) {\n return ModuleRegistry.assertRegistered(ModuleNames.MasterDetailModule, 'masterDetail');\n }\n else {\n return false;\n }\n };\n GridOptionsWrapper.prototype.isKeepDetailRows = function () {\n return isTrue(this.gridOptions.keepDetailRows);\n };\n GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {\n var keepDetailRowsCount = this.gridOptions.keepDetailRowsCount;\n if (exists(keepDetailRowsCount) && keepDetailRowsCount > 0) {\n return this.gridOptions.keepDetailRowsCount;\n }\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\n };\n GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {\n return this.gridOptions.isRowMaster;\n };\n GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {\n return this.gridOptions.isRowSelectable;\n };\n GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {\n return this.gridOptions.groupRowRendererParams;\n };\n GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {\n return this.gridOptions.overlayLoadingTemplate;\n };\n GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {\n return this.gridOptions.overlayNoRowsTemplate;\n };\n GridOptionsWrapper.prototype.isSuppressAutoSize = function () {\n return isTrue(this.gridOptions.suppressAutoSize);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {\n return isTrue(this.gridOptions.suppressParentsInRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardApi = function () {\n return isTrue(this.gridOptions.suppressClipboardApi);\n };\n GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {\n return isTrue(this.gridOptions.functionsReadOnly);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.getDefaultColDef = function () {\n return this.gridOptions.defaultColDef;\n };\n GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {\n return this.gridOptions.defaultColGroupDef;\n };\n GridOptionsWrapper.prototype.getDefaultExportParams = function (type) {\n if (this.gridOptions.defaultExportParams) {\n console.warn(\"AG Grid: Since v25.2 `defaultExportParams` has been replaced by `default\" + capitalise(type) + \"ExportParams`'\");\n if (type === 'csv') {\n return this.gridOptions.defaultExportParams;\n }\n return this.gridOptions.defaultExportParams;\n }\n if (type === 'csv' && this.gridOptions.defaultCsvExportParams) {\n return this.gridOptions.defaultCsvExportParams;\n }\n if (type === 'excel' && this.gridOptions.defaultExcelExportParams) {\n return this.gridOptions.defaultExcelExportParams;\n }\n };\n GridOptionsWrapper.prototype.isSuppressCsvExport = function () {\n return isTrue(this.gridOptions.suppressCsvExport);\n };\n GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {\n return isTrue(this.gridOptions.allowShowChangeAfterFilter);\n };\n GridOptionsWrapper.prototype.isSuppressExcelExport = function () {\n return isTrue(this.gridOptions.suppressExcelExport);\n };\n GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {\n return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);\n };\n GridOptionsWrapper.prototype.getDataPathFunc = function () {\n return this.gridOptions.getDataPath;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {\n return this.gridOptions.isServerSideGroup;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupOpenByDefaultFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isServerSideGroupOpenByDefault);\n };\n GridOptionsWrapper.prototype.getIsGroupOpenByDefaultFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isGroupOpenByDefault);\n };\n GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {\n return this.gridOptions.getServerSideGroupKey;\n };\n GridOptionsWrapper.prototype.getGroupRowAggFunc = function () {\n var _a = this.gridOptions, getGroupRowAgg = _a.getGroupRowAgg, groupRowAggNodes = _a.groupRowAggNodes;\n if (getGroupRowAgg) {\n return this.mergeGridCommonParams(getGroupRowAgg);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (groupRowAggNodes) {\n return function (params) { return groupRowAggNodes(params.nodes); };\n }\n };\n GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getContextMenuItems);\n };\n GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getMainMenuItems);\n };\n GridOptionsWrapper.prototype.getRowIdFunc = function () {\n var _a = this.gridOptions, getRowId = _a.getRowId, getRowNodeId = _a.getRowNodeId;\n if (getRowId) {\n return this.mergeGridCommonParams(getRowId);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (getRowNodeId) {\n return function (params) { return getRowNodeId(params.data); };\n }\n };\n GridOptionsWrapper.prototype.getNavigateToNextHeaderFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.navigateToNextHeader);\n };\n GridOptionsWrapper.prototype.getTabToNextHeaderFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.tabToNextHeader);\n };\n GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.navigateToNextCell);\n };\n GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.tabToNextCell);\n };\n GridOptionsWrapper.prototype.getGridTabIndex = function () {\n return (this.gridOptions.tabIndex || 0).toString();\n };\n GridOptionsWrapper.prototype.isTreeData = function () {\n var usingTreeData = isTrue(this.gridOptions.treeData);\n if (usingTreeData) {\n return ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Tree Data');\n }\n return false;\n };\n GridOptionsWrapper.prototype.isValueCache = function () {\n return isTrue(this.gridOptions.valueCache);\n };\n GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {\n return isTrue(this.gridOptions.valueCacheNeverExpires);\n };\n GridOptionsWrapper.prototype.isDeltaSort = function () {\n return isTrue(this.gridOptions.deltaSort);\n };\n GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {\n return isTrue(this.gridOptions.aggregateOnlyChangedColumns);\n };\n GridOptionsWrapper.prototype.getProcessPivotResultColDefFunc = function () {\n return this.gridOptions.processPivotResultColDef || this.gridOptions.processSecondaryColDef;\n };\n GridOptionsWrapper.prototype.getProcessPivotResultColGroupDefFunc = function () {\n return this.gridOptions.processPivotResultColGroupDef || this.gridOptions.processSecondaryColGroupDef;\n };\n GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.sendToClipboard);\n };\n GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processRowPostCreate);\n };\n GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processCellForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processHeaderForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessGroupHeaderForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processGroupHeaderForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processCellFromClipboard);\n };\n GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {\n return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);\n };\n GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {\n return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);\n };\n GridOptionsWrapper.prototype.isServerSideSortAllLevels = function () {\n var isEnabled = isTrue(this.gridOptions.serverSideSortAllLevels);\n if (!this.isRowModelServerSide() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideSortAllLevels` property can only be used with the server side row model.'); }, 'serverSideSortAllLevels');\n return false;\n }\n return isEnabled;\n };\n GridOptionsWrapper.prototype.isServerSideFilterAllLevels = function () {\n var isEnabled = isTrue(this.gridOptions.serverSideFilterAllLevels);\n if (!this.isRowModelServerSide() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideFilterAllLevels` property can only be used with the server side row model.'); }, 'serverSideFilterAllLevels');\n return false;\n }\n return isEnabled;\n };\n GridOptionsWrapper.prototype.isServerSideSortOnServer = function () {\n var isEnabled = isTrue(this.gridOptions.serverSideSortOnServer);\n if (!this.isRowModelServerSide() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideSortOnServer` property can only be used with the server side row model.'); }, 'serverSideSortOnServerRowModel');\n return false;\n }\n if (this.isTreeData() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideSortOnServer` property cannot be used while using tree data.'); }, 'serverSideSortOnServerTreeData');\n return false;\n }\n return isEnabled;\n };\n GridOptionsWrapper.prototype.isServerSideFilterOnServer = function () {\n var isEnabled = isTrue(this.gridOptions.serverSideFilterOnServer);\n if (!this.isRowModelServerSide() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideFilterOnServer` property can only be used with the server side row model.'); }, 'serverSideFilterOnServerRowModel');\n return false;\n }\n if (this.isTreeData() && isEnabled) {\n doOnce(function () { return console.warn('AG Grid: The `serverSideFilterOnServer` property cannot be used while using tree data.'); }, 'serverSideFilterOnServerTreeData');\n return false;\n }\n return isEnabled;\n };\n GridOptionsWrapper.prototype.getPostSortFunc = function () {\n var _a = this.gridOptions, postSortRows = _a.postSortRows, postSort = _a.postSort;\n if (postSortRows) {\n return this.mergeGridCommonParams(postSortRows);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (postSort) {\n return function (params) { return postSort(params.nodes); };\n }\n };\n GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getChartToolbarItems);\n };\n GridOptionsWrapper.prototype.getChartThemeOverrides = function () {\n return this.gridOptions.chartThemeOverrides;\n };\n GridOptionsWrapper.prototype.getCustomChartThemes = function () {\n return this.gridOptions.customChartThemes;\n };\n GridOptionsWrapper.prototype.getChartThemes = function () {\n // return default themes if user hasn't supplied any\n return this.gridOptions.chartThemes || ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];\n };\n GridOptionsWrapper.prototype.getChartToolPanelsDef = function () {\n return this.gridOptions.chartToolPanelsDef;\n };\n GridOptionsWrapper.prototype.getClipboardDelimiter = function () {\n return exists(this.gridOptions.clipboardDelimiter) ? this.gridOptions.clipboardDelimiter : '\\t';\n };\n GridOptionsWrapper.prototype.setProperty = function (key, value, force) {\n if (force === void 0) { force = false; }\n var previousValue = this.gridOptions[key];\n if (force || previousValue !== value) {\n this.gridOptions[key] = value;\n var event_1 = {\n type: key,\n currentValue: value,\n previousValue: previousValue\n };\n this.propertyEventService.dispatchEvent(event_1);\n }\n };\n GridOptionsWrapper.prototype.addEventListener = function (key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.isSkipHeaderOnAutoSize = function () {\n return !!this.gridOptions.skipHeaderOnAutoSize;\n };\n GridOptionsWrapper.prototype.getAutoSizePadding = function () {\n var value = this.gridOptions.autoSizePadding;\n return value != null && value >= 0 ? value : 20;\n };\n // properties\n GridOptionsWrapper.prototype.getHeaderHeight = function () {\n if (typeof this.gridOptions.headerHeight === 'number') {\n return this.gridOptions.headerHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {\n if (typeof this.gridOptions.floatingFiltersHeight === 'number') {\n return this.gridOptions.floatingFiltersHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {\n if (typeof this.gridOptions.groupHeaderHeight === 'number') {\n return this.gridOptions.groupHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {\n if (typeof this.gridOptions.pivotHeaderHeight === 'number') {\n return this.gridOptions.pivotHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {\n if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {\n return this.gridOptions.pivotGroupHeaderHeight;\n }\n return this.getGroupHeaderHeight();\n };\n GridOptionsWrapper.prototype.isExternalFilterPresent = function () {\n if (typeof this.gridOptions.isExternalFilterPresent === 'function') {\n return this.gridOptions.isExternalFilterPresent({ api: this.getApi(), columnApi: this.getColumnApi(), context: this.getContext() });\n }\n return false;\n };\n GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {\n if (typeof this.gridOptions.doesExternalFilterPass === 'function') {\n return this.gridOptions.doesExternalFilterPass(node);\n }\n return false;\n };\n GridOptionsWrapper.prototype.getTooltipDelay = function (type) {\n var _a = this.gridOptions, tooltipShowDelay = _a.tooltipShowDelay, tooltipHideDelay = _a.tooltipHideDelay;\n var delay = type === 'show' ? tooltipShowDelay : tooltipHideDelay;\n var capitalisedType = capitalise(type);\n if (exists(delay)) {\n if (delay < 0) {\n doOnce(function () { return console.warn(\"ag-grid: tooltip\" + capitalisedType + \"Delay should not be lower than 0\"); }, \"tooltip\" + capitalisedType + \"DelayWarn\");\n }\n return Math.max(200, delay);\n }\n return null;\n };\n GridOptionsWrapper.prototype.isTooltipMouseTrack = function () {\n return isTrue(this.gridOptions.tooltipMouseTrack);\n };\n GridOptionsWrapper.prototype.isSuppressModelUpdateAfterUpdateTransaction = function () {\n return isTrue(this.gridOptions.suppressModelUpdateAfterUpdateTransaction);\n };\n GridOptionsWrapper.prototype.getDocument = function () {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n var result = null;\n if (this.gridOptions.getDocument && exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n else if (this.eGridDiv) {\n result = this.eGridDiv.ownerDocument;\n }\n if (result && exists(result)) {\n return result;\n }\n return document;\n };\n GridOptionsWrapper.prototype.getMinColWidth = function () {\n var minColWidth = this.gridOptions.minColWidth;\n if (exists(minColWidth) && minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.minColWidth;\n }\n var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, GridOptionsWrapper_1.MIN_COL_WIDTH) : GridOptionsWrapper_1.MIN_COL_WIDTH;\n };\n GridOptionsWrapper.prototype.getMaxColWidth = function () {\n if (this.gridOptions.maxColWidth && this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.maxColWidth;\n }\n return null;\n };\n GridOptionsWrapper.prototype.getColWidth = function () {\n if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return 200;\n }\n return this.gridOptions.colWidth;\n };\n GridOptionsWrapper.prototype.getRowBuffer = function () {\n var rowBuffer = this.gridOptions.rowBuffer;\n if (typeof rowBuffer === 'number') {\n if (rowBuffer < 0) {\n doOnce(function () { return console.warn(\"AG Grid: rowBuffer should not be negative\"); }, 'warn rowBuffer negative');\n this.gridOptions.rowBuffer = rowBuffer = 0;\n }\n }\n else {\n rowBuffer = Constants.ROW_BUFFER_SIZE;\n }\n return rowBuffer;\n };\n GridOptionsWrapper.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n GridOptionsWrapper.prototype.getScrollbarWidth = function () {\n if (this.scrollbarWidth == null) {\n var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;\n var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : getScrollbarWidth();\n if (scrollbarWidth != null) {\n this.scrollbarWidth = scrollbarWidth;\n this.eventService.dispatchEvent({\n type: Events.EVENT_SCROLLBAR_WIDTH_CHANGED\n });\n }\n }\n return this.scrollbarWidth;\n };\n GridOptionsWrapper.prototype.checkForDeprecated = function () {\n // casting to generic object, so typescript compiles even though\n // we are looking for attributes that don't exist\n var options = this.gridOptions;\n if (options.deprecatedEmbedFullWidthRows) {\n console.warn(\"AG Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.\");\n }\n if (options.rowDeselection) {\n console.warn('AG Grid: since v24.x, rowDeselection is deprecated and the behaviour is true by default. Please use `suppressRowDeselection` to prevent rows from being deselected.');\n }\n if (options.enableMultiRowDragging) {\n options.rowDragMultiRow = true;\n delete options.enableMultiRowDragging;\n console.warn('AG Grid: since v26.1, `enableMultiRowDragging` is deprecated. Please use `rowDragMultiRow`.');\n }\n var checkRenamedProperty = function (oldProp, newProp, version) {\n if (options[oldProp] != null) {\n console.warn(\"AG Grid: since version \" + version + \", '\" + oldProp + \"' is deprecated / renamed, please use the new property name '\" + newProp + \"' instead.\");\n if (options[newProp] == null) {\n options[newProp] = options[oldProp];\n }\n }\n };\n checkRenamedProperty('batchUpdateWaitMillis', 'asyncTransactionWaitMillis', '23.1.x');\n checkRenamedProperty('deltaRowDataMode', 'immutableData', '23.1.x');\n checkRenamedProperty('serverSideFilteringAlwaysResets', 'serverSideFilterAllLevels', '28.0.0');\n checkRenamedProperty('serverSideSortingAlwaysResets', 'serverSideSortAllLevels', '28.0.0');\n if (options.immutableColumns || options.deltaColumnMode) {\n console.warn('AG Grid: since v24.0, immutableColumns and deltaColumnMode properties are gone. The grid now works like this as default. To keep column order maintained, set grid property applyColumnDefOrder=true');\n }\n checkRenamedProperty('suppressSetColumnStateEvents', 'suppressColumnStateEvents', '24.0.x');\n if (options.groupRowInnerRenderer || options.groupRowInnerRendererParams || options.groupRowInnerRendererFramework) {\n console.warn('AG Grid: since v24.0, grid properties groupRowInnerRenderer, groupRowInnerRendererFramework and groupRowInnerRendererParams are no longer used.');\n console.warn(' Instead use the grid properties groupRowRendererParams.innerRenderer, groupRowRendererParams.innerRendererFramework and groupRowRendererParams.innerRendererParams.');\n console.warn(' For example instead of this:');\n console.warn(' groupRowInnerRenderer: \"myRenderer\"');\n console.warn(' groupRowInnerRendererParams: {x: a}');\n console.warn(' Replace with this:');\n console.warn(' groupRowRendererParams: {');\n console.warn(' innerRenderer: \"myRenderer\",');\n console.warn(' innerRendererParams: {x: a}');\n console.warn(' }');\n console.warn(' We have copied the properties over for you. However to stop this error message, please change your application code.');\n if (!options.groupRowRendererParams) {\n options.groupRowRendererParams = {};\n }\n var params = options.groupRowRendererParams;\n if (options.groupRowInnerRenderer) {\n params.innerRenderer = options.groupRowInnerRenderer;\n }\n if (options.groupRowInnerRendererParams) {\n params.innerRendererParams = options.groupRowInnerRendererParams;\n }\n if (options.groupRowInnerRendererFramework) {\n params.innerRendererFramework = options.groupRowInnerRendererFramework;\n }\n }\n if (options.rememberGroupStateWhenNewData) {\n console.warn('AG Grid: since v24.0, grid property rememberGroupStateWhenNewData is deprecated. This feature was provided before Transaction Updates worked (which keep group state). Now that transaction updates are possible and they keep group state, this feature is no longer needed.');\n }\n if (options.detailCellRendererParams && options.detailCellRendererParams.autoHeight) {\n console.warn('AG Grid: since v24.1, grid property detailCellRendererParams.autoHeight is replaced with grid property detailRowAutoHeight. This allows this feature to work when you provide a custom DetailCellRenderer');\n options.detailRowAutoHeight = true;\n }\n if (options.suppressKeyboardEvent) {\n console.warn(\"AG Grid: since v24.1 suppressKeyboardEvent in the gridOptions has been deprecated and will be removed in\\n future versions of AG Grid. If you need this to be set for every column use the defaultColDef property.\");\n }\n if (options.suppressEnterpriseResetOnNewColumns) {\n console.warn('AG Grid: since v25, grid property suppressEnterpriseResetOnNewColumns is deprecated. This was a temporary property to allow changing columns in Server Side Row Model without triggering a reload. Now that it is possible to dynamically change columns in the grid, this is no longer needed.');\n }\n if (options.suppressColumnStateEvents) {\n console.warn('AG Grid: since v25, grid property suppressColumnStateEvents no longer works due to a refactor that we did. It should be possible to achieve similar using event.source, which would be \"api\" if the event was due to setting column state via the API');\n }\n if (options.defaultExportParams) {\n console.warn('AG Grid: since v25.2, the grid property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`.');\n }\n if (options.stopEditingWhenGridLosesFocus) {\n console.warn('AG Grid: since v25.2.2, the grid property `stopEditingWhenGridLosesFocus` has been replaced by `stopEditingWhenCellsLoseFocus`.');\n options.stopEditingWhenCellsLoseFocus = true;\n }\n if (options.applyColumnDefOrder) {\n console.warn('AG Grid: since v26.0, the grid property `applyColumnDefOrder` is no longer needed, as this is the default behaviour. To turn this behaviour off, set maintainColumnOrder=true');\n }\n if (options.groupMultiAutoColumn) {\n console.warn(\"AG Grid: since v26.0, the grid property `groupMultiAutoColumn` has been replaced by `groupDisplayType = 'multipleColumns'`\");\n options.groupDisplayType = 'multipleColumns';\n }\n if (options.groupUseEntireRow) {\n console.warn(\"AG Grid: since v26.0, the grid property `groupUseEntireRow` has been replaced by `groupDisplayType = 'groupRows'`\");\n options.groupDisplayType = 'groupRows';\n }\n if (options.groupSuppressAutoColumn) {\n var propName = options.treeData ? 'treeDataDisplayType' : 'groupDisplayType';\n console.warn(\"AG Grid: since v26.0, the grid property `groupSuppressAutoColumn` has been replaced by `\" + propName + \" = 'custom'`\");\n options.groupDisplayType = 'custom';\n }\n if (options.defaultGroupOrderComparator) {\n console.warn(\"AG Grid: since v27.2, the grid property `defaultGroupOrderComparator` is deprecated and has been replaced by `initialGroupOrderComparator` and now receives a single params object.\");\n }\n if (options.defaultGroupSortComparator) {\n console.warn(\"AG Grid: since v26.0, the grid property `defaultGroupSortComparator` has been replaced by `initialGroupOrderComparator`\");\n options.defaultGroupOrderComparator = options.defaultGroupSortComparator;\n }\n if (options.groupRowAggNodes) {\n console.warn(\"AG Grid: since v27.2, the grid property `groupRowAggNodes` is deprecated and has been replaced by `getGroupRowAgg` and now receives a single params object.\");\n }\n if (options.postSort) {\n console.warn(\"AG Grid: since v27.2, the grid property `postSort` is deprecated and has been replaced by `postSortRows` and now receives a single params object.\");\n }\n if (options.isFullWidthCell) {\n console.warn(\"AG Grid: since v27.2, the grid property `isFullWidthCell` is deprecated and has been replaced by `isFullWidthRow` and now receives a single params object.\");\n }\n if (options.localeTextFunc) {\n console.warn(\"AG Grid: since v27.2, the grid property `localeTextFunc` is deprecated and has been replaced by `getLocaleText` and now receives a single params object.\");\n }\n if (options.colWidth) {\n console.warn('AG Grid: since v26.1, the grid property `colWidth` is deprecated and should be set via `defaultColDef.width`.');\n }\n if (options.minColWidth) {\n console.warn('AG Grid: since v26.1, the grid property `minColWidth` is deprecated and should be set via `defaultColDef.minWidth`.');\n }\n if (options.maxColWidth) {\n console.warn('AG Grid: since v26.1, the grid property `maxColWidth` is deprecated and should be set via `defaultColDef.maxWidth`.');\n }\n if (options.reactUi) {\n console.warn('AG Grid: since v27.0, React UI is on by default, so no need for reactUi=true. To turn it off, set suppressReactUi=true.');\n }\n if (options.suppressReactUi) {\n console.warn('AG Grid: The legacy React rendering engine is deprecated and will be removed in the next major version of the grid.');\n }\n if (options.suppressCellSelection) {\n console.warn('AG Grid: since v27.0, `suppressCellSelection` has been replaced by `suppressCellFocus`.');\n options.suppressCellFocus = options.suppressCellSelection;\n }\n if (options.getRowNodeId) {\n console.warn('AG Grid: since v27.1, `getRowNodeId` is deprecated and has been replaced by `getRowId`. The difference: if getRowId() is implemented then immutable data is enabled by default.');\n }\n if (options.immutableData) {\n if (options.getRowId) {\n console.warn('AG Grid: since v27.1, `immutableData` is deprecated. With the `getRowId` callback implemented, immutable data is enabled by default so you can remove `immutableData=true`.');\n }\n else {\n console.warn('AG Grid: since v27.1, `immutableData` is deprecated. To enable immutable data you must implement the `getRowId()` callback.');\n }\n }\n if (options.clipboardDeliminator) {\n console.warn('AG Grid: since v27.1, `clipboardDeliminator` has been replaced by `clipboardDelimiter`.');\n options.clipboardDelimiter = options.clipboardDeliminator;\n }\n checkRenamedProperty('processSecondaryColDef', 'processPivotResultColDef', '28.0.x');\n checkRenamedProperty('processSecondaryColGroupDef', 'processPivotResultColGroupDef', '28.0.x');\n if (options.serverSideStoreType) {\n console.warn('AG Grid: since v28.0, `serverSideStoreType` has been replaced by `serverSideInfiniteScroll`. Set to true to use Partial Store, and false to use Full Store.');\n options.serverSideInfiniteScroll = options.serverSideStoreType === 'partial';\n }\n checkRenamedProperty('getServerSideStoreParams', 'getServerSideGroupLevelParams', '28.0.x');\n };\n GridOptionsWrapper.prototype.checkForViolations = function () {\n if (this.isTreeData()) {\n this.treeDataViolations();\n }\n };\n GridOptionsWrapper.prototype.treeDataViolations = function () {\n if (this.isRowModelDefault()) {\n if (missing(this.getDataPathFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +\n 'provide getDataPath function, please provide getDataPath function if using tree data.');\n }\n }\n if (this.isRowModelServerSide()) {\n if (missing(this.getIsServerSideGroupFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');\n }\n if (missing(this.getServerSideGroupKeyFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');\n }\n }\n };\n GridOptionsWrapper.prototype.getLocaleTextFunc = function () {\n var _this = this;\n var _a = this.gridOptions, localeText = _a.localeText, getLocaleText = _a.getLocaleText, localeTextFunc = _a.localeTextFunc;\n if (getLocaleText) {\n //key: string, defaultValue: string, variableValues?: string[]\n return function (key, defaultValue, variableValues) {\n var params = {\n key: key,\n defaultValue: defaultValue,\n variableValues: variableValues,\n api: _this.getApi(),\n columnApi: _this.getColumnApi(),\n context: _this.getContext()\n };\n return getLocaleText(params);\n };\n }\n if (localeTextFunc) {\n return localeTextFunc;\n }\n return function (key, defaultValue, variableValues) {\n var localisedText = localeText && localeText[key];\n if (localisedText && variableValues && variableValues.length) {\n var found = 0;\n while (true) {\n if (found >= variableValues.length) {\n break;\n }\n var idx = localisedText.indexOf('${variable}');\n if (idx === -1) {\n break;\n }\n localisedText = localisedText.replace('${variable}', variableValues[found++]);\n }\n }\n return (localisedText !== null && localisedText !== void 0 ? localisedText : defaultValue);\n };\n };\n // responsible for calling the onXXX functions on gridOptions\n GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {\n // prevent events from being fired _after_ the grid has been destroyed\n if (this.destroyed) {\n return;\n }\n var callbackMethodName = ComponentUtil.getCallbackForEvent(eventName);\n if (typeof this.gridOptions[callbackMethodName] === 'function') {\n this.gridOptions[callbackMethodName](event);\n }\n };\n GridOptionsWrapper.prototype.setRowHeightVariable = function (height) {\n var oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();\n var newRowHeight = height + \"px\";\n if (oldRowHeight != newRowHeight) {\n this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);\n }\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.getDefaultRowHeight();\n }\n var rowHeight = this.gridOptions.rowHeight;\n if (rowHeight && this.isNumeric(rowHeight)) {\n this.setRowHeightVariable(rowHeight);\n return rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.getDefaultRowHeight();\n };\n GridOptionsWrapper.prototype.isGetRowHeightFunction = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate, defaultRowHeight) {\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (defaultRowHeight == null) {\n defaultRowHeight = this.getDefaultRowHeight();\n }\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (this.isGetRowHeightFunction()) {\n if (allowEstimate) {\n return { height: defaultRowHeight, estimated: true };\n }\n var params = {\n node: rowNode,\n data: rowNode.data\n };\n var height = this.mergeGridCommonParams(this.gridOptions.getRowHeight)(params);\n if (this.isNumeric(height)) {\n if (height === 0) {\n doOnce(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');\n }\n return { height: Math.max(1, height), estimated: false };\n }\n }\n if (rowNode.detail && this.isMasterDetail()) {\n // if autoHeight, we want the height to grow to the new height starting at 1, as otherwise a flicker would happen,\n // as the detail goes to the default (eg 200px) and then immediately shrink up/down to the new measured height\n // (due to auto height) which looks bad, especially if doing row animation.\n if (this.isDetailRowAutoHeight()) {\n return { height: 1, estimated: false };\n }\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };\n }\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n return { height: rowHeight, estimated: false };\n };\n GridOptionsWrapper.prototype.isDynamicRowHeight = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getListItemHeight = function () {\n return this.getFromTheme(20, 'listItemHeight');\n };\n GridOptionsWrapper.prototype.chartMenuPanelWidth = function () {\n return this.environment.chartMenuPanelWidth();\n };\n GridOptionsWrapper.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n };\n GridOptionsWrapper.prototype.getFromTheme = function (defaultValue, sassVariableName) {\n var theme = this.environment.getTheme().theme;\n if (theme && theme.indexOf('ag-theme') === 0) {\n return this.environment.getSassVariable(theme, sassVariableName);\n }\n return defaultValue;\n };\n GridOptionsWrapper.prototype.getDefaultRowHeight = function () {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n GridOptionsWrapper.prototype.matchesGroupDisplayType = function (toMatch, supplied) {\n var groupDisplayTypeValues = ['groupRows', 'multipleColumns', 'custom', 'singleColumn'];\n if (groupDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid groupDisplayType value - possible values are: '\" + groupDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n };\n GridOptionsWrapper.prototype.matchesTreeDataDisplayType = function (toMatch, supplied) {\n var treeDataDisplayTypeValues = ['auto', 'custom'];\n if (treeDataDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid treeDataDisplayType value - possible values are: '\" + treeDataDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n };\n var GridOptionsWrapper_1;\n GridOptionsWrapper.MIN_COL_WIDTH = 10;\n GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';\n GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';\n GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';\n GridOptionsWrapper.PROP_GROUP_DISPLAY_TYPE = 'groupDisplayType';\n GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';\n GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';\n GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';\n GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL = 'navigateToNextCell';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL = 'tabToNextCell';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER = 'navigateToNextHeader';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER = 'tabToNextHeader';\n GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT = 'isExternalFilterPresent';\n GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS = 'doesExternalFilterPass';\n GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION = 'suppressRowClickSelection';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';\n GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG = 'suppressMoveWhenRowDragging';\n GridOptionsWrapper.PROP_GET_ROW_CLASS = 'getRowClass';\n GridOptionsWrapper.PROP_GET_ROW_STYLE = 'getRowStyle';\n GridOptionsWrapper.PROP_GET_ROW_HEIGHT = 'getRowHeight';\n GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';\n GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';\n GridOptionsWrapper.PROP_ROW_CLASS = 'rowClass';\n GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION = 'fillHandleDirection';\n GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES = 'groupRowAggNodes';\n GridOptionsWrapper.PROP_GET_GROUP_ROW_AGG = 'getGroupRowAgg';\n GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE = 'getBusinessKeyForNode';\n GridOptionsWrapper.PROP_GET_CHILD_COUNT = 'getChildCount';\n GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE = 'processRowPostCreate';\n GridOptionsWrapper.PROP_GET_ROW_NODE_ID = 'getRowNodeId';\n GridOptionsWrapper.PROP_GET_ROW_ID = 'getRowId';\n GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL = 'isFullWidthCell';\n GridOptionsWrapper.PROP_IS_FULL_WIDTH_ROW = 'isFullWidthRow';\n GridOptionsWrapper.PROP_IS_ROW_SELECTABLE = 'isRowSelectable';\n GridOptionsWrapper.PROP_IS_ROW_MASTER = 'isRowMaster';\n GridOptionsWrapper.PROP_POST_SORT = 'postSort';\n GridOptionsWrapper.PROP_POST_SORT_ROWS = 'postSortRows';\n GridOptionsWrapper.PROP_GET_DOCUMENT = 'getDocument';\n GridOptionsWrapper.PROP_POST_PROCESS_POPUP = 'postProcessPopup';\n GridOptionsWrapper.PROP_DEFAULT_GROUP_ORDER_COMPARATOR = 'defaultGroupOrderComparator';\n GridOptionsWrapper.PROP_INITIAL_GROUP_ORDER_COMPARATOR = 'initialGroupOrderComparator';\n GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER = 'paginationNumberFormatter';\n GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS = 'getContextMenuItems';\n GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS = 'getMainMenuItems';\n GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD = 'processCellForClipboard';\n GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD = 'processCellFromClipboard';\n GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD = 'sendToClipboard';\n GridOptionsWrapper.PROP_PROCESS_PIVOT_RESULT_COL_DEF = 'processPivotResultColDef';\n GridOptionsWrapper.PROP_PROCESS_PIVOT_RESULT_COL_GROUP_DEF = 'processPivotResultColGroupDef';\n GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS = 'getChartToolbarItems';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_PARAMS = 'getServerSideGroupLevelParams';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT = 'isServerSideGroupOpenByDefault';\n GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION = 'isApplyServerSideTransaction';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP = 'isServerSideGroup';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY = 'getServerSideGroupKey';\n GridOptionsWrapper.PROP_AUTO_GROUP_COLUMN_DEF = 'autoGroupColumnDef';\n GridOptionsWrapper.PROP_DEFAULT_COL_DEF = 'defaultColDef';\n __decorate$2v([\n Autowired('gridOptions')\n ], GridOptionsWrapper.prototype, \"gridOptions\", void 0);\n __decorate$2v([\n Autowired('eventService')\n ], GridOptionsWrapper.prototype, \"eventService\", void 0);\n __decorate$2v([\n Autowired('environment')\n ], GridOptionsWrapper.prototype, \"environment\", void 0);\n __decorate$2v([\n Autowired('eGridDiv')\n ], GridOptionsWrapper.prototype, \"eGridDiv\", void 0);\n __decorate$2v([\n __param$8(0, Qualifier('gridApi')), __param$8(1, Qualifier('columnApi'))\n ], GridOptionsWrapper.prototype, \"agWire\", null);\n __decorate$2v([\n PreDestroy\n ], GridOptionsWrapper.prototype, \"destroy\", null);\n __decorate$2v([\n PostConstruct\n ], GridOptionsWrapper.prototype, \"init\", null);\n GridOptionsWrapper = GridOptionsWrapper_1 = __decorate$2v([\n Bean('gridOptionsWrapper')\n ], GridOptionsWrapper);\n return GridOptionsWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$7 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __values$4 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$f = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$l(arguments[i]));\n return ar;\n};\nvar ColumnModel = /** @class */ (function (_super) {\n __extends$2T(ColumnModel, _super);\n function ColumnModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // header row count, based on user provided columns\n _this.primaryHeaderRowCount = 0;\n _this.secondaryHeaderRowCount = 0;\n // header row count, either above, or based on pivoting if we are pivoting\n _this.gridHeaderRowCount = 0;\n // leave level columns of the displayed trees\n _this.displayedColumnsLeft = [];\n _this.displayedColumnsRight = [];\n _this.displayedColumnsCenter = [];\n // all three lists above combined\n _this.displayedColumns = [];\n // for fast lookup, to see if a column or group is still displayed\n _this.displayedColumnsAndGroupsMap = {};\n // all columns to be rendered\n _this.viewportColumns = [];\n // A hash key to keep track of changes in viewport columns\n _this.viewportColumnsHash = '';\n // same as viewportColumns, except we always include columns with headerAutoHeight\n _this.headerViewportColumns = [];\n // all columns to be rendered in the centre\n _this.viewportColumnsCenter = [];\n // same as viewportColumnsCenter, except we always include columns with headerAutoHeight\n _this.headerViewportColumnsCenter = [];\n _this.autoHeightActiveAtLeastOnce = false;\n _this.rowGroupColumns = [];\n _this.valueColumns = [];\n _this.pivotColumns = [];\n _this.ready = false;\n _this.autoGroupsNeedBuilding = false;\n _this.forceRecreateAutoGroups = false;\n _this.pivotMode = false;\n _this.bodyWidth = 0;\n _this.leftWidth = 0;\n _this.rightWidth = 0;\n _this.bodyWidthDirty = true;\n _this.flexColsCalculatedAtLestOnce = false;\n return _this;\n }\n ColumnModel.prototype.init = function () {\n var _this = this;\n this.suppressColumnVirtualisation = this.gridOptionsWrapper.isSuppressColumnVirtualisation();\n var pivotMode = this.gridOptionsWrapper.isPivotMode();\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_DISPLAY_TYPE, function () { return _this.onAutoGroupColumnDefChanged(); });\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_AUTO_GROUP_COLUMN_DEF, function () { return _this.onAutoGroupColumnDefChanged(); });\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DEFAULT_COL_DEF, function () { return _this.onDefaultColDefChanged(); });\n };\n ColumnModel.prototype.onAutoGroupColumnDefChanged = function () {\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns('gridOptionsChanged');\n };\n ColumnModel.prototype.onDefaultColDefChanged = function () {\n // likewise for autoGroupCol, the default col def impacts this\n this.forceRecreateAutoGroups = true;\n this.createColumnsFromColumnDefs(true);\n };\n ColumnModel.prototype.setColumnDefs = function (columnDefs, source) {\n if (source === void 0) { source = 'api'; }\n var colsPreviouslyExisted = !!this.columnDefs;\n this.columnDefs = columnDefs;\n this.createColumnsFromColumnDefs(colsPreviouslyExisted, source);\n };\n ColumnModel.prototype.createColumnsFromColumnDefs = function (colsPreviouslyExisted, source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n // only need to raise before/after events if updating columns, never if setting columns for first time\n var raiseEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndRaiseEvents(source) : undefined;\n // always invalidate cache on changing columns, as the column id's for the new columns\n // could overlap with the old id's, so the cache would return old values for new columns.\n this.valueCache.expire();\n // NOTE ==================\n // we should be destroying the existing columns and groups if they exist, for example, the original column\n // group adds a listener to the columns, it should be also removing the listeners\n this.autoGroupsNeedBuilding = true;\n var oldPrimaryColumns = this.primaryColumns;\n var oldPrimaryTree = this.primaryColumnTree;\n var balancedTreeResult = this.columnFactory.createColumnTree(this.columnDefs, true, oldPrimaryTree);\n this.primaryColumnTree = balancedTreeResult.columnTree;\n this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n this.primaryColumnsMap = {};\n this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });\n this.extractRowGroupColumns(source, oldPrimaryColumns);\n this.extractPivotColumns(source, oldPrimaryColumns);\n this.extractValueColumns(source, oldPrimaryColumns);\n this.ready = true;\n // if we are showing secondary columns, then no need to update grid columns\n // at this point, as it's the pivot service responsibility to change these\n // if we are no longer pivoting (ie and need to revert back to primary, otherwise\n // we shouldn't be touching the primary).\n var gridColsNotProcessed = this.gridColsArePrimary === undefined;\n var processGridCols = this.gridColsArePrimary || gridColsNotProcessed;\n if (processGridCols) {\n this.updateGridColumns();\n if (colsPreviouslyExisted && !this.gridOptionsWrapper.isMaintainColumnOrder()) {\n this.orderGridColumnsLikePrimary();\n }\n this.updateDisplayedColumns(source);\n this.checkViewportColumns();\n }\n // this event is not used by AG Grid, but left here for backwards compatibility,\n // in case applications use it\n this.dispatchEverythingChanged(source);\n if (raiseEventsFunc) {\n raiseEventsFunc();\n }\n this.dispatchNewColumnsLoaded();\n };\n ColumnModel.prototype.dispatchNewColumnsLoaded = function () {\n var newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED\n };\n this.eventService.dispatchEvent(newColumnsLoadedEvent);\n };\n // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded\n ColumnModel.prototype.dispatchEverythingChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n var eventEverythingChanged = {\n type: Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(eventEverythingChanged);\n };\n ColumnModel.prototype.orderGridColumnsLikePrimary = function () {\n var _this = this;\n var primaryColumns = this.primaryColumns;\n if (!primaryColumns) {\n return;\n }\n this.gridColumns.sort(function (colA, colB) {\n var primaryIndexA = primaryColumns.indexOf(colA);\n var primaryIndexB = primaryColumns.indexOf(colB);\n // if both cols are present in primary, then we just return the position,\n // so position is maintained.\n var indexAPresent = primaryIndexA >= 0;\n var indexBPresent = primaryIndexB >= 0;\n if (indexAPresent && indexBPresent) {\n return primaryIndexA - primaryIndexB;\n }\n if (indexAPresent) {\n // B is auto group column, so put B first\n return 1;\n }\n if (indexBPresent) {\n // A is auto group column, so put A first\n return -1;\n }\n // otherwise both A and B are auto-group columns. so we just keep the order\n // as they were already in.\n var gridIndexA = _this.gridColumns.indexOf(colA);\n var gridIndexB = _this.gridColumns.indexOf(colB);\n return gridIndexA - gridIndexB;\n });\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n };\n ColumnModel.prototype.getAllDisplayedAutoHeightCols = function () {\n return this.displayedAutoHeightCols;\n };\n ColumnModel.prototype.setViewport = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;\n this.viewportRight = this.bodyWidth - this.scrollPosition;\n }\n else {\n this.viewportLeft = this.scrollPosition;\n this.viewportRight = this.scrollWidth + this.scrollPosition;\n }\n };\n // used by clipboard service, to know what columns to paste into\n ColumnModel.prototype.getDisplayedColumnsStartingAt = function (column) {\n var currentColumn = column;\n var columns = [];\n while (currentColumn != null) {\n columns.push(currentColumn);\n currentColumn = this.getDisplayedColAfter(currentColumn);\n }\n return columns;\n };\n // checks what columns are currently displayed due to column virtualisation. fires an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n ColumnModel.prototype.checkViewportColumns = function () {\n // check displayCenterColumnTree exists first, as it won't exist when grid is initialising\n if (this.displayedColumnsCenter == null) {\n return;\n }\n var viewportColumnsChanged = this.extractViewport();\n if (!viewportColumnsChanged) {\n return;\n }\n var event = {\n type: Events.EVENT_VIRTUAL_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {\n if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {\n this.scrollWidth = scrollWidth;\n this.scrollPosition = scrollPosition;\n // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,\n // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the\n // virtual columns again\n this.bodyWidthDirty = true;\n this.setViewport();\n if (this.ready) {\n this.checkViewportColumns();\n }\n }\n };\n ColumnModel.prototype.isPivotMode = function () {\n return this.pivotMode;\n };\n ColumnModel.prototype.isPivotSettingAllowed = function (pivot) {\n if (pivot && this.gridOptionsWrapper.isTreeData()) {\n console.warn(\"AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'\");\n return false;\n }\n return true;\n };\n ColumnModel.prototype.setPivotMode = function (pivotMode, source) {\n if (source === void 0) { source = 'api'; }\n if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {\n return;\n }\n this.pivotMode = pivotMode;\n // we need to update grid columns to cover the scenario where user has groupSuppressAutoColumn=true, as\n // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),\n // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed\n this.autoGroupsNeedBuilding = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_PIVOT_MODE_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n if (missing(this.secondaryColumns)) {\n return null;\n }\n var valueColumnToFind = this.getPrimaryColumn(valueColKey);\n var foundColumn = null;\n this.secondaryColumns.forEach(function (column) {\n var thisPivotKeys = column.getColDef().pivotKeys;\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotKeyMatches = areEqual(thisPivotKeys, pivotKeys);\n var pivotValueMatches = pivotValueColumn === valueColumnToFind;\n if (pivotKeyMatches && pivotValueMatches) {\n foundColumn = column;\n }\n });\n return foundColumn;\n };\n ColumnModel.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('columnModel');\n };\n ColumnModel.prototype.setFirstRightAndLastLeftPinned = function (source) {\n var lastLeft;\n var firstRight;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;\n firstRight = this.displayedColumnsRight ? last(this.displayedColumnsRight) : null;\n }\n else {\n lastLeft = this.displayedColumnsLeft ? last(this.displayedColumnsLeft) : null;\n firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;\n }\n this.gridColumns.forEach(function (column) {\n column.setLastLeftPinned(column === lastLeft, source);\n column.setFirstRightPinned(column === firstRight, source);\n });\n };\n ColumnModel.prototype.autoSizeColumns = function (params) {\n var _this = this;\n var columns = params.columns, skipHeader = params.skipHeader, skipHeaderGroups = params.skipHeaderGroups, stopAtGroup = params.stopAtGroup, _a = params.source, source = _a === void 0 ? 'api' : _a;\n // because of column virtualisation, we can only do this function on columns that are\n // actually rendered, as non-rendered columns (outside the viewport and not rendered\n // due to column virtualisation) are not present. this can result in all rendered columns\n // getting narrowed, which in turn introduces more rendered columns on the RHS which\n // did not get autosized in the original run, leaving the visible grid with columns on\n // the LHS sized, but RHS no. so we keep looping through the visible columns until\n // no more cols are available (rendered) to be resized\n // we autosize after animation frames finish in case any cell renderers need to complete first. this can\n // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid\n // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).\n this.animationFrameService.flushAllFrames();\n // keep track of which cols we have resized in here\n var columnsAutosized = [];\n // initialise with anything except 0 so that while loop executes at least once\n var changesThisTimeAround = -1;\n var shouldSkipHeader = skipHeader != null ? skipHeader : this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n var shouldSkipHeaderGroups = skipHeaderGroups != null ? skipHeaderGroups : shouldSkipHeader;\n while (changesThisTimeAround !== 0) {\n changesThisTimeAround = 0;\n this.actionOnGridColumns(columns, function (column) {\n // if already autosized, skip it\n if (columnsAutosized.indexOf(column) >= 0) {\n return false;\n }\n // get how wide this col should be\n var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, shouldSkipHeader);\n // preferredWidth = -1 if this col is not on the screen\n if (preferredWidth > 0) {\n var newWidth = _this.normaliseColumnWidth(column, preferredWidth);\n column.setActualWidth(newWidth, source);\n columnsAutosized.push(column);\n changesThisTimeAround++;\n }\n return true;\n }, source);\n }\n if (!shouldSkipHeaderGroups) {\n this.autoSizeColumnGroupsByColumns(columns, stopAtGroup);\n }\n this.fireColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n };\n ColumnModel.prototype.fireColumnResizedEvent = function (columns, finished, source, flexColumns) {\n if (flexColumns === void 0) { flexColumns = null; }\n if (columns && columns.length) {\n var event_1 = {\n type: Events.EVENT_COLUMN_RESIZED,\n columns: columns,\n column: columns.length === 1 ? columns[0] : null,\n flexColumns: flexColumns,\n finished: finished,\n source: source\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ColumnModel.prototype.autoSizeColumn = function (key, skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.autoSizeColumns({ columns: [key], skipHeader: skipHeader, skipHeaderGroups: true, source: source });\n }\n };\n ColumnModel.prototype.autoSizeColumnGroupsByColumns = function (keys, stopAtGroup) {\n var e_1, _a, e_2, _b;\n var columnGroups = new Set();\n var columns = this.getGridColumns(keys);\n columns.forEach(function (col) {\n var parent = col.getParent();\n while (parent && parent != stopAtGroup) {\n if (!parent.isPadding()) {\n columnGroups.add(parent);\n }\n parent = parent.getParent();\n }\n });\n var headerGroupCtrl;\n var resizedColumns = [];\n try {\n for (var columnGroups_1 = __values$4(columnGroups), columnGroups_1_1 = columnGroups_1.next(); !columnGroups_1_1.done; columnGroups_1_1 = columnGroups_1.next()) {\n var columnGroup = columnGroups_1_1.value;\n try {\n for (var _c = (e_2 = void 0, __values$4(this.ctrlsService.getHeaderRowContainerCtrls())), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerContainerCtrl = _d.value;\n headerGroupCtrl = headerContainerCtrl.getHeaderCtrlForColumn(columnGroup);\n if (headerGroupCtrl) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (headerGroupCtrl) {\n headerGroupCtrl.resizeLeafColumnsToFit();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (columnGroups_1_1 && !columnGroups_1_1.done && (_a = columnGroups_1.return)) _a.call(columnGroups_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return resizedColumns;\n };\n ColumnModel.prototype.autoSizeAllColumns = function (skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n var allDisplayedColumns = this.getAllDisplayedColumns();\n this.autoSizeColumns({ columns: allDisplayedColumns, skipHeader: skipHeader, source: source });\n };\n // Possible candidate for reuse (alot of recursive traversal duplication)\n ColumnModel.prototype.getColumnsFromTree = function (rootColumns) {\n var result = [];\n var recursiveFindColumns = function (childColumns) {\n for (var i = 0; i < childColumns.length; i++) {\n var child = childColumns[i];\n if (child instanceof Column) {\n result.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n recursiveFindColumns(child.getChildren());\n }\n }\n };\n recursiveFindColumns(rootColumns);\n return result;\n };\n ColumnModel.prototype.getAllDisplayedTrees = function () {\n if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {\n return this.displayedTreeLeft\n .concat(this.displayedTreeCentre)\n .concat(this.displayedTreeRight);\n }\n return null;\n };\n // + columnSelectPanel\n ColumnModel.prototype.getPrimaryColumnTree = function () {\n return this.primaryColumnTree;\n };\n // + gridPanel -> for resizing the body and setting top margin\n ColumnModel.prototype.getHeaderRowCount = function () {\n return this.gridHeaderRowCount;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeLeft = function () {\n return this.displayedTreeLeft;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeRight = function () {\n return this.displayedTreeRight;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeCentre = function () {\n return this.displayedTreeCentre;\n };\n // gridPanel -> ensureColumnVisible\n ColumnModel.prototype.isColumnDisplayed = function (column) {\n return this.getAllDisplayedColumns().indexOf(column) >= 0;\n };\n // + csvCreator\n ColumnModel.prototype.getAllDisplayedColumns = function () {\n return this.displayedColumns;\n };\n ColumnModel.prototype.getViewportColumns = function () {\n return this.viewportColumns;\n };\n ColumnModel.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsLeft;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);\n };\n ColumnModel.prototype.getDisplayedRightColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsRight;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);\n };\n ColumnModel.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {\n var result = [];\n var lastConsideredCol = null;\n var _loop_1 = function (i) {\n var col = displayedColumns[i];\n var maxAllowedColSpan = displayedColumns.length - i;\n var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);\n var columnsToCheckFilter = [col];\n if (colSpan > 1) {\n var colsToRemove = colSpan - 1;\n for (var j = 1; j <= colsToRemove; j++) {\n columnsToCheckFilter.push(displayedColumns[i + j]);\n }\n i += colsToRemove;\n }\n // see which cols we should take out for column virtualisation\n var filterPasses;\n if (filterCallback) {\n // if user provided a callback, means some columns may not be in the viewport.\n // the user will NOT provide a callback if we are talking about pinned areas,\n // as pinned areas have no horizontal scroll and do not virtualise the columns.\n // if lots of columns, that means column spanning, and we set filterPasses = true\n // if one or more of the columns spanned pass the filter.\n filterPasses = false;\n columnsToCheckFilter.forEach(function (colForFilter) {\n if (filterCallback(colForFilter)) {\n filterPasses = true;\n }\n });\n }\n else {\n filterPasses = true;\n }\n if (filterPasses) {\n if (result.length === 0 && lastConsideredCol) {\n var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;\n if (gapBeforeColumn) {\n result.push(lastConsideredCol);\n }\n }\n result.push(col);\n }\n lastConsideredCol = col;\n out_i_1 = i;\n };\n var out_i_1;\n for (var i = 0; i < displayedColumns.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n return result;\n };\n // + rowRenderer\n // if we are not column spanning, this just returns back the virtual centre columns,\n // however if we are column spanning, then different rows can have different virtual\n // columns, so we have to work out the list for each individual row.\n ColumnModel.prototype.getViewportCenterColumnsForRow = function (rowNode) {\n var _this = this;\n if (!this.colSpanActive) {\n return this.viewportColumnsCenter;\n }\n var emptySpaceBeforeColumn = function (col) {\n var left = col.getLeft();\n return exists(left) && left > _this.viewportLeft;\n };\n // if doing column virtualisation, then we filter based on the viewport.\n var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInRowViewport.bind(this);\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);\n };\n ColumnModel.prototype.getAriaColumnIndex = function (col) {\n return this.getAllGridColumns().indexOf(col) + 1;\n };\n ColumnModel.prototype.isColumnInHeaderViewport = function (col) {\n // for headers, we never filter out autoHeaderHeight columns, if calculating\n if (col.isAutoHeaderHeight()) {\n return true;\n }\n return this.isColumnInRowViewport(col);\n };\n ColumnModel.prototype.isColumnInRowViewport = function (col) {\n // we never filter out autoHeight columns, as we need them in the DOM for calculating Auto Height\n if (col.isAutoHeight()) {\n return true;\n }\n var columnLeft = col.getLeft() || 0;\n var columnRight = columnLeft + col.getActualWidth();\n // adding 200 for buffer size, so some cols off viewport are rendered.\n // this helps horizontal scrolling so user rarely sees white space (unless\n // they scroll horizontally fast). however we are conservative, as the more\n // buffer the slower the vertical redraw speed\n var leftBounds = this.viewportLeft - 200;\n var rightBounds = this.viewportRight + 200;\n var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;\n var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;\n return !columnToMuchLeft && !columnToMuchRight;\n };\n // used by:\n // + angularGrid -> setting pinned body width\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsLeftWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsLeft);\n };\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsRightWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsRight);\n };\n ColumnModel.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (!keys || missingOrEmpty(keys)) {\n return;\n }\n var atLeastOne = false;\n keys.forEach(function (key) {\n var columnToAdd = _this.getPrimaryColumn(key);\n if (!columnToAdd) {\n return;\n }\n if (actionIsAdd) {\n if (masterList.indexOf(columnToAdd) >= 0) {\n return;\n }\n masterList.push(columnToAdd);\n }\n else {\n if (masterList.indexOf(columnToAdd) < 0) {\n return;\n }\n removeFromArray(masterList, columnToAdd);\n }\n columnCallback(columnToAdd);\n atLeastOne = true;\n });\n if (!atLeastOne) {\n return;\n }\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n var event = {\n type: eventType,\n columns: masterList,\n column: masterList.length === 1 ? masterList[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setRowGroupColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.setPrimaryColumnList(colKeys, this.rowGroupColumns, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);\n };\n ColumnModel.prototype.setRowGroupActive = function (active, column, source) {\n if (active === column.isRowGroupActive()) {\n return;\n }\n column.setRowGroupActive(active, source);\n if (active && !this.gridOptionsWrapper.isSuppressRowGroupHidesColumns()) {\n this.setColumnVisible(column, false, source);\n }\n if (!active && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup()) {\n this.setColumnVisible(column, true, source);\n }\n };\n ColumnModel.prototype.addRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.addRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.removeRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addPivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.setPivotColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.pivotColumns, Events.EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {\n column.setPivotActive(added, source);\n }, source);\n };\n ColumnModel.prototype.addPivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.addPivotColumns([key], source);\n };\n ColumnModel.prototype.removePivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.removePivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.removePivotColumns([key], source);\n };\n ColumnModel.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {\n var _this = this;\n masterList.length = 0;\n if (exists(colKeys)) {\n colKeys.forEach(function (key) {\n var column = _this.getPrimaryColumn(key);\n if (column) {\n masterList.push(column);\n }\n });\n }\n (this.primaryColumns || []).forEach(function (column) {\n var added = masterList.indexOf(column) >= 0;\n columnCallback(added, column);\n });\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n this.fireColumnEvent(eventName, masterList, source);\n };\n ColumnModel.prototype.setValueColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.valueColumns, Events.EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);\n };\n ColumnModel.prototype.setValueActive = function (active, column, source) {\n if (active === column.isValueActive()) {\n return;\n }\n column.setValueActive(active, source);\n if (active && !column.getAggFunc()) {\n var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);\n column.setAggFunc(initialAggFunc);\n }\n };\n ColumnModel.prototype.addValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n ColumnModel.prototype.addValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n if (colKey) {\n this.addValueColumns([colKey], source);\n }\n };\n ColumnModel.prototype.removeValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n this.removeValueColumns([colKey], source);\n };\n ColumnModel.prototype.removeValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n // returns the width we can set to this col, taking into consideration min and max widths\n ColumnModel.prototype.normaliseColumnWidth = function (column, newWidth) {\n var minWidth = column.getMinWidth();\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n }\n var maxWidth = column.getMaxWidth();\n if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n }\n return newWidth;\n };\n ColumnModel.prototype.getPrimaryOrGridColumn = function (key) {\n var column = this.getPrimaryColumn(key);\n return column || this.getGridColumn(key);\n };\n ColumnModel.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column\n finished, // @finished - ends up in the event, tells the user if more events are to come\n source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var sets = [];\n columnWidths.forEach(function (columnWidth) {\n var col = _this.getPrimaryOrGridColumn(columnWidth.key);\n if (!col) {\n return;\n }\n sets.push({\n width: columnWidth.newWidth,\n ratios: [1],\n columns: [col]\n });\n // if user wants to do shift resize by default, then we invert the shift operation\n var defaultIsShift = _this.gridOptionsWrapper.getColResizeDefault() === 'shift';\n if (defaultIsShift) {\n shiftKey = !shiftKey;\n }\n if (shiftKey) {\n var otherCol = _this.getDisplayedColAfter(col);\n if (!otherCol) {\n return;\n }\n var widthDiff = col.getActualWidth() - columnWidth.newWidth;\n var otherColWidth = otherCol.getActualWidth() + widthDiff;\n sets.push({\n width: otherColWidth,\n ratios: [1],\n columns: [otherCol]\n });\n }\n });\n if (sets.length === 0) {\n return;\n }\n this.resizeColumnSets({\n resizeSets: sets,\n finished: finished,\n source: source\n });\n };\n ColumnModel.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {\n var columns = columnResizeSet.columns, width = columnResizeSet.width;\n // every col has a min width, so sum them all up and see if we have enough room\n // for all the min widths\n var minWidthAccumulated = 0;\n var maxWidthAccumulated = 0;\n var maxWidthActive = true;\n columns.forEach(function (col) {\n var minWidth = col.getMinWidth();\n minWidthAccumulated += minWidth || 0;\n var maxWidth = col.getMaxWidth();\n if (exists(maxWidth) && maxWidth > 0) {\n maxWidthAccumulated += maxWidth;\n }\n else {\n // if at least one columns has no max width, it means the group of columns\n // then has no max width, as at least one column can take as much width as possible\n maxWidthActive = false;\n }\n });\n var minWidthPasses = width >= minWidthAccumulated;\n var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);\n return minWidthPasses && maxWidthPasses;\n };\n // method takes sets of columns and resizes them. either all sets will be resized, or nothing\n // be resized. this is used for example when user tries to resize a group and holds shift key,\n // then both the current group (grows), and the adjacent group (shrinks), will get resized,\n // so that's two sets for this method.\n ColumnModel.prototype.resizeColumnSets = function (params) {\n var _this = this;\n var resizeSets = params.resizeSets, finished = params.finished, source = params.source;\n var passMinMaxCheck = !resizeSets || resizeSets.every(function (columnResizeSet) { return _this.checkMinAndMaxWidthsForSet(columnResizeSet); });\n if (!passMinMaxCheck) {\n // even though we are not going to resize beyond min/max size, we still need to raise event when finished\n if (finished) {\n var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.fireColumnResizedEvent(columns, finished, source);\n }\n return; // don't resize!\n }\n var changedCols = [];\n var allResizedCols = [];\n resizeSets.forEach(function (set) {\n var width = set.width, columns = set.columns, ratios = set.ratios;\n // keep track of pixels used, and last column gets the remaining,\n // to cater for rounding errors, and min width adjustments\n var newWidths = {};\n var finishedCols = {};\n columns.forEach(function (col) { return allResizedCols.push(col); });\n // the loop below goes through each col. if a col exceeds it's min/max width,\n // it then gets set to its min/max width and the column is removed marked as 'finished'\n // and the calculation is done again leaving this column out. take for example columns\n // {A, width: 50, maxWidth: 100}\n // {B, width: 50}\n // {C, width: 50}\n // and then the set is set to width 600 - on the first pass the grid tries to set each column\n // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked\n // as 'finished' and the calculation is done again with the remaining cols B and C, which end up\n // splitting the remaining 500 pixels.\n var finishedColsGrew = true;\n var loopCount = 0;\n var _loop_2 = function () {\n loopCount++;\n if (loopCount > 1000) {\n // this should never happen, but in the future, someone might introduce a bug here,\n // so we stop the browser from hanging and report bug properly\n console.error('AG Grid: infinite loop in resizeColumnSets');\n return \"break\";\n }\n finishedColsGrew = false;\n var subsetCols = [];\n var subsetRatioTotal = 0;\n var pixelsToDistribute = width;\n columns.forEach(function (col, index) {\n var thisColFinished = finishedCols[col.getId()];\n if (thisColFinished) {\n pixelsToDistribute -= newWidths[col.getId()];\n }\n else {\n subsetCols.push(col);\n var ratioThisCol = ratios[index];\n subsetRatioTotal += ratioThisCol;\n }\n });\n // because we are not using all of the ratios (cols can be missing),\n // we scale the ratio. if all columns are included, then subsetRatioTotal=1,\n // and so the ratioScale will be 1.\n var ratioScale = 1 / subsetRatioTotal;\n subsetCols.forEach(function (col, index) {\n var lastCol = index === (subsetCols.length - 1);\n var colNewWidth;\n if (lastCol) {\n colNewWidth = pixelsToDistribute;\n }\n else {\n colNewWidth = Math.round(ratios[index] * width * ratioScale);\n pixelsToDistribute -= colNewWidth;\n }\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && colNewWidth < minWidth) {\n colNewWidth = minWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n else if (exists(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {\n colNewWidth = maxWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n newWidths[col.getId()] = colNewWidth;\n });\n };\n while (finishedColsGrew) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n columns.forEach(function (col) {\n var newWidth = newWidths[col.getId()];\n var actualWidth = col.getActualWidth();\n if (actualWidth !== newWidth) {\n col.setActualWidth(newWidth, source);\n changedCols.push(col);\n }\n });\n });\n // if no cols changed, then no need to update more or send event.\n var atLeastOneColChanged = changedCols.length > 0;\n var flexedCols = [];\n if (atLeastOneColChanged) {\n flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });\n this.setLeftValues(source);\n this.updateBodyWidths();\n this.checkViewportColumns();\n }\n // check for change first, to avoid unnecessary firing of events\n // however we always fire 'finished' events. this is important\n // when groups are resized, as if the group is changing slowly,\n // eg 1 pixel at a time, then each change will fire change events\n // in all the columns in the group, but only one with get the pixel.\n var colsForEvent = allResizedCols.concat(flexedCols);\n if (atLeastOneColChanged || finished) {\n this.fireColumnResizedEvent(colsForEvent, finished, source, flexedCols);\n }\n };\n ColumnModel.prototype.setColumnAggFunc = function (key, aggFunc, source) {\n if (source === void 0) { source = \"api\"; }\n if (!key) {\n return;\n }\n var column = this.getPrimaryColumn(key);\n if (!column) {\n return;\n }\n column.setAggFunc(aggFunc);\n this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n };\n ColumnModel.prototype.fireColumnEvent = function (type, columns, source) {\n var event = {\n type: type,\n columns: columns,\n column: (columns && columns.length == 1) ? columns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.rowGroupColumns[fromIndex];\n this.rowGroupColumns.splice(fromIndex, 1);\n this.rowGroupColumns.splice(toIndex, 0, column);\n var event = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n columns: this.rowGroupColumns,\n column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {\n console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);\n console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');\n return;\n }\n // we want to pull all the columns out first and put them into an ordered list\n var columnsToMove = this.getGridColumns(columnsToMoveKeys);\n var failedRules = !this.doesMovePassRules(columnsToMove, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, columnsToMove, toIndex);\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: columnsToMove,\n column: columnsToMove.length === 1 ? columnsToMove[0] : null,\n toIndex: toIndex,\n source: source\n };\n this.eventService.dispatchEvent(event);\n this.columnAnimationService.finish();\n };\n ColumnModel.prototype.doesMovePassRules = function (columnsToMove, toIndex) {\n // make a copy of what the grid columns would look like after the move\n var proposedColumnOrder = this.getProposedColumnOrder(columnsToMove, toIndex);\n return this.doesOrderPassRules(proposedColumnOrder);\n };\n ColumnModel.prototype.doesOrderPassRules = function (gridOrder) {\n if (!this.doesMovePassMarryChildren(gridOrder)) {\n return false;\n }\n if (!this.doesMovePassLockedPositions(gridOrder)) {\n return false;\n }\n return true;\n };\n ColumnModel.prototype.getProposedColumnOrder = function (columnsToMove, toIndex) {\n var proposedColumnOrder = this.gridColumns.slice();\n moveInArray(proposedColumnOrder, columnsToMove, toIndex);\n return proposedColumnOrder;\n };\n // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns\n // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]\n ColumnModel.prototype.sortColumnsLikeGridColumns = function (cols) {\n var _this = this;\n if (!cols || cols.length <= 1) {\n return;\n }\n var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;\n if (notAllColsInGridColumns) {\n return;\n }\n cols.sort(function (a, b) {\n var indexA = _this.gridColumns.indexOf(a);\n var indexB = _this.gridColumns.indexOf(b);\n return indexA - indexB;\n });\n };\n ColumnModel.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {\n // Placement is a number indicating 'left' 'center' or 'right' as 0 1 2\n var lastPlacement = 0;\n var rulePassed = true;\n var lockPositionToPlacement = function (position) {\n if (!position) { // false or undefined\n return 1;\n }\n if (position === true) {\n return 0;\n }\n return position === 'left' ? 0 : 2; // Otherwise 'right'\n };\n proposedColumnOrder.forEach(function (col) {\n var placement = lockPositionToPlacement(col.getColDef().lockPosition);\n if (placement < lastPlacement) { // If placement goes down, we're not in the correct order\n rulePassed = false;\n }\n lastPlacement = placement;\n });\n return rulePassed;\n };\n ColumnModel.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {\n var rulePassed = true;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {\n if (!(child instanceof ProvidedColumnGroup)) {\n return;\n }\n var columnGroup = child;\n var colGroupDef = columnGroup.getColGroupDef();\n var marryChildren = colGroupDef && colGroupDef.marryChildren;\n if (!marryChildren) {\n return;\n }\n var newIndexes = [];\n columnGroup.getLeafColumns().forEach(function (col) {\n var newColIndex = allColumnsCopy.indexOf(col);\n newIndexes.push(newColIndex);\n });\n var maxIndex = Math.max.apply(Math, newIndexes);\n var minIndex = Math.min.apply(Math, newIndexes);\n // spread is how far the first column in this group is away from the last column\n var spread = maxIndex - minIndex;\n var maxSpread = columnGroup.getLeafColumns().length - 1;\n // if the columns\n if (spread > maxSpread) {\n rulePassed = false;\n }\n // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)\n // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));\n });\n return rulePassed;\n };\n ColumnModel.prototype.moveColumn = function (key, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.moveColumns([key], toIndex, source);\n };\n ColumnModel.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.gridColumns[fromIndex];\n this.moveColumn(column, toIndex, source);\n };\n ColumnModel.prototype.getColumnDefs = function () {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n var cols = this.primaryColumns.slice();\n if (this.gridColsArePrimary) {\n cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });\n }\n else if (this.lastPrimaryOrder) {\n cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });\n }\n return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);\n };\n // used by:\n // + angularGrid -> for setting body width\n // + rowController -> setting main row widths (when inserting and resizing)\n // need to cache this\n ColumnModel.prototype.getBodyContainerWidth = function () {\n return this.bodyWidth;\n };\n ColumnModel.prototype.getContainerWidth = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n return this.leftWidth;\n case Constants.PINNED_RIGHT:\n return this.rightWidth;\n default:\n return this.bodyWidth;\n }\n };\n // after setColumnWidth or updateGroupsAndDisplayedColumns\n ColumnModel.prototype.updateBodyWidths = function () {\n var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);\n var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);\n var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);\n // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed\n // columns, due to RTL inverting the y coordinates\n this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;\n var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;\n if (atLeastOneChanged) {\n this.bodyWidth = newBodyWidth;\n this.leftWidth = newLeftWidth;\n this.rightWidth = newRightWidth;\n // when this fires, it is picked up by the gridPanel, which ends up in\n // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()\n var event_2 = {\n type: Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n };\n this.eventService.dispatchEvent(event_2);\n }\n };\n // + rowController\n ColumnModel.prototype.getValueColumns = function () {\n return this.valueColumns ? this.valueColumns : [];\n };\n // + rowController\n ColumnModel.prototype.getPivotColumns = function () {\n return this.pivotColumns ? this.pivotColumns : [];\n };\n // + clientSideRowModel\n ColumnModel.prototype.isPivotActive = function () {\n return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;\n };\n // + toolPanel\n ColumnModel.prototype.getRowGroupColumns = function () {\n return this.rowGroupColumns ? this.rowGroupColumns : [];\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedCenterColumns = function () {\n return this.displayedColumnsCenter;\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedLeftColumns = function () {\n return this.displayedColumnsLeft;\n };\n ColumnModel.prototype.getDisplayedRightColumns = function () {\n return this.displayedColumnsRight;\n };\n ColumnModel.prototype.getDisplayedColumns = function (type) {\n switch (type) {\n case Constants.PINNED_LEFT:\n return this.getDisplayedLeftColumns();\n case Constants.PINNED_RIGHT:\n return this.getDisplayedRightColumns();\n default:\n return this.getDisplayedCenterColumns();\n }\n };\n // used by:\n // + clientSideRowController -> sorting, building quick filter text\n // + headerRenderer -> sorting (clearing icon)\n ColumnModel.prototype.getAllPrimaryColumns = function () {\n return this.primaryColumns ? this.primaryColumns.slice() : null;\n };\n ColumnModel.prototype.getSecondaryColumns = function () {\n return this.secondaryColumns ? this.secondaryColumns.slice() : null;\n };\n ColumnModel.prototype.getAllColumnsForQuickFilter = function () {\n return this.columnsForQuickFilter;\n };\n // + moveColumnController\n ColumnModel.prototype.getAllGridColumns = function () {\n return this.gridColumns;\n };\n ColumnModel.prototype.isEmpty = function () {\n return missingOrEmpty(this.gridColumns);\n };\n ColumnModel.prototype.isRowGroupEmpty = function () {\n return missingOrEmpty(this.rowGroupColumns);\n };\n ColumnModel.prototype.setColumnVisible = function (key, visible, source) {\n if (source === void 0) { source = \"api\"; }\n this.setColumnsVisible([key], visible, source);\n };\n ColumnModel.prototype.setColumnsVisible = function (keys, visible, source) {\n if (visible === void 0) { visible = false; }\n if (source === void 0) { source = \"api\"; }\n this.applyColumnState({\n state: keys.map(function (key) { return ({\n colId: typeof key === 'string' ? key : key.getColId(),\n hide: !visible,\n }); }),\n }, source);\n };\n ColumnModel.prototype.setColumnPinned = function (key, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.setColumnsPinned([key], pinned, source);\n }\n };\n ColumnModel.prototype.setColumnsPinned = function (keys, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.gridOptionsWrapper.getDomLayout() === 'print') {\n console.warn(\"Changing the column pinning status is not allowed with domLayout='print'\");\n return;\n }\n this.columnAnimationService.start();\n var actualPinned;\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n actualPinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n actualPinned = Constants.PINNED_RIGHT;\n }\n else {\n actualPinned = null;\n }\n this.actionOnGridColumns(keys, function (col) {\n if (col.getPinned() !== actualPinned) {\n col.setPinned(actualPinned);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n pinned: actualPinned,\n column: null,\n columns: null,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n // does an action on a set of columns. provides common functionality for looking up the\n // columns based on key, getting a list of effected columns, and then updated the event\n // with either one column (if it was just one col) or a list of columns\n // used by: autoResize, setVisible, setPinned\n ColumnModel.prototype.actionOnGridColumns = function (// the column keys this action will be on\n keys, \n // the action to do - if this returns false, the column was skipped\n // and won't be included in the event\n action, \n // should return back a column event of the right type\n source, createEvent) {\n var _this = this;\n if (missingOrEmpty(keys)) {\n return;\n }\n var updatedColumns = [];\n keys.forEach(function (key) {\n var column = _this.getGridColumn(key);\n if (!column) {\n return;\n }\n // need to check for false with type (ie !== instead of !=)\n // as not returning anything (undefined) would also be false\n var resultOfAction = action(column);\n if (resultOfAction !== false) {\n updatedColumns.push(column);\n }\n });\n if (!updatedColumns.length) {\n return;\n }\n this.updateDisplayedColumns(source);\n if (exists(createEvent) && createEvent) {\n var event_3 = createEvent();\n event_3.columns = updatedColumns;\n event_3.column = updatedColumns.length === 1 ? updatedColumns[0] : null;\n this.eventService.dispatchEvent(event_3);\n }\n };\n ColumnModel.prototype.getDisplayedColBefore = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex > 0) {\n return allDisplayedColumns[oldIndex - 1];\n }\n return null;\n };\n // used by:\n // + rowRenderer -> for navigation\n ColumnModel.prototype.getDisplayedColAfter = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex < (allDisplayedColumns.length - 1)) {\n return allDisplayedColumns[oldIndex + 1];\n }\n return null;\n };\n ColumnModel.prototype.getDisplayedGroupAfter = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'After');\n };\n ColumnModel.prototype.getDisplayedGroupBefore = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'Before');\n };\n ColumnModel.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {\n // pick the last displayed column in this group\n var requiredLevel = columnGroup.getProvidedColumnGroup().getLevel() + columnGroup.getPaddingLevel();\n var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();\n var col = direction === 'After' ? last(colGroupLeafColumns) : colGroupLeafColumns[0];\n var getDisplayColMethod = \"getDisplayedCol\" + direction;\n while (true) {\n // keep moving to the next col, until we get to another group\n var column = this[getDisplayColMethod](col);\n if (!column) {\n return null;\n }\n var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);\n if (groupPointer !== columnGroup) {\n return groupPointer;\n }\n }\n };\n ColumnModel.prototype.getColumnGroupAtLevel = function (column, level) {\n // get group at same level as the one we are looking for\n var groupPointer = column.getParent();\n var originalGroupLevel;\n var groupPointerLevel;\n while (true) {\n var groupPointerProvidedColumnGroup = groupPointer.getProvidedColumnGroup();\n originalGroupLevel = groupPointerProvidedColumnGroup.getLevel();\n groupPointerLevel = groupPointer.getPaddingLevel();\n if (originalGroupLevel + groupPointerLevel <= level) {\n break;\n }\n groupPointer = groupPointer.getParent();\n }\n return groupPointer;\n };\n ColumnModel.prototype.isPinningLeft = function () {\n return this.displayedColumnsLeft.length > 0;\n };\n ColumnModel.prototype.isPinningRight = function () {\n return this.displayedColumnsRight.length > 0;\n };\n ColumnModel.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread$f([\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n this.secondaryColumns || [],\n ]));\n };\n ColumnModel.prototype.getPrimaryAndAutoGroupCols = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread$f([\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n ]));\n };\n ColumnModel.prototype.getPrimaryAndSecondaryColumns = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread$f([\n this.primaryColumns || [],\n this.secondaryColumns || [],\n ]));\n };\n ColumnModel.prototype.createStateItemFromColumn = function (column) {\n var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;\n var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;\n var aggFunc = column.isValueActive() ? column.getAggFunc() : null;\n var sort = column.getSort() != null ? column.getSort() : null;\n var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;\n var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;\n var res = {\n colId: column.getColId(),\n width: column.getActualWidth(),\n hide: !column.isVisible(),\n pinned: column.getPinned(),\n sort: sort,\n sortIndex: sortIndex,\n aggFunc: aggFunc,\n rowGroup: column.isRowGroupActive(),\n rowGroupIndex: rowGroupIndex,\n pivot: column.isPivotActive(),\n pivotIndex: pivotIndex,\n flex: flex\n };\n return res;\n };\n ColumnModel.prototype.getColumnState = function () {\n if (missing(this.primaryColumns) || !this.isAlive()) {\n return [];\n }\n var colsForState = this.getPrimaryAndSecondaryAndAutoColumns();\n var res = colsForState.map(this.createStateItemFromColumn.bind(this));\n this.orderColumnStateList(res);\n return res;\n };\n ColumnModel.prototype.orderColumnStateList = function (columnStateList) {\n // for fast looking, store the index of each column\n var colIdToGridIndexMap = convertToMap(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));\n columnStateList.sort(function (itemA, itemB) {\n var posA = colIdToGridIndexMap.has(itemA.colId) ? colIdToGridIndexMap.get(itemA.colId) : -1;\n var posB = colIdToGridIndexMap.has(itemB.colId) ? colIdToGridIndexMap.get(itemB.colId) : -1;\n return posA - posB;\n });\n };\n ColumnModel.prototype.resetColumnState = function (source) {\n // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,\n // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.\n // As a work around, developers should just put lockPosition columns first in their colDef list.\n if (source === void 0) { source = \"api\"; }\n // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list\n var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n var columnStates = [];\n // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.\n // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,\n // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000\n var letRowGroupIndex = 1000;\n var letPivotIndex = 1000;\n var colsToProcess = [];\n if (this.groupAutoColumns) {\n colsToProcess = colsToProcess.concat(this.groupAutoColumns);\n }\n if (primaryColumns) {\n colsToProcess = colsToProcess.concat(primaryColumns);\n }\n colsToProcess.forEach(function (column) {\n var getValueOrNull = function (a, b) { return a != null ? a : b != null ? b : null; };\n var colDef = column.getColDef();\n var sort = getValueOrNull(colDef.sort, colDef.initialSort);\n var sortIndex = getValueOrNull(colDef.sortIndex, colDef.initialSortIndex);\n var hide = getValueOrNull(colDef.hide, colDef.initialHide);\n var pinned = getValueOrNull(colDef.pinned, colDef.initialPinned);\n var width = getValueOrNull(colDef.width, colDef.initialWidth);\n var flex = getValueOrNull(colDef.flex, colDef.initialFlex);\n var rowGroupIndex = getValueOrNull(colDef.rowGroupIndex, colDef.initialRowGroupIndex);\n var rowGroup = getValueOrNull(colDef.rowGroup, colDef.initialRowGroup);\n if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {\n rowGroupIndex = null;\n rowGroup = null;\n }\n var pivotIndex = getValueOrNull(colDef.pivotIndex, colDef.initialPivotIndex);\n var pivot = getValueOrNull(colDef.pivot, colDef.initialPivot);\n if (pivotIndex == null && (pivot == null || pivot == false)) {\n pivotIndex = null;\n pivot = null;\n }\n var aggFunc = getValueOrNull(colDef.aggFunc, colDef.initialAggFunc);\n var stateItem = {\n colId: column.getColId(),\n sort: sort,\n sortIndex: sortIndex,\n hide: hide,\n pinned: pinned,\n width: width,\n flex: flex,\n rowGroup: rowGroup,\n rowGroupIndex: rowGroupIndex,\n pivot: pivot,\n pivotIndex: pivotIndex,\n aggFunc: aggFunc,\n };\n if (missing(rowGroupIndex) && rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(pivotIndex) && pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n };\n ColumnModel.prototype.applyColumnState = function (params, source) {\n var _this = this;\n if (missingOrEmpty(this.primaryColumns)) {\n return false;\n }\n if (params && params.state && !params.state.forEach) {\n console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');\n return false;\n }\n var applyStates = function (states, existingColumns, getById) {\n var raiseEventsFunc = _this.compareColumnStatesAndRaiseEvents(source);\n _this.autoGroupsNeedBuilding = true;\n // at the end below, this list will have all columns we got no state for\n var columnsWithNoState = existingColumns.slice();\n var rowGroupIndexes = {};\n var pivotIndexes = {};\n var autoGroupColumnStates = [];\n // If pivoting is modified, these are the states we try to reapply after\n // the secondary columns are re-generated\n var unmatchedAndAutoStates = [];\n var unmatchedCount = 0;\n var previousRowGroupCols = _this.rowGroupColumns.slice();\n var previousPivotCols = _this.pivotColumns.slice();\n states.forEach(function (state) {\n var colId = state.colId || '';\n // auto group columns are re-created so deferring syncing with ColumnState\n var isAutoGroupColumn = colId.startsWith(Constants.GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupColumn) {\n autoGroupColumnStates.push(state);\n unmatchedAndAutoStates.push(state);\n return;\n }\n var column = getById(colId);\n if (!column) {\n unmatchedAndAutoStates.push(state);\n unmatchedCount += 1;\n }\n else {\n _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n removeFromArray(columnsWithNoState, column);\n }\n });\n // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden\n var applyDefaultsFunc = function (col) {\n return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n };\n columnsWithNoState.forEach(applyDefaultsFunc);\n // sort the lists according to the indexes that were provided\n var comparator = function (indexes, oldList, colA, colB) {\n var indexA = indexes[colA.getId()];\n var indexB = indexes[colB.getId()];\n var aHasIndex = indexA != null;\n var bHasIndex = indexB != null;\n if (aHasIndex && bHasIndex) {\n // both a and b are new cols with index, so sort on index\n return indexA - indexB;\n }\n if (aHasIndex) {\n // a has an index, so it should be before a\n return -1;\n }\n if (bHasIndex) {\n // b has an index, so it should be before a\n return 1;\n }\n var oldIndexA = oldList.indexOf(colA);\n var oldIndexB = oldList.indexOf(colB);\n var aHasOldIndex = oldIndexA >= 0;\n var bHasOldIndex = oldIndexB >= 0;\n if (aHasOldIndex && bHasOldIndex) {\n // both a and b are old cols, so sort based on last order\n return oldIndexA - oldIndexB;\n }\n if (aHasOldIndex) {\n // a is old, b is new, so b is first\n return -1;\n }\n // this bit does matter, means both are new cols\n // but without index or that b is old and a is new\n return 1;\n };\n _this.rowGroupColumns.sort(comparator.bind(_this, rowGroupIndexes, previousRowGroupCols));\n _this.pivotColumns.sort(comparator.bind(_this, pivotIndexes, previousPivotCols));\n _this.updateGridColumns();\n // sync newly created auto group columns with ColumnState\n var autoGroupColsCopy = _this.groupAutoColumns ? _this.groupAutoColumns.slice() : [];\n autoGroupColumnStates.forEach(function (stateItem) {\n var autoCol = _this.getAutoColumn(stateItem.colId);\n removeFromArray(autoGroupColsCopy, autoCol);\n _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);\n });\n // autogroup cols with nothing else, apply the default\n autoGroupColsCopy.forEach(applyDefaultsFunc);\n _this.applyOrderAfterApplyState(params);\n _this.updateDisplayedColumns(source);\n _this.dispatchEverythingChanged(source);\n raiseEventsFunc(); // Will trigger secondary column changes if pivoting modified\n return { unmatchedAndAutoStates: unmatchedAndAutoStates, unmatchedCount: unmatchedCount };\n };\n this.columnAnimationService.start();\n var _a = applyStates(params.state || [], this.primaryColumns || [], function (id) { return _this.getPrimaryColumn(id); }), unmatchedAndAutoStates = _a.unmatchedAndAutoStates, unmatchedCount = _a.unmatchedCount;\n // If there are still states left over, see if we can apply them to newly generated\n // secondary or auto columns. Also if defaults exist, ensure they are applied to secondary cols\n if (unmatchedAndAutoStates.length > 0 || exists(params.defaultState)) {\n unmatchedCount = applyStates(unmatchedAndAutoStates, this.secondaryColumns || [], function (id) { return _this.getSecondaryColumn(id); }).unmatchedCount;\n }\n this.columnAnimationService.finish();\n return unmatchedCount === 0; // Successful if no states unaccounted for\n };\n ColumnModel.prototype.applyOrderAfterApplyState = function (params) {\n var _this = this;\n if (!params.applyOrder || !params.state) {\n return;\n }\n var newOrder = [];\n var processedColIds = {};\n params.state.forEach(function (item) {\n if (!item.colId || processedColIds[item.colId]) {\n return;\n }\n var col = _this.gridColumnsMap[item.colId];\n if (col) {\n newOrder.push(col);\n processedColIds[item.colId] = true;\n }\n });\n // add in all other columns\n var autoGroupInsertIndex = 0;\n this.gridColumns.forEach(function (col) {\n var colId = col.getColId();\n var alreadyProcessed = processedColIds[colId] != null;\n if (alreadyProcessed) {\n return;\n }\n var isAutoGroupCol = colId.startsWith(Constants.GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupCol) {\n // auto group columns, if missing from state list, are added to the start.\n // it's common to have autoGroup missing, as grouping could be on by default\n // on a column, but the user could of since removed the grouping via the UI.\n // if we don't inc the insert index, autoGroups will be inserted in reverse order\n insertIntoArray(newOrder, col, autoGroupInsertIndex++);\n }\n else {\n // normal columns, if missing from state list, are added at the end\n newOrder.push(col);\n }\n });\n // this is already done in updateGridColumns, however we changed the order above (to match the order of the state\n // columns) so we need to do it again. we could of put logic into the order above to take into account fixed\n // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here\n // is less sexy for the code here, but it keeps consistency.\n newOrder = this.placeLockedColumns(newOrder);\n if (!this.doesMovePassMarryChildren(newOrder)) {\n console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');\n return;\n }\n this.gridColumns = newOrder;\n };\n ColumnModel.prototype.compareColumnStatesAndRaiseEvents = function (source) {\n var _this = this;\n var startState = {\n rowGroupColumns: this.rowGroupColumns.slice(),\n pivotColumns: this.pivotColumns.slice(),\n valueColumns: this.valueColumns.slice()\n };\n var columnStateBefore = this.getColumnState();\n var columnStateBeforeMap = {};\n columnStateBefore.forEach(function (col) {\n columnStateBeforeMap[col.colId] = col;\n });\n return function () {\n if (_this.gridOptionsWrapper.isSuppressColumnStateEvents()) {\n return;\n }\n var colsForState = _this.getPrimaryAndSecondaryAndAutoColumns();\n // raises generic ColumnEvents where all columns are returned rather than what has changed\n var raiseWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {\n var beforeList = colsBefore.map(idMapper);\n var afterList = colsAfter.map(idMapper);\n var unchanged = areEqual(beforeList, afterList);\n if (unchanged) {\n return;\n }\n // returning all columns rather than what has changed!\n var event = {\n type: eventType,\n columns: colsAfter,\n column: colsAfter.length === 1 ? colsAfter[0] : null,\n source: source\n };\n _this.eventService.dispatchEvent(event);\n };\n // determines which columns have changed according to supplied predicate\n var getChangedColumns = function (changedPredicate) {\n var changedColumns = [];\n colsForState.forEach(function (column) {\n var colStateBefore = columnStateBeforeMap[column.getColId()];\n if (colStateBefore && changedPredicate(colStateBefore, column)) {\n changedColumns.push(column);\n }\n });\n return changedColumns;\n };\n var columnIdMapper = function (c) { return c.getColId(); };\n raiseWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);\n raiseWhenListsDifferent(Events.EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);\n var valueChangePredicate = function (cs, c) {\n var oldActive = cs.aggFunc != null;\n var activeChanged = oldActive != c.isValueActive();\n // we only check aggFunc if the agg is active\n var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();\n return activeChanged || aggFuncChanged;\n };\n var changedValues = getChangedColumns(valueChangePredicate);\n if (changedValues.length > 0) {\n // we pass all value columns, now the ones that changed. this is the same\n // as pivot and rowGroup cols, but different to all other properties below.\n // this is more for backwards compatibility, as it's always been this way.\n // really it should be the other way, as the order of the cols makes no difference\n // for valueColumns (apart from displaying them in the tool panel).\n _this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);\n }\n var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };\n _this.fireColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };\n _this.raiseColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };\n _this.raiseColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);\n var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };\n if (getChangedColumns(sortChangePredicate).length > 0) {\n _this.sortController.dispatchSortChangedEvents(source);\n }\n // special handling for moved column events\n _this.raiseColumnMovedEvent(columnStateBefore, source);\n };\n };\n ColumnModel.prototype.raiseColumnPinnedEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'\n pinned: pinned != null ? pinned : null,\n columns: changedColumns,\n column: column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.getCommonValue = function (cols, valueGetter) {\n if (!cols || cols.length == 0) {\n return undefined;\n }\n // compare each value to the first value. if nothing differs, then value is common so return it.\n var firstValue = valueGetter(cols[0]);\n for (var i = 1; i < cols.length; i++) {\n if (firstValue !== valueGetter(cols[i])) {\n // values differ, no common value\n return undefined;\n }\n }\n return firstValue;\n };\n ColumnModel.prototype.raiseColumnVisibleEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n columns: changedColumns,\n column: column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.raiseColumnMovedEvent = function (colStateBefore, source) {\n // we are only interested in columns that were both present and visible before and after\n var _this = this;\n var colStateAfter = this.getColumnState();\n var colStateAfterMapped = {};\n colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });\n // get id's of cols in both before and after lists\n var colsIntersectIds = {};\n colStateBefore.forEach(function (s) {\n if (colStateAfterMapped[s.colId]) {\n colsIntersectIds[s.colId] = true;\n }\n });\n // filter state lists, so we only have cols that were present before and after\n var beforeFiltered = colStateBefore.filter(function (c) { return colsIntersectIds[c.colId]; });\n var afterFiltered = colStateAfter.filter(function (c) { return colsIntersectIds[c.colId]; });\n // see if any cols are in a different location\n var movedColumns = [];\n afterFiltered.forEach(function (csAfter, index) {\n var csBefore = beforeFiltered && beforeFiltered[index];\n if (csBefore && csBefore.colId !== csAfter.colId) {\n var gridCol = _this.getGridColumn(csBefore.colId);\n if (gridCol) {\n movedColumns.push(gridCol);\n }\n }\n });\n if (!movedColumns.length) {\n return;\n }\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {\n if (!column) {\n return;\n }\n var getValue = function (key1, key2) {\n var obj = { value1: undefined, value2: undefined };\n var calculated = false;\n if (stateItem) {\n if (stateItem[key1] !== undefined) {\n obj.value1 = stateItem[key1];\n calculated = true;\n }\n if (exists(key2) && stateItem[key2] !== undefined) {\n obj.value2 = stateItem[key2];\n calculated = true;\n }\n }\n if (!calculated && defaultState) {\n if (defaultState[key1] !== undefined) {\n obj.value1 = defaultState[key1];\n }\n if (exists(key2) && defaultState[key2] !== undefined) {\n obj.value2 = defaultState[key2];\n }\n }\n return obj;\n };\n // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true\n var hide = getValue('hide').value1;\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // sets pinned to 'left' or 'right'\n var pinned = getValue('pinned').value1;\n if (pinned !== undefined) {\n column.setPinned(pinned);\n }\n // if width provided and valid, use it, otherwise stick with the old width\n var minColWidth = this.columnUtils.calculateColMinWidth(column.getColDef());\n // flex\n var flex = getValue('flex').value1;\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = getValue('width').value1;\n if (width != null) {\n if (minColWidth != null && width >= minColWidth) {\n column.setActualWidth(width, source);\n }\n }\n }\n var sort = getValue('sort').value1;\n if (sort !== undefined) {\n if (sort === Constants.SORT_DESC || sort === Constants.SORT_ASC) {\n column.setSort(sort, source);\n }\n else {\n column.setSort(undefined, source);\n }\n }\n var sortIndex = getValue('sortIndex').value1;\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // we do not do aggFunc, rowGroup or pivot for auto cols or secondary cols\n if (autoCol || !column.isPrimary()) {\n return;\n }\n var aggFunc = getValue('aggFunc').value1;\n if (aggFunc !== undefined) {\n if (typeof aggFunc === 'string') {\n column.setAggFunc(aggFunc);\n if (!column.isValueActive()) {\n column.setValueActive(true, source);\n this.valueColumns.push(column);\n }\n }\n else {\n if (exists(aggFunc)) {\n console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +\n 'functions, register the functions first before using them in get/set state. This is because it is ' +\n 'intended for the column state to be stored and retrieved as simple JSON.');\n }\n // Note: we do not call column.setAggFunc(null), so that next time we aggregate\n // by this column (eg drag the column to the agg section int he toolpanel) it will\n // default to the last aggregation function.\n if (column.isValueActive()) {\n column.setValueActive(false, source);\n removeFromArray(this.valueColumns, column);\n }\n }\n }\n var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;\n if (rowGroup !== undefined || rowGroupIndex !== undefined) {\n if (typeof rowGroupIndex === 'number' || rowGroup) {\n if (!column.isRowGroupActive()) {\n column.setRowGroupActive(true, source);\n this.rowGroupColumns.push(column);\n }\n if (rowGroupIndexes && typeof rowGroupIndex === 'number') {\n rowGroupIndexes[column.getId()] = rowGroupIndex;\n }\n }\n else {\n if (column.isRowGroupActive()) {\n column.setRowGroupActive(false, source);\n removeFromArray(this.rowGroupColumns, column);\n }\n }\n }\n var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;\n if (pivot !== undefined || pivotIndex !== undefined) {\n if (typeof pivotIndex === 'number' || pivot) {\n if (!column.isPivotActive()) {\n column.setPivotActive(true, source);\n this.pivotColumns.push(column);\n }\n if (pivotIndexes && typeof pivotIndex === 'number') {\n pivotIndexes[column.getId()] = pivotIndex;\n }\n }\n else {\n if (column.isPivotActive()) {\n column.setPivotActive(false, source);\n removeFromArray(this.pivotColumns, column);\n }\n }\n }\n };\n ColumnModel.prototype.getGridColumns = function (keys) {\n return this.getColumns(keys, this.getGridColumn.bind(this));\n };\n ColumnModel.prototype.getColumns = function (keys, columnLookupCallback) {\n var foundColumns = [];\n if (keys) {\n keys.forEach(function (key) {\n var column = columnLookupCallback(key);\n if (column) {\n foundColumns.push(column);\n }\n });\n }\n return foundColumns;\n };\n // used by growGroupPanel\n ColumnModel.prototype.getColumnWithValidation = function (key) {\n if (key == null) {\n return null;\n }\n var column = this.getGridColumn(key);\n if (!column) {\n console.warn('AG Grid: could not find column ' + key);\n }\n return column;\n };\n ColumnModel.prototype.getPrimaryColumn = function (key) {\n if (!this.primaryColumns) {\n return null;\n }\n return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);\n };\n ColumnModel.prototype.getGridColumn = function (key) {\n return this.getColumn(key, this.gridColumns, this.gridColumnsMap);\n };\n ColumnModel.prototype.getSecondaryColumn = function (key) {\n if (!this.secondaryColumns) {\n return null;\n }\n return this.getColumn(key, this.secondaryColumns, this.secondaryColumnsMap);\n };\n ColumnModel.prototype.getColumn = function (key, columnList, columnMap) {\n if (!key) {\n return null;\n }\n // most of the time this method gets called the key is a string, so we put this shortcut in\n // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)\n if (typeof key == 'string' && columnMap[key]) {\n return columnMap[key];\n }\n for (var i = 0; i < columnList.length; i++) {\n if (this.columnsMatch(columnList[i], key)) {\n return columnList[i];\n }\n }\n return this.getAutoColumn(key);\n };\n ColumnModel.prototype.getSourceColumnsForGroupColumn = function (groupCol) {\n var sourceColumnId = groupCol.getColDef().showRowGroup;\n if (!sourceColumnId) {\n return null;\n }\n if (sourceColumnId === true) {\n return this.rowGroupColumns.slice(0);\n }\n var column = this.getPrimaryColumn(sourceColumnId);\n return column ? [column] : null;\n };\n ColumnModel.prototype.getAutoColumn = function (key) {\n var _this = this;\n if (!this.groupAutoColumns ||\n !exists(this.groupAutoColumns) ||\n missing(this.groupAutoColumns)) {\n return null;\n }\n return this.groupAutoColumns.find(function (groupCol) { return _this.columnsMatch(groupCol, key); }) || null;\n };\n ColumnModel.prototype.columnsMatch = function (column, key) {\n var columnMatches = column === key;\n var colDefMatches = column.getColDef() === key;\n var idMatches = column.getColId() == key;\n return columnMatches || colDefMatches || idMatches;\n };\n ColumnModel.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {\n if (includeAggFunc === void 0) { includeAggFunc = false; }\n if (!column) {\n return null;\n }\n var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);\n if (includeAggFunc) {\n return this.wrapHeaderNameWithAggFunc(column, headerName);\n }\n return headerName;\n };\n ColumnModel.prototype.getDisplayNameForProvidedColumnGroup = function (columnGroup, providedColumnGroup, location) {\n var colGroupDef = providedColumnGroup ? providedColumnGroup.getColGroupDef() : null;\n if (colGroupDef) {\n return this.getHeaderName(colGroupDef, null, columnGroup, providedColumnGroup, location);\n }\n return null;\n };\n ColumnModel.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {\n return this.getDisplayNameForProvidedColumnGroup(columnGroup, columnGroup.getProvidedColumnGroup(), location);\n };\n // location is where the column is going to appear, ie who is calling us\n ColumnModel.prototype.getHeaderName = function (colDef, column, columnGroup, providedColumnGroup, location) {\n var headerValueGetter = colDef.headerValueGetter;\n if (headerValueGetter) {\n var params = {\n colDef: colDef,\n column: column,\n columnGroup: columnGroup,\n providedColumnGroup: providedColumnGroup,\n location: location,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n }\n else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n }\n console.warn('ag-grid: headerValueGetter must be a function or a string');\n return '';\n }\n else if (colDef.headerName != null) {\n return colDef.headerName;\n }\n else if (colDef.field) {\n return camelCaseToHumanText(colDef.field);\n }\n return '';\n };\n ColumnModel.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {\n if (this.gridOptionsWrapper.isSuppressAggFuncInHeader()) {\n return headerName;\n }\n // only columns with aggregation active can have aggregations\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotActiveOnThisColumn = exists(pivotValueColumn);\n var aggFunc = null;\n var aggFuncFound;\n // otherwise we have a measure that is active, and we are doing aggregation on it\n if (pivotActiveOnThisColumn) {\n var isCollapsedHeaderEnabled = this.gridOptionsWrapper.isRemovePivotHeaderRowWhenSingleValueColumn() && this.valueColumns.length === 1;\n var isTotalColumn = column.getColDef().pivotTotalColumnIds !== undefined;\n if (isCollapsedHeaderEnabled && !isTotalColumn) {\n return headerName; // Skip decorating the header - in this case the label is the pivot key, not the value col\n }\n aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;\n aggFuncFound = true;\n }\n else {\n var measureActive = column.isValueActive();\n var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();\n if (measureActive && aggregationPresent) {\n aggFunc = column.getAggFunc();\n aggFuncFound = true;\n }\n else {\n aggFuncFound = false;\n }\n }\n if (aggFuncFound) {\n var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n return aggFuncStringTranslated + \"(\" + headerName + \")\";\n }\n return headerName;\n };\n // returns the group with matching colId and instanceId. If instanceId is missing,\n // matches only on the colId.\n ColumnModel.prototype.getColumnGroup = function (colId, instanceId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n var allColumnGroups = this.getAllDisplayedTrees();\n var checkInstanceId = typeof instanceId === 'number';\n var result = null;\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n var matched = void 0;\n if (checkInstanceId) {\n matched = colId === columnGroup.getGroupId() && instanceId === columnGroup.getInstanceId();\n }\n else {\n matched = colId === columnGroup.getGroupId();\n }\n if (matched) {\n result = columnGroup;\n }\n }\n });\n return result;\n };\n ColumnModel.prototype.isReady = function () {\n return this.ready;\n };\n ColumnModel.prototype.extractValueColumns = function (source, oldPrimaryColumns) {\n this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); }, \n // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null\n function () { return undefined; }, function () { return undefined; }, \n // aggFunc is a string, so return it's existence\n function (colDef) {\n var aggFunc = colDef.aggFunc;\n // null or empty string means clear\n if (aggFunc === null || aggFunc === '') {\n return null;\n }\n if (aggFunc === undefined) {\n return;\n }\n return !!aggFunc;\n }, function (colDef) {\n // return false if any of the following: null, undefined, empty string\n return colDef.initialAggFunc != null && colDef.initialAggFunc != '';\n });\n // all new columns added will have aggFunc missing, so set it to what is in the colDef\n this.valueColumns.forEach(function (col) {\n var colDef = col.getColDef();\n // if aggFunc provided, we always override, as reactive property\n if (colDef.aggFunc != null && colDef.aggFunc != '') {\n col.setAggFunc(colDef.aggFunc);\n }\n else {\n // otherwise we use initialAggFunc only if no agg func set - which happens when new column only\n if (!col.getAggFunc()) {\n col.setAggFunc(colDef.initialAggFunc);\n }\n }\n });\n };\n ColumnModel.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {\n this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, function (col, flag) { return col.setRowGroupActive(flag, source); }, function (colDef) { return colDef.rowGroupIndex; }, function (colDef) { return colDef.initialRowGroupIndex; }, function (colDef) { return colDef.rowGroup; }, function (colDef) { return colDef.initialRowGroup; });\n };\n ColumnModel.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {\n if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }\n if (previousCols === void 0) { previousCols = []; }\n var colsWithIndex = [];\n var colsWithValue = [];\n // go though all cols.\n // if value, change\n // if default only, change only if new\n (this.primaryColumns || []).forEach(function (col) {\n var colIsNew = oldPrimaryColumns.indexOf(col) < 0;\n var colDef = col.getColDef();\n var value = attrToBoolean(getValueFunc(colDef));\n var initialValue = attrToBoolean(getInitialValueFunc(colDef));\n var index = attrToNumber(getIndexFunc(colDef));\n var initialIndex = attrToNumber(getInitialIndexFunc(colDef));\n var include;\n var valuePresent = value !== undefined;\n var indexPresent = index !== undefined;\n var initialValuePresent = initialValue !== undefined;\n var initialIndexPresent = initialIndex !== undefined;\n if (valuePresent) {\n include = value; // boolean value is guaranteed as attrToBoolean() is used above\n }\n else if (indexPresent) {\n if (index === null) {\n // if col is new we don't want to use the default / initial if index is set to null. Similarly,\n // we don't want to include the property for existing columns, i.e. we want to 'clear' it.\n include = false;\n }\n else {\n // note that 'null >= 0' evaluates to true which means 'rowGroupIndex = null' would enable row\n // grouping if the null check didn't exist above.\n include = index >= 0;\n }\n }\n else {\n if (colIsNew) {\n // as no value or index is 'present' we use the default / initial when col is new\n if (initialValuePresent) {\n include = initialValue;\n }\n else if (initialIndexPresent) {\n include = initialIndex != null && initialIndex >= 0;\n }\n else {\n include = false;\n }\n }\n else {\n // otherwise include it if included last time, e.g. if we are extracting row group cols and this col\n // is an existing row group col (i.e. it exists in 'previousCols') then we should include it.\n include = previousCols.indexOf(col) >= 0;\n }\n }\n if (include) {\n var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;\n useIndex ? colsWithIndex.push(col) : colsWithValue.push(col);\n }\n });\n var getIndexForCol = function (col) {\n var index = getIndexFunc(col.getColDef());\n var defaultIndex = getInitialIndexFunc(col.getColDef());\n return index != null ? index : defaultIndex;\n };\n // sort cols with index, and add these first\n colsWithIndex.sort(function (colA, colB) {\n var indexA = getIndexForCol(colA);\n var indexB = getIndexForCol(colB);\n if (indexA === indexB) {\n return 0;\n }\n if (indexA < indexB) {\n return -1;\n }\n return 1;\n });\n var res = [].concat(colsWithIndex);\n // second add columns that were there before and in the same order as they were before,\n // so we are preserving order of current grouping of columns that simply have rowGroup=true\n previousCols.forEach(function (col) {\n if (colsWithValue.indexOf(col) >= 0) {\n res.push(col);\n }\n });\n // lastly put in all remaining cols\n colsWithValue.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n res.push(col);\n }\n });\n // set flag=false for removed cols\n previousCols.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n setFlagFunc(col, false);\n }\n });\n // set flag=true for newly added cols\n res.forEach(function (col) {\n if (previousCols.indexOf(col) < 0) {\n setFlagFunc(col, true);\n }\n });\n return res;\n };\n ColumnModel.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {\n this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, function (col, flag) { return col.setPivotActive(flag, source); }, function (colDef) { return colDef.pivotIndex; }, function (colDef) { return colDef.initialPivotIndex; }, function (colDef) { return colDef.pivot; }, function (colDef) { return colDef.initialPivot; });\n };\n ColumnModel.prototype.resetColumnGroupState = function (source) {\n if (source === void 0) { source = \"api\"; }\n var stateItems = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {\n if (child instanceof ProvidedColumnGroup) {\n var colGroupDef = child.getColGroupDef();\n var groupState = {\n groupId: child.getGroupId(),\n open: !colGroupDef ? undefined : colGroupDef.openByDefault\n };\n stateItems.push(groupState);\n }\n });\n this.setColumnGroupState(stateItems, source);\n };\n ColumnModel.prototype.getColumnGroupState = function () {\n var columnGroupState = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n columnGroupState.push({\n groupId: node.getGroupId(),\n open: node.isExpanded()\n });\n }\n });\n return columnGroupState;\n };\n ColumnModel.prototype.setColumnGroupState = function (stateItems, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n var impactedGroups = [];\n stateItems.forEach(function (stateItem) {\n var groupKey = stateItem.groupId;\n var newValue = stateItem.open;\n var providedColumnGroup = _this.getProvidedColumnGroup(groupKey);\n if (!providedColumnGroup) {\n return;\n }\n if (providedColumnGroup.isExpanded() === newValue) {\n return;\n }\n _this.logger.log('columnGroupOpened(' + providedColumnGroup.getGroupId() + ',' + newValue + ')');\n providedColumnGroup.setExpanded(newValue);\n impactedGroups.push(providedColumnGroup);\n });\n this.updateGroupsAndDisplayedColumns(source);\n this.setFirstRightAndLastLeftPinned(source);\n impactedGroups.forEach(function (providedColumnGroup) {\n var event = {\n type: Events.EVENT_COLUMN_GROUP_OPENED,\n columnGroup: providedColumnGroup\n };\n _this.eventService.dispatchEvent(event);\n });\n this.columnAnimationService.finish();\n };\n // called by headerRenderer - when a header is opened or closed\n ColumnModel.prototype.setColumnGroupOpened = function (key, newValue, source) {\n if (source === void 0) { source = \"api\"; }\n var keyAsString;\n if (key instanceof ProvidedColumnGroup) {\n keyAsString = key.getId();\n }\n else {\n keyAsString = key || '';\n }\n this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);\n };\n ColumnModel.prototype.getProvidedColumnGroup = function (key) {\n // if (key instanceof ProvidedColumnGroup) { return key; }\n if (typeof key !== 'string') {\n console.error('AG Grid: group key must be a string');\n }\n // otherwise, search for the column group by id\n var res = null;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n if (node.getId() === key) {\n res = node;\n }\n }\n });\n return res;\n };\n ColumnModel.prototype.calculateColumnsForDisplay = function () {\n var _this = this;\n var columnsForDisplay;\n if (this.pivotMode && missing(this.secondaryColumns)) {\n // pivot mode is on, but we are not pivoting, so we only\n // show columns we are aggregating on\n columnsForDisplay = this.gridColumns.filter(function (column) {\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n var isValueCol = _this.valueColumns && includes(_this.valueColumns, column);\n return isAutoGroupCol || isValueCol;\n });\n }\n else {\n // otherwise continue as normal. this can be working on the primary\n // or secondary columns, whatever the gridColumns are set to\n columnsForDisplay = this.gridColumns.filter(function (column) {\n // keep col if a) it's auto-group or b) it's visible\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n return isAutoGroupCol || column.isVisible();\n });\n }\n return columnsForDisplay;\n };\n ColumnModel.prototype.checkColSpanActiveInCols = function (columns) {\n var result = false;\n columns.forEach(function (col) {\n if (exists(col.getColDef().colSpan)) {\n result = true;\n }\n });\n return result;\n };\n ColumnModel.prototype.calculateColumnsForGroupDisplay = function () {\n var _this = this;\n this.groupDisplayColumns = [];\n this.groupDisplayColumnsMap = {};\n var checkFunc = function (col) {\n var colDef = col.getColDef();\n var underlyingColumn = colDef.showRowGroup;\n if (colDef && exists(underlyingColumn)) {\n _this.groupDisplayColumns.push(col);\n if (typeof underlyingColumn === 'string') {\n _this.groupDisplayColumnsMap[underlyingColumn] = col;\n }\n else if (underlyingColumn === true) {\n _this.getRowGroupColumns().forEach(function (rowGroupCol) {\n _this.groupDisplayColumnsMap[rowGroupCol.getId()] = col;\n });\n }\n }\n };\n this.gridColumns.forEach(checkFunc);\n if (this.groupAutoColumns) {\n this.groupAutoColumns.forEach(checkFunc);\n }\n };\n ColumnModel.prototype.getGroupDisplayColumns = function () {\n return this.groupDisplayColumns;\n };\n ColumnModel.prototype.getGroupDisplayColumnForGroup = function (rowGroupColumnId) {\n return this.groupDisplayColumnsMap[rowGroupColumnId];\n };\n ColumnModel.prototype.updateDisplayedColumns = function (source) {\n var columnsForDisplay = this.calculateColumnsForDisplay();\n this.buildDisplayedTrees(columnsForDisplay);\n this.calculateColumnsForGroupDisplay();\n // also called when group opened/closed\n this.updateGroupsAndDisplayedColumns(source);\n // also called when group opened/closed\n this.setFirstRightAndLastLeftPinned(source);\n };\n ColumnModel.prototype.isSecondaryColumnsPresent = function () {\n return exists(this.secondaryColumns);\n };\n ColumnModel.prototype.setSecondaryColumns = function (colDefs, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var newColsPresent = colDefs && colDefs.length > 0;\n // if not cols passed, and we had no cols anyway, then do nothing\n if (!newColsPresent && missing(this.secondaryColumns)) {\n return;\n }\n if (newColsPresent) {\n this.processSecondaryColumnDefinitions(colDefs);\n var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false, this.secondaryBalancedTree || this.previousSecondaryColumns || undefined);\n this.secondaryBalancedTree = balancedTreeResult.columnTree;\n this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);\n this.secondaryColumnsMap = {};\n this.secondaryColumns.forEach(function (col) { return _this.secondaryColumnsMap[col.getId()] = col; });\n this.previousSecondaryColumns = null;\n }\n else {\n this.previousSecondaryColumns = this.secondaryBalancedTree;\n this.secondaryBalancedTree = null;\n this.secondaryHeaderRowCount = -1;\n this.secondaryColumns = null;\n this.secondaryColumnsMap = {};\n }\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n };\n ColumnModel.prototype.processSecondaryColumnDefinitions = function (colDefs) {\n var columnCallback = this.gridOptionsWrapper.getProcessPivotResultColDefFunc();\n var groupCallback = this.gridOptionsWrapper.getProcessPivotResultColGroupDefFunc();\n if (!columnCallback && !groupCallback) {\n return undefined;\n }\n var searchForColDefs = function (colDefs2) {\n colDefs2.forEach(function (abstractColDef) {\n var isGroup = exists(abstractColDef.children);\n if (isGroup) {\n var colGroupDef = abstractColDef;\n if (groupCallback) {\n groupCallback(colGroupDef);\n }\n searchForColDefs(colGroupDef.children);\n }\n else {\n var colDef = abstractColDef;\n if (columnCallback) {\n columnCallback(colDef);\n }\n }\n });\n };\n if (colDefs) {\n searchForColDefs(colDefs);\n }\n };\n // called from: setColumnState, setColumnDefs, setSecondaryColumns\n ColumnModel.prototype.updateGridColumns = function () {\n var _this = this;\n var prevGridCols = this.gridBalancedTree;\n if (this.gridColsArePrimary) {\n this.lastPrimaryOrder = this.gridColumns;\n }\n else {\n this.lastSecondaryOrder = this.gridColumns;\n }\n var sortOrderToRecover = undefined;\n if (this.secondaryColumns && this.secondaryBalancedTree) {\n var hasSameColumns = this.secondaryColumns.every(function (col) {\n return _this.gridColumnsMap[col.getColId()] !== undefined;\n });\n this.gridBalancedTree = this.secondaryBalancedTree.slice();\n this.gridHeaderRowCount = this.secondaryHeaderRowCount;\n this.gridColumns = this.secondaryColumns.slice();\n this.gridColsArePrimary = false;\n // If the current columns are the same or a subset of the previous\n // we keep the previous order, otherwise we go back to the order the pivot\n // cols are generated in\n if (hasSameColumns) {\n sortOrderToRecover = this.lastSecondaryOrder;\n }\n }\n else if (this.primaryColumns) {\n this.gridBalancedTree = this.primaryColumnTree.slice();\n this.gridHeaderRowCount = this.primaryHeaderRowCount;\n this.gridColumns = this.primaryColumns.slice();\n this.gridColsArePrimary = true;\n // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns\n // when this happens (eg if user moved a column) rather than revert back to the original column order.\n // likewise if changing in/out of pivot mode, we want to maintain the order of the cols\n sortOrderToRecover = this.lastPrimaryOrder;\n }\n // create the new auto columns\n var areAutoColsChanged = this.createGroupAutoColumnsIfNeeded();\n // if auto group cols have changed, and we have a sort order, we need to move auto cols to the start\n if (areAutoColsChanged && sortOrderToRecover) {\n var groupAutoColsMap_1 = convertToMap(this.groupAutoColumns.map(function (col) { return [col, true]; }));\n // if group columns has changed, we don't preserve the group column order, so remove them from the old order\n sortOrderToRecover = sortOrderToRecover.filter(function (col) { return !groupAutoColsMap_1.has(col); });\n // and add them to the start of the order\n sortOrderToRecover = __spread$f(this.groupAutoColumns, sortOrderToRecover);\n }\n this.addAutoGroupToGridColumns();\n this.orderGridColsLike(sortOrderToRecover);\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n this.setupQuickFilterColumns();\n this.clearDisplayedAndViewportColumns();\n this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);\n this.gridColumnsMap = {};\n this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });\n this.setAutoHeightActive();\n if (!areEqual(prevGridCols, this.gridBalancedTree)) {\n var event_4 = {\n type: Events.EVENT_GRID_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event_4);\n }\n };\n ColumnModel.prototype.setAutoHeightActive = function () {\n this.autoHeightActive = this.gridColumns.filter(function (col) { return col.isAutoHeight(); }).length > 0;\n if (this.autoHeightActive) {\n this.autoHeightActiveAtLeastOnce = true;\n var rowModelType = this.rowModel.getType();\n var supportedRowModel = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE || rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n if (!supportedRowModel) {\n var message_1 = 'AG Grid - autoHeight columns only work with Client Side Row Model and Server Side Row Model.';\n doOnce(function () { return console.warn(message_1); }, 'autoHeightActive.wrongRowModel');\n }\n }\n };\n ColumnModel.prototype.orderGridColsLike = function (colsOrder) {\n if (missing(colsOrder)) {\n return;\n }\n var lastOrderMapped = convertToMap(colsOrder.map(function (col, index) { return [col, index]; }));\n // only do the sort if at least one column is accounted for. columns will be not accounted for\n // if changing from secondary to primary columns\n var noColsFound = true;\n this.gridColumns.forEach(function (col) {\n if (lastOrderMapped.has(col)) {\n noColsFound = false;\n }\n });\n if (noColsFound) {\n return;\n }\n // order cols in the same order as before. we need to make sure that all\n // cols still exists, so filter out any that no longer exist.\n var gridColsMap = convertToMap(this.gridColumns.map(function (col) { return [col, true]; }));\n var oldColsOrdered = colsOrder.filter(function (col) { return gridColsMap.has(col); });\n var oldColsMap = convertToMap(oldColsOrdered.map(function (col) { return [col, true]; }));\n var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });\n // add in the new columns, at the end (if no group), or at the end of the group (if a group)\n var newGridColumns = oldColsOrdered.slice();\n newColsOrdered.forEach(function (newCol) {\n var parent = newCol.getOriginalParent();\n // if no parent, means we are not grouping, so just add the column to the end\n if (!parent) {\n newGridColumns.push(newCol);\n return;\n }\n // find the group the column belongs to. if no siblings at the current level (eg col in group on it's\n // own) then go up one level and look for siblings there.\n var siblings = [];\n while (!siblings.length && parent) {\n var leafCols = parent.getLeafColumns();\n leafCols.forEach(function (leafCol) {\n var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;\n var noYetInSiblings = siblings.indexOf(leafCol) < 0;\n if (presentInNewGriColumns && noYetInSiblings) {\n siblings.push(leafCol);\n }\n });\n parent = parent.getOriginalParent();\n }\n // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own\n if (!siblings.length) {\n newGridColumns.push(newCol);\n return;\n }\n // find index of last column in the group\n var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });\n var lastIndex = Math.max.apply(Math, __spread$f(indexes));\n insertIntoArray(newGridColumns, newCol, lastIndex + 1);\n });\n this.gridColumns = newGridColumns;\n };\n ColumnModel.prototype.isPrimaryColumnGroupsPresent = function () {\n return this.primaryHeaderRowCount > 1;\n };\n // if we are using autoGroupCols, then they should be included for quick filter. this covers the\n // following scenarios:\n // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on\n // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this\n // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)\n ColumnModel.prototype.setupQuickFilterColumns = function () {\n if (this.groupAutoColumns) {\n this.columnsForQuickFilter = (this.primaryColumns || []).concat(this.groupAutoColumns);\n }\n else if (this.primaryColumns) {\n this.columnsForQuickFilter = this.primaryColumns;\n }\n };\n ColumnModel.prototype.placeLockedColumns = function (cols) {\n var left = [];\n var normal = [];\n var right = [];\n cols.forEach(function (col) {\n var position = col.getColDef().lockPosition;\n if (position === 'right') {\n right.push(col);\n }\n else if (position === 'left' || position === true) {\n left.push(col);\n }\n else {\n normal.push(col);\n }\n });\n return __spread$f(left, normal, right);\n };\n ColumnModel.prototype.addAutoGroupToGridColumns = function () {\n if (missing(this.groupAutoColumns)) {\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n var autoColBalancedTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.gridBalancedTree = autoColBalancedTree.concat(this.gridBalancedTree);\n };\n // gets called after we copy down grid columns, to make sure any part of the gui\n // that tries to draw, eg the header, it will get empty lists of columns rather\n // than stale columns. for example, the header will received gridColumnsChanged\n // event, so will try and draw, but it will draw successfully when it acts on the\n // virtualColumnsChanged event\n ColumnModel.prototype.clearDisplayedAndViewportColumns = function () {\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n this.displayedColumns = [];\n this.viewportColumns = [];\n this.headerViewportColumns = [];\n this.viewportColumnsHash = '';\n };\n ColumnModel.prototype.updateGroupsAndDisplayedColumns = function (source) {\n this.updateOpenClosedVisibilityInColumnGroups();\n this.deriveDisplayedColumns(source);\n this.refreshFlexedColumns();\n this.extractViewport();\n this.updateBodyWidths();\n // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display\n var event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.deriveDisplayedColumns = function (source) {\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);\n this.joinDisplayedColumns();\n this.setLeftValues(source);\n this.displayedAutoHeightCols = this.displayedColumns.filter(function (col) { return col.isAutoHeight(); });\n };\n ColumnModel.prototype.isAutoRowHeightActive = function () {\n return this.autoHeightActive;\n };\n ColumnModel.prototype.wasAutoRowHeightEverActive = function () {\n return this.autoHeightActiveAtLeastOnce;\n };\n ColumnModel.prototype.joinDisplayedColumns = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.displayedColumns = this.displayedColumnsRight\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsLeft);\n }\n else {\n this.displayedColumns = this.displayedColumnsLeft\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsRight);\n }\n };\n // sets the left pixel position of each column\n ColumnModel.prototype.setLeftValues = function (source) {\n this.setLeftValuesOfColumns(source);\n this.setLeftValuesOfGroups();\n };\n ColumnModel.prototype.setLeftValuesOfColumns = function (source) {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n // go through each list of displayed columns\n var allColumns = this.primaryColumns.slice(0);\n // let totalColumnWidth = this.getWidthOfColsInList()\n var doingRtl = this.gridOptionsWrapper.isEnableRtl();\n [\n this.displayedColumnsLeft,\n this.displayedColumnsRight,\n this.displayedColumnsCenter\n ].forEach(function (columns) {\n if (doingRtl) {\n // when doing RTL, we start at the top most pixel (ie RHS) and work backwards\n var left_1 = _this.getWidthOfColsInList(columns);\n columns.forEach(function (column) {\n left_1 -= column.getActualWidth();\n column.setLeft(left_1, source);\n });\n }\n else {\n // otherwise normal LTR, we start at zero\n var left_2 = 0;\n columns.forEach(function (column) {\n column.setLeft(left_2, source);\n left_2 += column.getActualWidth();\n });\n }\n removeAllFromArray(allColumns, columns);\n });\n // items left in allColumns are columns not displayed, so remove the left position. this is\n // important for the rows, as if a col is made visible, then taken out, then made visible again,\n // we don't want the animation of the cell floating in from the old position, whatever that was.\n allColumns.forEach(function (column) {\n column.setLeft(null, source);\n });\n };\n ColumnModel.prototype.setLeftValuesOfGroups = function () {\n // a groups left value is the lest left value of it's children\n [\n this.displayedTreeLeft,\n this.displayedTreeRight,\n this.displayedTreeCentre\n ].forEach(function (columns) {\n columns.forEach(function (column) {\n if (column instanceof ColumnGroup) {\n var columnGroup = column;\n columnGroup.checkLeft();\n }\n });\n });\n };\n ColumnModel.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {\n columns.length = 0;\n this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {\n if (child instanceof Column) {\n columns.push(child);\n }\n });\n };\n ColumnModel.prototype.extractViewportColumns = function () {\n if (this.suppressColumnVirtualisation) {\n // no virtualisation, so don't filter\n this.viewportColumnsCenter = this.displayedColumnsCenter;\n this.headerViewportColumnsCenter = this.displayedColumnsCenter;\n }\n else {\n // filter out what should be visible\n this.viewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInRowViewport.bind(this));\n this.headerViewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInHeaderViewport.bind(this));\n }\n this.viewportColumns = this.viewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n this.headerViewportColumns = this.headerViewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n };\n ColumnModel.prototype.getVirtualHeaderGroupRow = function (type, dept) {\n var result;\n switch (type) {\n case Constants.PINNED_LEFT:\n result = this.viewportRowLeft[dept];\n break;\n case Constants.PINNED_RIGHT:\n result = this.viewportRowRight[dept];\n break;\n default:\n result = this.viewportRowCenter[dept];\n break;\n }\n if (missing(result)) {\n result = [];\n }\n return result;\n };\n ColumnModel.prototype.calculateHeaderRows = function () {\n // go through each group, see if any of it's cols are displayed, and if yes,\n // then this group is included\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n // for easy lookup when building the groups.\n var virtualColIds = {};\n this.headerViewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });\n var testGroup = function (children, result, dept) {\n var returnValue = false;\n for (var i = 0; i < children.length; i++) {\n // see if this item is within viewport\n var child = children[i];\n var addThisItem = false;\n if (child instanceof Column) {\n // for column, test if column is included\n addThisItem = virtualColIds[child.getId()] === true;\n }\n else {\n // if group, base decision on children\n var columnGroup = child;\n var displayedChildren = columnGroup.getDisplayedChildren();\n if (displayedChildren) {\n addThisItem = testGroup(displayedChildren, result, dept + 1);\n }\n }\n if (addThisItem) {\n returnValue = true;\n if (!result[dept]) {\n result[dept] = [];\n }\n result[dept].push(child);\n }\n }\n return returnValue;\n };\n testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);\n testGroup(this.displayedTreeRight, this.viewportRowRight, 0);\n testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);\n };\n ColumnModel.prototype.extractViewport = function () {\n var hashColumn = function (c) { return c.getId() + \"-\" + (c.getPinned() || 'normal'); };\n this.extractViewportColumns();\n var newHash = this.viewportColumns.map(hashColumn).join('#');\n var changed = this.viewportColumnsHash !== newHash;\n if (changed) {\n this.viewportColumnsHash = newHash;\n this.calculateHeaderRows();\n }\n return changed;\n };\n ColumnModel.prototype.refreshFlexedColumns = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var source = params.source ? params.source : 'flex';\n if (params.viewportWidth != null) {\n this.flexViewportWidth = params.viewportWidth;\n }\n if (!this.flexViewportWidth) {\n return [];\n }\n // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.\n // A \"flexing column\" is one that has a 'flex' value set and is not currently being constrained by its\n // minWidth or maxWidth rules.\n var flexAfterDisplayIndex = -1;\n if (params.resizingCols) {\n params.resizingCols.forEach(function (col) {\n var indexOfCol = _this.displayedColumnsCenter.indexOf(col);\n if (flexAfterDisplayIndex < indexOfCol) {\n flexAfterDisplayIndex = indexOfCol;\n }\n });\n }\n var isColFlex = function (col) {\n var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;\n return col.getFlex() && afterResizingCols;\n };\n var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });\n var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });\n var changedColumns = [];\n if (!flexingColumns.length) {\n return [];\n }\n var flexingColumnSizes = [];\n var spaceForFlexingColumns;\n outer: while (true) {\n var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);\n spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);\n for (var i = 0; i < flexingColumns.length; i++) {\n var col = flexingColumns[i];\n var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;\n var constrainedWidth = 0;\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && widthByFlexRule < minWidth) {\n constrainedWidth = minWidth;\n }\n else if (exists(maxWidth) && widthByFlexRule > maxWidth) {\n constrainedWidth = maxWidth;\n }\n if (constrainedWidth) {\n // This column is not in fact flexing as it is being constrained to a specific size\n // so remove it from the list of flexing columns and start again\n col.setActualWidth(constrainedWidth, source);\n removeFromArray(flexingColumns, col);\n changedColumns.push(col);\n knownWidthColumns.push(col);\n continue outer;\n }\n flexingColumnSizes[i] = Math.round(widthByFlexRule);\n }\n break;\n }\n var remainingSpace = spaceForFlexingColumns;\n flexingColumns.forEach(function (col, i) {\n col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);\n changedColumns.push(col);\n remainingSpace -= flexingColumnSizes[i];\n });\n if (!params.skipSetLeft) {\n this.setLeftValues(source);\n }\n if (params.updateBodyWidths) {\n this.updateBodyWidths();\n }\n if (params.fireResizedEvent) {\n this.fireColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n // if the user sets rowData directly into GridOptions, then the row data is set before\n // grid is attached to the DOM. this means the columns are not flexed, and then the rows\n // have the wrong height (as they depend on column widths). so once the columns have\n // been flexed for the first time (only happens once grid is attached to DOM, as dependency\n // on getting the grid width, which only happens after attached after ResizeObserver fires)\n // we get get rows to re-calc their heights.\n if (!this.flexColsCalculatedAtLestOnce) {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.rowModel.resetRowHeights();\n }\n this.flexColsCalculatedAtLestOnce = true;\n }\n return flexingColumns;\n };\n // called from api\n ColumnModel.prototype.sizeColumnsToFit = function (gridWidth, source, silent, params) {\n if (source === void 0) { source = \"sizeColumnsToFit\"; }\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var limitsMap = {};\n if (params) {\n (_b = (_a = params) === null || _a === void 0 ? void 0 : _a.columnLimits) === null || _b === void 0 ? void 0 : _b.forEach(function (_a) {\n var key = _a.key, dimensions = __rest(_a, [\"key\"]);\n limitsMap[typeof key === 'string' ? key : key.getColId()] = dimensions;\n });\n }\n // avoid divide by zero\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var doColumnsAlreadyFit = gridWidth === this.getWidthOfColsInList(allDisplayedColumns);\n if (gridWidth <= 0 || !allDisplayedColumns.length || doColumnsAlreadyFit) {\n return;\n }\n var colsToSpread = [];\n var colsToNotSpread = [];\n allDisplayedColumns.forEach(function (column) {\n if (column.getColDef().suppressSizeToFit === true) {\n colsToNotSpread.push(column);\n }\n else {\n colsToSpread.push(column);\n }\n });\n // make a copy of the cols that are going to be resized\n var colsToFireEventFor = colsToSpread.slice(0);\n var finishedResizing = false;\n var moveToNotSpread = function (column) {\n removeFromArray(colsToSpread, column);\n colsToNotSpread.push(column);\n };\n // resetting cols to their original width makes the sizeColumnsToFit more deterministic,\n // rather than depending on the current size of the columns. most users call sizeColumnsToFit\n // immediately after grid is created, so will make no difference. however if application is calling\n // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want\n // the columns to start shrinking / growing over time.\n //\n // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events\n // for this reason we need to manually fire resize events after the resize has been done for each column.\n colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });\n while (!finishedResizing) {\n finishedResizing = true;\n var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);\n if (availablePixels <= 0) {\n // no width, set everything to minimum\n colsToSpread.forEach(function (column) {\n var _a, _b, _c, _d;\n var widthOverride = (_c = (_b = (_a = limitsMap) === null || _a === void 0 ? void 0 : _a[column.getId()]) === null || _b === void 0 ? void 0 : _b.minWidth, (_c !== null && _c !== void 0 ? _c : (_d = params) === null || _d === void 0 ? void 0 : _d.defaultMinWidth));\n if (typeof widthOverride === 'number') {\n column.setActualWidth(widthOverride);\n return;\n }\n column.setMinimum(source);\n });\n }\n else {\n var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);\n // we set the pixels for the last col based on what's left, as otherwise\n // we could be a pixel or two short or extra because of rounding errors.\n var pixelsForLastCol = availablePixels;\n // backwards through loop, as we are removing items as we go\n for (var i = colsToSpread.length - 1; i >= 0; i--) {\n var column = colsToSpread[i];\n var widthOverride = (_c = limitsMap) === null || _c === void 0 ? void 0 : _c[column.getId()];\n var minOverride = (_e = (_d = widthOverride) === null || _d === void 0 ? void 0 : _d.minWidth, (_e !== null && _e !== void 0 ? _e : (_f = params) === null || _f === void 0 ? void 0 : _f.defaultMinWidth));\n var maxOverride = (_h = (_g = widthOverride) === null || _g === void 0 ? void 0 : _g.maxWidth, (_h !== null && _h !== void 0 ? _h : (_j = params) === null || _j === void 0 ? void 0 : _j.defaultMaxWidth));\n var colMinWidth = (_k = column.getMinWidth(), (_k !== null && _k !== void 0 ? _k : 0));\n var colMaxWidth = (_l = column.getMaxWidth(), (_l !== null && _l !== void 0 ? _l : Number.MAX_VALUE));\n var minWidth = typeof minOverride === 'number' && minOverride > colMinWidth ? minOverride : column.getMinWidth();\n var maxWidth = typeof maxOverride === 'number' && maxOverride < colMaxWidth ? maxOverride : column.getMaxWidth();\n var newWidth = Math.round(column.getActualWidth() * scale);\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (exists(maxWidth) && newWidth > maxWidth) {\n newWidth = maxWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (i === 0) { // if this is the last column\n newWidth = pixelsForLastCol;\n }\n column.setActualWidth(newWidth, source, true);\n pixelsForLastCol -= newWidth;\n }\n }\n }\n // see notes above\n colsToFireEventFor.forEach(function (col) {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.fireColumnResizedEvent(colsToFireEventFor, true, source);\n };\n ColumnModel.prototype.buildDisplayedTrees = function (visibleColumns) {\n var leftVisibleColumns = [];\n var rightVisibleColumns = [];\n var centerVisibleColumns = [];\n visibleColumns.forEach(function (column) {\n switch (column.getPinned()) {\n case \"left\":\n leftVisibleColumns.push(column);\n break;\n case \"right\":\n rightVisibleColumns.push(column);\n break;\n default:\n centerVisibleColumns.push(column);\n break;\n }\n });\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_LEFT, this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_RIGHT, this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);\n this.updateDisplayedMap();\n };\n ColumnModel.prototype.updateDisplayedMap = function () {\n var _this = this;\n this.displayedColumnsAndGroupsMap = {};\n var func = function (child) {\n _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;\n };\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);\n };\n ColumnModel.prototype.isDisplayed = function (item) {\n var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];\n // check for reference, in case new column / group with same id is now present\n return fromMap === item;\n };\n ColumnModel.prototype.updateOpenClosedVisibilityInColumnGroups = function () {\n var allColumnGroups = this.getAllDisplayedTrees();\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n columnGroup.calculateDisplayedColumns();\n }\n });\n };\n ColumnModel.prototype.getGroupAutoColumns = function () {\n return this.groupAutoColumns;\n };\n /**\n * Creates new auto group columns if required\n * @returns whether auto cols have changed\n */\n ColumnModel.prototype.createGroupAutoColumnsIfNeeded = function () {\n if (!this.autoGroupsNeedBuilding) {\n return false;\n }\n this.autoGroupsNeedBuilding = false;\n var groupFullWidthRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.pivotMode);\n // we need to allow suppressing auto-column separately for group and pivot as the normal situation\n // is CSRM and user provides group column themselves for normal view, but when they go into pivot the\n // columns are generated by the grid so no opportunity for user to provide group column. so need a way\n // to suppress auto-col for grouping only, and not pivot.\n // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control\n // of the group column in this instance.\n var suppressAutoColumn = this.pivotMode ?\n this.gridOptionsWrapper.isPivotSuppressAutoColumn() : this.gridOptionsWrapper.isGroupSuppressAutoColumn();\n var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;\n var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n var existingCols = this.groupAutoColumns || [];\n var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(existingCols, this.rowGroupColumns);\n var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate when suppressColumnStateEvents changes, so new group cols pick up the new\n // definitions. otherwise we could ignore the new cols because they appear to be the same.\n if (autoColsDifferent || this.forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n return true;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n return false;\n };\n ColumnModel.prototype.autoColsEqual = function (colsA, colsB) {\n return areEqual(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });\n };\n ColumnModel.prototype.getWidthOfColsInList = function (columnList) {\n return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n ColumnModel.prototype.getGridBalancedTree = function () {\n return this.gridBalancedTree;\n };\n ColumnModel.prototype.hasFloatingFilters = function () {\n if (!this.gridColumns) {\n return false;\n }\n var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });\n return res;\n };\n ColumnModel.prototype.getFirstDisplayedColumn = function () {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var queryOrder = [\n 'getDisplayedLeftColumns',\n 'getDisplayedCenterColumns',\n 'getDisplayedRightColumns'\n ];\n if (isRtl) {\n queryOrder.reverse();\n }\n for (var i = 0; i < queryOrder.length; i++) {\n var container = this[queryOrder[i]]();\n if (container.length) {\n return isRtl ? last(container) : container[0];\n }\n }\n return null;\n };\n ColumnModel.prototype.setColumnHeaderHeight = function (col, height) {\n var changed = col.setAutoHeaderHeight(height);\n if (changed) {\n var event_5 = {\n type: Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED,\n column: col,\n columns: [col],\n source: 'autosizeColumnHeaderHeight',\n };\n this.eventService.dispatchEvent(event_5);\n }\n };\n ColumnModel.prototype.getColumnGroupHeaderRowHeight = function () {\n if (this.isPivotMode()) {\n return this.gridOptionsWrapper.getPivotGroupHeaderHeight();\n }\n else {\n return this.gridOptionsWrapper.getGroupHeaderHeight();\n }\n };\n ColumnModel.prototype.getColumnHeaderRowHeight = function () {\n var defaultHeight = (this.isPivotMode() ?\n this.gridOptionsWrapper.getPivotHeaderHeight() :\n this.gridOptionsWrapper.getHeaderHeight());\n var displayedHeights = this.getAllDisplayedColumns()\n .filter(function (col) { return col.isAutoHeaderHeight(); })\n .map(function (col) { return col.getAutoHeaderHeight() || 0; });\n return Math.max.apply(Math, __spread$f([defaultHeight], displayedHeights));\n };\n __decorate$2u([\n Autowired('expressionService')\n ], ColumnModel.prototype, \"expressionService\", void 0);\n __decorate$2u([\n Autowired('columnFactory')\n ], ColumnModel.prototype, \"columnFactory\", void 0);\n __decorate$2u([\n Autowired('displayedGroupCreator')\n ], ColumnModel.prototype, \"displayedGroupCreator\", void 0);\n __decorate$2u([\n Autowired('ctrlsService')\n ], ColumnModel.prototype, \"ctrlsService\", void 0);\n __decorate$2u([\n Autowired('autoWidthCalculator')\n ], ColumnModel.prototype, \"autoWidthCalculator\", void 0);\n __decorate$2u([\n Autowired('columnUtils')\n ], ColumnModel.prototype, \"columnUtils\", void 0);\n __decorate$2u([\n Autowired('columnAnimationService')\n ], ColumnModel.prototype, \"columnAnimationService\", void 0);\n __decorate$2u([\n Autowired('autoGroupColService')\n ], ColumnModel.prototype, \"autoGroupColService\", void 0);\n __decorate$2u([\n Optional('aggFuncService')\n ], ColumnModel.prototype, \"aggFuncService\", void 0);\n __decorate$2u([\n Optional('valueCache')\n ], ColumnModel.prototype, \"valueCache\", void 0);\n __decorate$2u([\n Optional('animationFrameService')\n ], ColumnModel.prototype, \"animationFrameService\", void 0);\n __decorate$2u([\n Autowired('rowModel')\n ], ColumnModel.prototype, \"rowModel\", void 0);\n __decorate$2u([\n Autowired('sortController')\n ], ColumnModel.prototype, \"sortController\", void 0);\n __decorate$2u([\n Autowired('columnDefFactory')\n ], ColumnModel.prototype, \"columnDefFactory\", void 0);\n __decorate$2u([\n PostConstruct\n ], ColumnModel.prototype, \"init\", null);\n __decorate$2u([\n __param$7(0, Qualifier('loggerFactory'))\n ], ColumnModel.prototype, \"setBeans\", null);\n ColumnModel = __decorate$2u([\n Bean('columnModel')\n ], ColumnModel);\n return ColumnModel;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar ColumnUtils = /** @class */ (function (_super) {\n __extends$2S(ColumnUtils, _super);\n function ColumnUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnUtils.prototype.calculateColMinWidth = function (colDef) {\n return colDef.minWidth != null ? colDef.minWidth : this.gridOptionsWrapper.getMinColWidth();\n };\n ColumnUtils.prototype.calculateColMaxWidth = function (colDef) {\n return colDef.maxWidth != null ? colDef.maxWidth : (this.gridOptionsWrapper.getMaxColWidth() || Number.MAX_SAFE_INTEGER);\n };\n ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {\n var minColWidth = this.calculateColMinWidth(colDef);\n var maxColWidth = this.calculateColMaxWidth(colDef);\n var width;\n var colDefWidth = attrToNumber(colDef.width);\n var colDefInitialWidth = attrToNumber(colDef.initialWidth);\n if (colDefWidth != null) {\n width = colDefWidth;\n }\n else if (colDefInitialWidth != null) {\n width = colDefInitialWidth;\n }\n else {\n width = this.gridOptionsWrapper.getColWidth();\n }\n return Math.max(Math.min(width, maxColWidth), minColWidth);\n };\n ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {\n var result = [];\n var found = false;\n var recursePath = function (balancedColumnTree, dept) {\n for (var i = 0; i < balancedColumnTree.length; i++) {\n if (found) {\n return;\n }\n // quit the search, so 'result' is kept with the found result\n var node = balancedColumnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n var nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(originalBalancedTree, 0);\n // we should always find the path, but in case there is a bug somewhere, returning null\n // will make it fail rather than provide a 'hard to track down' bug\n return found ? result : null;\n };\n ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);\n }\n callback(child, parent);\n });\n };\n ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils = __decorate$2t([\n Bean('columnUtils')\n ], ColumnUtils);\n return ColumnUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar DisplayedGroupCreator = /** @class */ (function (_super) {\n __extends$2R(DisplayedGroupCreator, _super);\n function DisplayedGroupCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DisplayedGroupCreator.prototype.createDisplayedGroups = function (\n // all displayed columns sorted - this is the columns the grid should show\n sortedVisibleColumns, \n // the tree of columns, as provided by the users, used to know what groups columns roll up into\n balancedColumnTree, \n // creates unique id's for the group\n groupInstanceIdCreator, \n // whether it's left, right or center col\n pinned, \n // we try to reuse old groups if we can, to allow gui to do animation\n oldDisplayedGroups) {\n var _this = this;\n var result = [];\n var previousRealPath;\n var previousOriginalPath;\n var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n // go through each column, then do a bottom up comparison to the previous column, and start\n // to share groups if they converge at any point.\n sortedVisibleColumns.forEach(function (currentColumn) {\n var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);\n var currentRealPath = [];\n var firstColumn = !previousOriginalPath;\n for (var i = 0; i < currentOriginalPath.length; i++) {\n if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {\n // new group needed\n var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);\n currentRealPath[i] = newGroup;\n // if top level, add to result, otherwise add to parent\n if (i == 0) {\n result.push(newGroup);\n }\n else {\n currentRealPath[i - 1].addChild(newGroup);\n }\n }\n else {\n // reuse old group\n currentRealPath[i] = previousRealPath[i];\n }\n }\n var noColumnGroups = currentRealPath.length === 0;\n if (noColumnGroups) {\n // if we are not grouping, then the result of the above is an empty\n // path (no groups), and we just add the column to the root list.\n result.push(currentColumn);\n }\n else {\n var leafGroup = last(currentRealPath);\n leafGroup.addChild(currentColumn);\n }\n previousRealPath = currentRealPath;\n previousOriginalPath = currentOriginalPath;\n });\n this.setupParentsIntoColumns(result, null);\n return result;\n };\n DisplayedGroupCreator.prototype.createColumnGroup = function (providedGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {\n var groupId = providedGroup.getGroupId();\n var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);\n var uniqueId = ColumnGroup.createUniqueId(groupId, instanceId);\n var columnGroup = oldColumnsMapped[uniqueId];\n // if the user is setting new colDefs, it is possible that the id's overlap, and we\n // would have a false match from above. so we double check we are talking about the\n // same original column group.\n if (columnGroup && columnGroup.getProvidedColumnGroup() !== providedGroup) {\n columnGroup = null;\n }\n if (exists(columnGroup)) {\n // clean out the old column group here, as we will be adding children into it again\n columnGroup.reset();\n }\n else {\n columnGroup = new ColumnGroup(providedGroup, groupId, instanceId, pinned);\n this.context.createBean(columnGroup);\n }\n return columnGroup;\n };\n // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup\n DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {\n var result = {};\n var recursive = function (columnsOrGroups) {\n columnsOrGroups.forEach(function (columnOrGroup) {\n if (columnOrGroup instanceof ColumnGroup) {\n var columnGroup = columnOrGroup;\n result[columnOrGroup.getUniqueId()] = columnGroup;\n recursive(columnGroup.getChildren());\n }\n });\n };\n if (displayedGroups) {\n recursive(displayedGroups);\n }\n return result;\n };\n DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {\n var _this = this;\n columnsOrGroups.forEach(function (columnsOrGroup) {\n columnsOrGroup.setParent(parent);\n if (columnsOrGroup instanceof ColumnGroup) {\n var columnGroup = columnsOrGroup;\n _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);\n }\n });\n };\n DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {\n var result = [];\n var found = false;\n var recursePath = function (columnTree, dept) {\n for (var i = 0; i < columnTree.length; i++) {\n // quit the search, so 'result' is kept with the found result\n if (found) {\n return;\n }\n var node = columnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n recursePath(node.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(balancedColumnTree, 0);\n // it's possible we didn't find a path. this happens if the column is generated\n // by the grid (auto-group), in that the definition didn't come from the client. in this case,\n // we create a fake original path.\n if (found) {\n return result;\n }\n console.warn('AG Grid: could not get path');\n return null;\n };\n DisplayedGroupCreator = __decorate$2s([\n Bean('displayedGroupCreator')\n ], DisplayedGroupCreator);\n return DisplayedGroupCreator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgStackComponentsRegistry = /** @class */ (function (_super) {\n __extends$2Q(AgStackComponentsRegistry, _super);\n function AgStackComponentsRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.componentsMappedByName = {};\n return _this;\n }\n AgStackComponentsRegistry.prototype.setupComponents = function (components) {\n var _this = this;\n if (components) {\n components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });\n }\n };\n AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {\n // get name of the class as a string\n // let className = getNameOfClass(ComponentClass);\n // insert a dash after every capital letter\n // let classEscaped = className.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n // put all to upper case\n var classUpperCase = classEscaped.toUpperCase();\n // finally store\n this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;\n };\n AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {\n return this.componentsMappedByName[htmlTag];\n };\n AgStackComponentsRegistry = __decorate$2r([\n Bean('agStackComponentsRegistry')\n ], AgStackComponentsRegistry);\n return AgStackComponentsRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input.split('').map(function (p) { return parseInt(p, 16); }).map(function (p) { return p + p * 16; });\n break;\n }\n if (parts.length >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$k(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$k([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) { // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) { // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else { // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// Based on https://stackoverflow.com/a/14991797\n// This will parse a delimited string into an array of arrays.\nfunction stringToArray(strData, delimiter) {\n if (delimiter === void 0) { delimiter = ','; }\n var data = [];\n var isNewline = function (char) { return char === '\\r' || char === '\\n'; };\n var insideQuotedField = false;\n if (strData === '') {\n return [['']];\n }\n var _loop_1 = function (row, column, position) {\n var previousChar = strData[position - 1];\n var currentChar = strData[position];\n var nextChar = strData[position + 1];\n var ensureDataExists = function () {\n if (!data[row]) {\n // create row if it doesn't exist\n data[row] = [];\n }\n if (!data[row][column]) {\n // create column if it doesn't exist\n data[row][column] = '';\n }\n };\n ensureDataExists();\n if (currentChar === '\"') {\n if (insideQuotedField) {\n if (nextChar === '\"') {\n // unescape double quote\n data[row][column] += '\"';\n position++;\n }\n else {\n // exit quoted field\n insideQuotedField = false;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {\n // enter quoted field\n insideQuotedField = true;\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n if (!insideQuotedField) {\n if (currentChar === delimiter) {\n // move to next column\n column++;\n ensureDataExists();\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (isNewline(currentChar)) {\n // move to next row\n column = 0;\n row++;\n ensureDataExists();\n if (currentChar === '\\r' && nextChar === '\\n') {\n // skip over second newline character if it exists\n position++;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n // add current character to current column\n data[row][column] += currentChar;\n out_row_1 = row;\n out_column_1 = column;\n out_position_1 = position;\n };\n var out_row_1, out_column_1, out_position_1;\n // iterate over each character, keep track of current row and column (of the returned array)\n for (var row = 0, column = 0, position = 0; position < strData.length; position++) {\n _loop_1(row, column, position);\n row = out_row_1;\n column = out_column_1;\n position = out_position_1;\n }\n return data;\n}\n\nvar CsvUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n stringToArray: stringToArray\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar rtlNegativeScroll;\n/**\n * This method adds a class to an element and remove that class from all siblings.\n * Useful for toggling state.\n * @param {HTMLElement} element The element to receive the class\n * @param {string} elementClass The class to be assigned to the element\n * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself\n */\nfunction radioCssClass(element, elementClass, otherElementClass) {\n var parent = element.parentElement;\n var sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n sibling.classList.toggle(elementClass, sibling === element);\n }\n if (otherElementClass) {\n sibling.classList.toggle(otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nfunction isFocusableFormField(element) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n var isFocusable = matches.call(element, Constants.INPUT_SELECTOR);\n var isNotFocusable = matches.call(element, Constants.FOCUSABLE_EXCLUDE);\n var isElementVisible = isVisible(element);\n var focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nfunction setDisplayed(element, displayed) {\n element.classList.toggle('ag-hidden', !displayed);\n}\nfunction setVisible(element, visible) {\n element.classList.toggle('ag-invisible', !visible);\n}\nfunction setDisabled(element, disabled) {\n var attributeName = 'disabled';\n var addOrRemoveDisabledAttribute = disabled ?\n function (e) { return e.setAttribute(attributeName, ''); } :\n function (e) { return e.removeAttribute(attributeName); };\n addOrRemoveDisabledAttribute(element);\n nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });\n}\nfunction isElementChildOfClass(element, cls, maxNest) {\n var counter = 0;\n while (element) {\n if (element.classList.contains(cls)) {\n return true;\n }\n element = element.parentElement;\n if (typeof maxNest == 'number') {\n if (++counter > maxNest) {\n break;\n }\n }\n else if (element === maxNest) {\n break;\n }\n }\n return false;\n}\n// returns back sizes as doubles instead of strings. similar to\n// getBoundingClientRect, however getBoundingClientRect does not:\n// a) work with fractions (eg browser is zooming)\n// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values\nfunction getElementSize(el) {\n var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;\n return {\n height: parseFloat(height),\n width: parseFloat(width),\n paddingTop: parseFloat(paddingTop),\n paddingRight: parseFloat(paddingRight),\n paddingBottom: parseFloat(paddingBottom),\n paddingLeft: parseFloat(paddingLeft),\n marginTop: parseFloat(marginTop),\n marginRight: parseFloat(marginRight),\n marginBottom: parseFloat(marginBottom),\n marginLeft: parseFloat(marginLeft),\n boxSizing: boxSizing\n };\n}\nfunction getInnerHeight(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.height - size.paddingTop - size.paddingBottom;\n }\n return size.height;\n}\nfunction getInnerWidth(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.width - size.paddingLeft - size.paddingRight;\n }\n return size.width;\n}\nfunction getAbsoluteHeight(el) {\n var size = getElementSize(el);\n var marginRight = size.marginBottom + size.marginTop;\n return Math.ceil(el.offsetHeight + marginRight);\n}\nfunction getAbsoluteWidth(el) {\n var size = getElementSize(el);\n var marginWidth = size.marginLeft + size.marginRight;\n return Math.ceil(el.offsetWidth + marginWidth);\n}\nfunction isRtlNegativeScroll() {\n if (typeof rtlNegativeScroll === \"boolean\") {\n return rtlNegativeScroll;\n }\n var template = document.createElement('div');\n template.style.direction = 'rtl';\n template.style.width = '1px';\n template.style.height = '1px';\n template.style.position = 'fixed';\n template.style.top = '0px';\n template.style.overflow = 'hidden';\n template.dir = 'rtl';\n template.innerHTML = /* html */\n \"
\\n \\n \\n
\";\n document.body.appendChild(template);\n template.scrollLeft = 1;\n rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;\n document.body.removeChild(template);\n return rtlNegativeScroll;\n}\nfunction getScrollLeft(element, rtl) {\n var scrollLeft = element.scrollLeft;\n if (rtl) {\n // Absolute value - for FF that reports RTL scrolls in negative numbers\n scrollLeft = Math.abs(scrollLeft);\n if (isBrowserChrome() && !isRtlNegativeScroll()) {\n scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\n }\n }\n return scrollLeft;\n}\nfunction setScrollLeft(element, value, rtl) {\n if (rtl) {\n // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start\n if (isRtlNegativeScroll()) {\n value *= -1;\n }\n else if (isBrowserSafari() || isBrowserChrome()) {\n value = element.scrollWidth - element.clientWidth - value;\n }\n }\n element.scrollLeft = value;\n}\nfunction clearElement(el) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** @deprecated */\nfunction removeElement(parent, cssSelector) {\n removeFromParent(parent.querySelector(cssSelector));\n}\nfunction removeFromParent(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction isVisible(element) {\n return element.offsetParent !== null;\n}\n/**\n * Loads the template and returns it as an element. makes up for no simple way in\n * the dom api to load html directly, eg we cannot do this: document.createElement(template)\n * @param {string} template\n * @returns {HTMLElement}\n */\nfunction loadTemplate(template) {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = (template || '').trim();\n return tempDiv.firstChild;\n}\nfunction appendHtml(eContainer, htmlTemplate) {\n if (eContainer.lastChild) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML\n // we put the items at the start, so new items appear underneath old items,\n // so when expanding/collapsing groups, the new rows don't go on top of the\n // rows below that are moving our of the way\n eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);\n }\n else {\n eContainer.innerHTML = htmlTemplate;\n }\n}\n/** @deprecated */\nfunction getElementAttribute(element, attributeName) {\n if (element.attributes && element.attributes[attributeName]) {\n var attribute = element.attributes[attributeName];\n return attribute.value;\n }\n return null;\n}\nfunction offsetHeight(element) {\n return element && element.clientHeight ? element.clientHeight : 0;\n}\nfunction offsetWidth(element) {\n return element && element.clientWidth ? element.clientWidth : 0;\n}\nfunction ensureDomOrder(eContainer, eChild, eChildBefore) {\n // if already in right order, do nothing\n if (eChildBefore && eChildBefore.nextSibling === eChild) {\n return;\n }\n var focusedEl = document.activeElement;\n var eChildHasFocus = eChild.contains(focusedEl);\n if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n // insert between the eRowBefore and the row after it\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n }\n else {\n // if nextSibling is missing, means other row is at end, so just append new row at the end\n eContainer.appendChild(eChild);\n }\n }\n else {\n // otherwise put at start\n if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eChild);\n }\n }\n if (eChildHasFocus && focusedEl && browserSupportsPreventScroll()) {\n focusedEl.focus({ preventScroll: true });\n }\n}\nfunction setDomChildOrder(eContainer, orderedChildren) {\n for (var i = 0; i < orderedChildren.length; i++) {\n var correctCellAtIndex = orderedChildren[i];\n var actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nfunction insertWithDomOrder(eContainer, eToInsert, eChildBefore) {\n if (eChildBefore) {\n // if previous element exists, just slot in after the previous element\n eChildBefore.insertAdjacentElement('afterend', eToInsert);\n }\n else {\n if (eContainer.firstChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eToInsert);\n }\n else {\n // otherwise eContainer is empty, so just append it\n eContainer.appendChild(eToInsert);\n }\n }\n}\n/** @deprecated */\nfunction prependDC(parent, documentFragment) {\n if (exists(parent.firstChild)) {\n parent.insertBefore(documentFragment, parent.firstChild);\n }\n else {\n parent.appendChild(documentFragment);\n }\n}\nfunction addStylesToElement(eElement, styles) {\n if (!styles) {\n return;\n }\n Object.keys(styles).forEach(function (key) {\n var keyCamelCase = hyphenToCamelCase(key);\n if (keyCamelCase) {\n eElement.style[keyCamelCase] = styles[key];\n }\n });\n}\nfunction isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nfunction isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nfunction setElementWidth(element, width) {\n if (width === 'flex') {\n element.style.removeProperty('width');\n element.style.removeProperty('minWidth');\n element.style.removeProperty('maxWidth');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedWidth(element, width);\n }\n}\nfunction setFixedWidth(element, width) {\n width = formatSize(width);\n element.style.width = width.toString();\n element.style.maxWidth = width.toString();\n element.style.minWidth = width.toString();\n}\nfunction setElementHeight(element, height) {\n if (height === 'flex') {\n element.style.removeProperty('height');\n element.style.removeProperty('minHeight');\n element.style.removeProperty('maxHeight');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedHeight(element, height);\n }\n}\nfunction setFixedHeight(element, height) {\n height = formatSize(height);\n element.style.height = height.toString();\n element.style.maxHeight = height.toString();\n element.style.minHeight = height.toString();\n}\nfunction formatSize(size) {\n if (typeof size === 'number') {\n return size + \"px\";\n }\n return size;\n}\n/**\n * Returns true if it is a DOM node\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @return {boolean}\n */\nfunction isNode(o) {\n return (typeof Node === 'function'\n ? o instanceof Node\n : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');\n}\n//\n/**\n * Returns true if it is a DOM element\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @returns {boolean}\n */\nfunction isElement(o) {\n return (typeof HTMLElement === 'function'\n ? o instanceof HTMLElement //DOM2\n : o && isNonNullObject(o) && o.nodeType === 1 && typeof o.nodeName === 'string');\n}\nfunction isNodeOrElement(o) {\n return isNode(o) || isElement(o);\n}\n/**\n * Makes a copy of a node list into a list\n * @param {NodeList} nodeList\n * @returns {Node[]}\n */\nfunction copyNodeList(nodeList) {\n if (nodeList == null) {\n return [];\n }\n var result = [];\n nodeListForEach(nodeList, function (node) { return result.push(node); });\n return result;\n}\nfunction iterateNamedNodeMap(map, callback) {\n if (!map) {\n return;\n }\n for (var i = 0; i < map.length; i++) {\n var attr = map[i];\n callback(attr.name, attr.value);\n }\n}\n/** @deprecated */\nfunction setCheckboxState(eCheckbox, state) {\n if (typeof state === 'boolean') {\n eCheckbox.checked = state;\n eCheckbox.indeterminate = false;\n }\n else {\n // isNodeSelected returns back undefined if it's a group and the children\n // are a mix of selected and unselected\n eCheckbox.indeterminate = true;\n }\n}\nfunction addOrRemoveAttribute(element, name, value) {\n if (value == null) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value.toString());\n }\n}\nfunction nodeListForEach(nodeList, action) {\n if (nodeList == null) {\n return;\n }\n for (var i = 0; i < nodeList.length; i++) {\n action(nodeList[i]);\n }\n}\n\nvar DomUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n radioCssClass: radioCssClass,\n isFocusableFormField: isFocusableFormField,\n setDisplayed: setDisplayed,\n setVisible: setVisible,\n setDisabled: setDisabled,\n isElementChildOfClass: isElementChildOfClass,\n getElementSize: getElementSize,\n getInnerHeight: getInnerHeight,\n getInnerWidth: getInnerWidth,\n getAbsoluteHeight: getAbsoluteHeight,\n getAbsoluteWidth: getAbsoluteWidth,\n isRtlNegativeScroll: isRtlNegativeScroll,\n getScrollLeft: getScrollLeft,\n setScrollLeft: setScrollLeft,\n clearElement: clearElement,\n removeElement: removeElement,\n removeFromParent: removeFromParent,\n isVisible: isVisible,\n loadTemplate: loadTemplate,\n appendHtml: appendHtml,\n getElementAttribute: getElementAttribute,\n offsetHeight: offsetHeight,\n offsetWidth: offsetWidth,\n ensureDomOrder: ensureDomOrder,\n setDomChildOrder: setDomChildOrder,\n insertWithDomOrder: insertWithDomOrder,\n prependDC: prependDC,\n addStylesToElement: addStylesToElement,\n isHorizontalScrollShowing: isHorizontalScrollShowing,\n isVerticalScrollShowing: isVerticalScrollShowing,\n setElementWidth: setElementWidth,\n setFixedWidth: setFixedWidth,\n setElementHeight: setElementHeight,\n setFixedHeight: setFixedHeight,\n formatSize: formatSize,\n isNode: isNode,\n isElement: isElement,\n isNodeOrElement: isNodeOrElement,\n copyNodeList: copyNodeList,\n iterateNamedNodeMap: iterateNamedNodeMap,\n setCheckboxState: setCheckboxState,\n addOrRemoveAttribute: addOrRemoveAttribute,\n nodeListForEach: nodeListForEach\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/** @deprecated */\nfunction getNameOfClass(theClass) {\n var funcNameRegex = /function (.{1,})\\(/;\n var funcAsString = theClass.toString();\n var results = funcNameRegex.exec(funcAsString);\n return results && results.length > 1 ? results[1] : \"\";\n}\nfunction findLineByLeastSquares(values) {\n var len = values.length;\n var maxDecimals = 0;\n if (len <= 1) {\n return values;\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n var splitExponent = value.toString().split('e-');\n if (splitExponent.length > 1) {\n maxDecimals = Math.max(maxDecimals, parseInt(splitExponent[1], 10));\n continue;\n }\n if (Math.floor(value) === value) {\n continue;\n }\n maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);\n }\n var sum_x = 0;\n var sum_y = 0;\n var sum_xy = 0;\n var sum_xx = 0;\n var y = 0;\n for (var x = 0; x < len; x++) {\n y = values[x];\n sum_x += x;\n sum_y += y;\n sum_xx += x * x;\n sum_xy += x * y;\n }\n var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);\n var b = (sum_y / len) - (m * sum_x) / len;\n var result = [];\n for (var x = 0; x <= len; x++) {\n result.push(parseFloat((x * m + b).toFixed(maxDecimals)));\n }\n return result;\n}\n/**\n * Converts a CSS object into string\n * @param {Object} stylesToUse an object eg: {color: 'black', top: '25px'}\n * @return {string} A string like \"color: black; top: 25px;\" for html\n */\nfunction cssStyleObjectToMarkup(stylesToUse) {\n if (!stylesToUse) {\n return '';\n }\n var resParts = [];\n iterateObject(stylesToUse, function (styleKey, styleValue) {\n var styleKeyDashed = camelCaseToHyphen(styleKey);\n resParts.push(styleKeyDashed + \": \" + styleValue + \";\");\n });\n return resParts.join(' ');\n}\n/**\n * Displays a message to the browser. this is useful in iPad, where you can't easily see the console.\n * so the javascript code can use this to give feedback. this is NOT intended to be called in production.\n * it is intended the AG Grid developer calls this to troubleshoot, but then takes out the calls before\n * checking in.\n * @param {string} msg\n */\nfunction message(msg) {\n var eMessage = document.createElement('div');\n var eBox = document.querySelector('#__ag__message');\n eMessage.innerHTML = msg;\n if (!eBox) {\n var template = \"
\";\n eBox = loadTemplate(template);\n if (document.body) {\n document.body.appendChild(eBox);\n }\n }\n eBox.insertBefore(eMessage, eBox.children[0]);\n}\n/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renderes as they\n * can return back strings (instead of html elemnt) in the getGui() method. common code placed here to handle that.\n * @param {AgPromise} cellRendererPromise\n * @param {HTMLElement} eTarget\n */\nfunction bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {\n cellRendererPromise.then(function (cellRenderer) {\n var gui = cellRenderer.getGui();\n if (gui != null) {\n if (typeof gui === 'object') {\n eTarget.appendChild(gui);\n }\n else {\n eTarget.innerHTML = gui;\n }\n }\n });\n}\n\nvar GeneralUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getNameOfClass: getNameOfClass,\n findLineByLeastSquares: findLineByLeastSquares,\n cssStyleObjectToMarkup: cssStyleObjectToMarkup,\n message: message,\n bindCellRendererToHtmlElement: bindCellRendererToHtmlElement\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// ARIA HELPER FUNCTIONS\nfunction setAriaAttribute(element, attribute, value) {\n element.setAttribute(ariaAttributeName(attribute), value.toString());\n}\nfunction removeAriaAttribute(element, attribute) {\n element.removeAttribute(ariaAttributeName(attribute));\n}\nfunction ariaAttributeName(attribute) {\n return \"aria-\" + attribute;\n}\nfunction setAriaRole(element, role) {\n if (role) {\n element.setAttribute('role', role);\n }\n else {\n element.removeAttribute('role');\n }\n}\nfunction getAriaSortState(column) {\n var sort;\n if (column.isSortAscending()) {\n sort = 'ascending';\n }\n else if (column.isSortDescending()) {\n sort = 'descending';\n }\n else {\n sort = 'none';\n }\n return sort;\n}\n// ARIA ATTRIBUTE GETTERS\nfunction getAriaLevel(element) {\n return parseInt(element.getAttribute('aria-level'), 10);\n}\nfunction getAriaPosInSet(element) {\n return parseInt(element.getAttribute('aria-posinset'), 10);\n}\nfunction getAriaDescribedBy(element) {\n return element.getAttribute('aria-describedby') || '';\n}\n// ARIA ATTRIBUTE SETTERS\nfunction setAriaLabel(element, label) {\n var key = 'label';\n if (label != null && label !== '') {\n setAriaAttribute(element, key, label);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaLabelledBy(element, labelledBy) {\n var key = 'labelledby';\n if (labelledBy) {\n setAriaAttribute(element, key, labelledBy);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaDescription(element, description) {\n var key = 'description';\n if (description) {\n setAriaAttribute(element, key, description);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaDescribedBy(element, describedby) {\n var key = 'describedby';\n if (describedby) {\n setAriaAttribute(element, key, describedby);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaLevel(element, level) {\n setAriaAttribute(element, 'level', level);\n}\nfunction setAriaDisabled(element, disabled) {\n setAriaAttribute(element, 'disabled', disabled);\n}\nfunction setAriaHidden(element, hidden) {\n if (hidden) {\n setAriaAttribute(element, 'hidden', true);\n }\n else {\n removeAriaAttribute(element, 'hidden');\n }\n}\nfunction setAriaExpanded(element, expanded) {\n setAriaAttribute(element, 'expanded', expanded);\n}\nfunction removeAriaExpanded(element) {\n removeAriaAttribute(element, 'expanded');\n}\nfunction setAriaSetSize(element, setsize) {\n setAriaAttribute(element, 'setsize', setsize);\n}\nfunction setAriaPosInSet(element, position) {\n setAriaAttribute(element, 'posinset', position);\n}\nfunction setAriaMultiSelectable(element, multiSelectable) {\n setAriaAttribute(element, 'multiselectable', multiSelectable);\n}\nfunction setAriaRowCount(element, rowCount) {\n setAriaAttribute(element, 'rowcount', rowCount);\n}\nfunction setAriaRowIndex(element, rowIndex) {\n setAriaAttribute(element, 'rowindex', rowIndex);\n}\nfunction setAriaColCount(element, colCount) {\n setAriaAttribute(element, 'colcount', colCount);\n}\nfunction setAriaColIndex(element, colIndex) {\n setAriaAttribute(element, 'colindex', colIndex);\n}\nfunction setAriaColSpan(element, colSpan) {\n setAriaAttribute(element, 'colspan', colSpan);\n}\nfunction setAriaSort(element, sort) {\n setAriaAttribute(element, 'sort', sort);\n}\nfunction removeAriaSort(element) {\n removeAriaAttribute(element, 'sort');\n}\nfunction setAriaSelected(element, selected) {\n var attributeName = 'selected';\n if (selected) {\n setAriaAttribute(element, attributeName, selected);\n }\n else {\n removeAriaAttribute(element, attributeName);\n }\n}\nfunction setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\n\nvar AriaUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setAriaRole: setAriaRole,\n getAriaSortState: getAriaSortState,\n getAriaLevel: getAriaLevel,\n getAriaPosInSet: getAriaPosInSet,\n getAriaDescribedBy: getAriaDescribedBy,\n setAriaLabel: setAriaLabel,\n setAriaLabelledBy: setAriaLabelledBy,\n setAriaDescription: setAriaDescription,\n setAriaDescribedBy: setAriaDescribedBy,\n setAriaLevel: setAriaLevel,\n setAriaDisabled: setAriaDisabled,\n setAriaHidden: setAriaHidden,\n setAriaExpanded: setAriaExpanded,\n removeAriaExpanded: removeAriaExpanded,\n setAriaSetSize: setAriaSetSize,\n setAriaPosInSet: setAriaPosInSet,\n setAriaMultiSelectable: setAriaMultiSelectable,\n setAriaRowCount: setAriaRowCount,\n setAriaRowIndex: setAriaRowIndex,\n setAriaColCount: setAriaColCount,\n setAriaColIndex: setAriaColIndex,\n setAriaColSpan: setAriaColSpan,\n setAriaSort: setAriaSort,\n removeAriaSort: removeAriaSort,\n setAriaSelected: setAriaSelected,\n setAriaChecked: setAriaChecked\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.\n * An alternative separator can be provided to be used instead of hyphens.\n * @param date The date to serialise\n * @param includeTime Whether to include the time in the serialised string\n * @param separator The separator to use between date parts\n */\nfunction serialiseDate(date, includeTime, separator) {\n if (includeTime === void 0) { includeTime = true; }\n if (separator === void 0) { separator = '-'; }\n if (!date) {\n return null;\n }\n var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return padStartWidthZeros(part, 2); }).join(separator);\n if (includeTime) {\n serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return padStartWidthZeros(part, 2); }).join(':');\n }\n return serialised;\n}\nvar calculateOrdinal = function (value) {\n if (value > 3 && value < 21) {\n return 'th';\n }\n var remainder = value % 10;\n switch (remainder) {\n case 1: return \"st\";\n case 2: return \"nd\";\n case 3: return \"rd\";\n }\n return 'th';\n};\n/**\n * Serialises a Date to a string of format the defined format, does not include time.\n * @param date The date to serialise\n * @param format The string to format the date to, defaults to YYYY-MM-DD\n */\nfunction dateToFormattedString(date, format) {\n if (format === void 0) { format = 'YYYY-MM-DD'; }\n var fullYear = padStartWidthZeros(date.getFullYear(), 4);\n var months = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n var days = [\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',\n ];\n var replace = {\n YYYY: function () { return fullYear.slice(fullYear.length - 4, fullYear.length); },\n YY: function () { return fullYear.slice(fullYear.length - 2, fullYear.length); },\n Y: function () { return \"\" + date.getFullYear(); },\n MMMM: function () { return months[date.getMonth()]; },\n MMM: function () { return months[date.getMonth()].slice(0, 3); },\n MM: function () { return padStartWidthZeros(date.getMonth() + 1, 2); },\n Mo: function () { return \"\" + (date.getMonth() + 1) + calculateOrdinal(date.getMonth() + 1); },\n M: function () { return \"\" + (date.getMonth() + 1); },\n Do: function () { return \"\" + date.getDate() + calculateOrdinal(date.getDate()); },\n DD: function () { return padStartWidthZeros(date.getDate(), 2); },\n D: function () { return \"\" + date.getDate(); },\n dddd: function () { return days[date.getDay()]; },\n ddd: function () { return days[date.getDay()].slice(0, 3); },\n dd: function () { return days[date.getDay()].slice(0, 2); },\n do: function () { return \"\" + date.getDay() + calculateOrdinal(date.getDay()); },\n d: function () { return \"\" + date.getDay(); },\n };\n var regexp = new RegExp(Object.keys(replace).join('|'), 'g');\n return format.replace(regexp, function (match) {\n if (match in replace) {\n return replace[match]();\n }\n return match;\n });\n}\n/**\n * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`\n */\nfunction parseDateTimeFromString(value) {\n if (!value) {\n return null;\n }\n var _a = __read$j(value.split(' '), 2), dateStr = _a[0], timeStr = _a[1];\n if (!dateStr) {\n return null;\n }\n var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });\n if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {\n return null;\n }\n var _b = __read$j(fields, 3), year = _b[0], month = _b[1], day = _b[2];\n var date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day) {\n // date was not parsed as expected so must have been invalid\n return null;\n }\n if (!timeStr || timeStr === '00:00:00') {\n return date;\n }\n var _c = __read$j(timeStr.split(':').map(function (part) { return parseInt(part, 10); }), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n }\n return date;\n}\n\nvar DateUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n serialiseDate: serialiseDate,\n dateToFormattedString: dateToFormattedString,\n parseDateTimeFromString: parseDateTimeFromString\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons\n//\nvar iconNameClassMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: 'expanded',\n // header column group shown when contracted (click to expand)\n columnGroupClosed: 'contracted',\n // tool panel column group contracted (click to expand)\n columnSelectClosed: 'tree-closed',\n // tool panel column group expanded (click to contract)\n columnSelectOpen: 'tree-open',\n // column tool panel header expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n columnSelectIndeterminate: 'tree-indeterminate',\n // shown on ghost icon while dragging column to the side of the grid to pin\n columnMovePin: 'pin',\n // shown on ghost icon while dragging over part of the page that is not a drop zone\n columnMoveHide: 'eye-slash',\n // shown on ghost icon while dragging columns to reorder\n columnMoveMove: 'arrows',\n // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling\n columnMoveLeft: 'left',\n // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling\n columnMoveRight: 'right',\n // shown on ghost icon while dragging over Row Groups drop zone\n columnMoveGroup: 'group',\n // shown on ghost icon while dragging over Values drop zone\n columnMoveValue: 'aggregation',\n // shown on ghost icon while dragging over pivot drop zone\n columnMovePivot: 'pivot',\n // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: 'not-allowed',\n // shown on row group when contracted (click to expand)\n groupContracted: 'tree-closed',\n // shown on row group when expanded (click to contract)\n groupExpanded: 'tree-open',\n // context menu chart item\n chart: 'chart',\n // chart window title bar\n close: 'cross',\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: 'cancel',\n // indicates the currently active pin state in the \"Pin column\" sub-menu of the column menu\n check: 'tick',\n // \"go to first\" button in pagination controls\n first: 'first',\n // \"go to previous\" button in pagination controls\n previous: 'previous',\n // \"go to next\" button in pagination controls\n next: 'next',\n // \"go to last\" button in pagination controls\n last: 'last',\n // shown on top right of chart when chart is linked to range data (click to unlink)\n linked: 'linked',\n // shown on top right of chart when chart is not linked to range data (click to link)\n unlinked: 'unlinked',\n // \"Choose colour\" button on chart settings tab\n colorPicker: 'color-picker',\n // rotating spinner shown by the loading cell renderer\n groupLoading: 'loading',\n // button to launch enterprise column menu\n menu: 'menu',\n // filter tool panel tab\n filter: 'filter',\n // column tool panel tab\n columns: 'columns',\n // button in chart regular size window title bar (click to maximise)\n maximize: 'maximize',\n // button in chart maximised window title bar (click to make regular size)\n minimize: 'minimize',\n // \"Pin column\" item in column header menu\n menuPin: 'pin',\n // \"Value aggregation\" column menu item (shown on numeric columns when grouping is active)\"\n menuValue: 'aggregation',\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: 'group',\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: 'group',\n // context menu copy item\n clipboardCopy: 'copy',\n // context menu paste item\n clipboardPaste: 'paste',\n // identifies the pivot drop zone\n pivotPanel: 'pivot',\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: 'group',\n // columns tool panel Values drop zone\n valuePanel: 'aggregation',\n // drag handle used to pick up draggable columns\n columnDrag: 'grip',\n // drag handle used to pick up draggable rows\n rowDrag: 'grip',\n // context menu export item\n save: 'save',\n // csv export\n csvExport: 'csv',\n // excel export,\n excelExport: 'excel',\n // icon on dropdown editors\n smallDown: 'small-down',\n // version of small-right used in RTL mode\n smallLeft: 'small-left',\n // separater between column 'pills' when you add multiple columns to the header drop zone\n smallRight: 'small-right',\n smallUp: 'small-up',\n // show on column header when column is sorted ascending\n sortAscending: 'asc',\n // show on column header when column is sorted descending\n sortDescending: 'desc',\n // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true\n sortUnSort: 'none'\n};\n/**\n * If icon provided, use this (either a string, or a function callback).\n * if not, then use the default icon from the theme\n * @param {string} iconName\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {Column | null} [column]\n * @returns {HTMLElement}\n */\nfunction createIcon(iconName, gridOptionsWrapper, column) {\n var iconContents = createIconNoSpan(iconName, gridOptionsWrapper, column);\n if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {\n return iconContents;\n }\n var eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nfunction createIconNoSpan(iconName, gridOptionsWrapper, column, forceCreate) {\n var userProvidedIcon = null;\n // check col for icon first\n var icons = column && column.getColDef().icons;\n if (icons) {\n userProvidedIcon = icons[iconName];\n }\n // if not in col, try grid options\n if (gridOptionsWrapper && !userProvidedIcon) {\n var optionsIcons = gridOptionsWrapper.getIcons();\n if (optionsIcons) {\n userProvidedIcon = optionsIcons[iconName];\n }\n }\n // now if user provided, use it\n if (userProvidedIcon) {\n var rendererResult = void 0;\n if (typeof userProvidedIcon === 'function') {\n rendererResult = userProvidedIcon();\n }\n else if (typeof userProvidedIcon === 'string') {\n rendererResult = userProvidedIcon;\n }\n else {\n throw new Error('icon from grid options needs to be a string or a function');\n }\n if (typeof rendererResult === 'string') {\n return loadTemplate(rendererResult);\n }\n if (isNodeOrElement(rendererResult)) {\n return rendererResult;\n }\n console.warn('AG Grid: iconRenderer should return back a string or a dom object');\n }\n else {\n var span = document.createElement('span');\n var cssClass = iconNameClassMap[iconName];\n if (!cssClass) {\n if (!forceCreate) {\n console.warn(\"AG Grid: Did not find icon \" + iconName);\n cssClass = '';\n }\n else {\n cssClass = iconName;\n }\n }\n span.setAttribute('class', \"ag-icon ag-icon-\" + cssClass);\n span.setAttribute('unselectable', 'on');\n setAriaRole(span, 'presentation');\n return span;\n }\n}\n\nvar IconUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iconNameClassMap: iconNameClassMap,\n createIcon: createIcon,\n createIconNoSpan: createIconNoSpan\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar KeyCode = /** @class */ (function () {\n function KeyCode() {\n }\n KeyCode.BACKSPACE = 'Backspace';\n KeyCode.TAB = 'Tab';\n KeyCode.ENTER = 'Enter';\n KeyCode.ESCAPE = 'Escape';\n KeyCode.SPACE = ' ';\n KeyCode.LEFT = 'ArrowLeft';\n KeyCode.UP = 'ArrowUp';\n KeyCode.RIGHT = 'ArrowRight';\n KeyCode.DOWN = 'ArrowDown';\n KeyCode.DELETE = 'Delete';\n KeyCode.F2 = 'F2';\n KeyCode.PAGE_UP = 'PageUp';\n KeyCode.PAGE_DOWN = 'PageDown';\n KeyCode.PAGE_HOME = 'Home';\n KeyCode.PAGE_END = 'End';\n // these should be used with `event.code` instead of `event.key`\n // as `event.key` changes when non-latin keyboards are used\n KeyCode.A = 'KeyA';\n KeyCode.C = 'KeyC';\n KeyCode.V = 'KeyV';\n KeyCode.D = 'KeyD';\n KeyCode.Z = 'KeyZ';\n KeyCode.Y = 'KeyY';\n return KeyCode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar NUMPAD_DEL_NUMLOCK_ON_KEY = 'Del';\n// Using legacy values to match AZERTY keyboards\nvar NUMPAD_DEL_NUMLOCK_ON_KEYCODE = 46;\nvar A_KEYCODE = 65;\nvar C_KEYCODE = 67;\nvar V_KEYCODE = 86;\nvar D_KEYCODE = 68;\nvar Z_KEYCODE = 90;\nvar Y_KEYCODE = 89;\nfunction isEventFromPrintableCharacter(event) {\n // no allowed printable chars have alt or ctrl key combinations\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.\n // non-printable characters have names, eg 'Enter' or 'Backspace'.\n var printableCharacter = event.key.length === 1;\n // IE11 & Edge treat the numpad del key differently - with numlock on we get \"Del\" for key,\n // so this addition checks if its IE11/Edge and handles that specific case the same was as all other browsers\n var numpadDelWithNumlockOnForEdgeOrIe = isNumpadDelWithNumLockOnForEdge(event);\n return printableCharacter || numpadDelWithNumlockOnForEdgeOrIe;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {KeyboardEvent} keyboardEvent\n * @param {RowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nfunction isUserSuppressingKeyboardEvent(gridOptionsWrapper, keyboardEvent, rowNode, column, editing) {\n var gridOptionsFunc = gridOptionsWrapper.getSuppressKeyboardEventFunc();\n var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!gridOptionsFunc && !colDefFunc) {\n return false;\n }\n var params = {\n event: keyboardEvent,\n editing: editing,\n column: column,\n api: gridOptionsWrapper.getApi(),\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef(),\n context: gridOptionsWrapper.getContext(),\n columnApi: gridOptionsWrapper.getColumnApi()\n };\n // colDef get first preference on suppressing events\n if (colDefFunc) {\n var colDefFuncResult = colDefFunc(params);\n // if colDef func suppressed, then return now, no need to call gridOption func\n if (colDefFuncResult) {\n return true;\n }\n }\n if (gridOptionsFunc) {\n // if gridOption func, return the result\n return gridOptionsFunc(params);\n }\n // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nfunction isUserSuppressingHeaderKeyboardEvent(gridOptionsWrapper, keyboardEvent, headerRowIndex, column) {\n var colDef = column.getDefinition();\n var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;\n if (!exists(colDefFunc)) {\n return false;\n }\n var params = {\n api: gridOptionsWrapper.getApi(),\n columnApi: gridOptionsWrapper.getColumnApi(),\n context: gridOptionsWrapper.getContext(),\n colDef: colDef,\n column: column,\n headerRowIndex: headerRowIndex,\n event: keyboardEvent\n };\n return !!colDefFunc(params);\n}\nfunction isNumpadDelWithNumLockOnForEdge(event) {\n return (isBrowserEdge()) &&\n event.key === NUMPAD_DEL_NUMLOCK_ON_KEY &&\n event.charCode === NUMPAD_DEL_NUMLOCK_ON_KEYCODE;\n}\nfunction normaliseQwertyAzerty(keyboardEvent) {\n var keyCode = keyboardEvent.keyCode;\n var code;\n switch (keyCode) {\n case A_KEYCODE:\n code = KeyCode.A;\n break;\n case C_KEYCODE:\n code = KeyCode.C;\n break;\n case V_KEYCODE:\n code = KeyCode.V;\n break;\n case D_KEYCODE:\n code = KeyCode.D;\n break;\n case Z_KEYCODE:\n code = KeyCode.Z;\n break;\n case Y_KEYCODE:\n code = KeyCode.Y;\n break;\n default:\n code = keyboardEvent.code;\n }\n return code;\n}\nfunction isDeleteKey(key, alwaysReturnFalseOnBackspace) {\n if (alwaysReturnFalseOnBackspace === void 0) { alwaysReturnFalseOnBackspace = false; }\n if (key === KeyCode.DELETE) {\n return true;\n }\n if (!alwaysReturnFalseOnBackspace && key === KeyCode.BACKSPACE) {\n return isMacOsUserAgent();\n }\n return false;\n}\n\nvar KeyboardUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isEventFromPrintableCharacter: isEventFromPrintableCharacter,\n isUserSuppressingKeyboardEvent: isUserSuppressingKeyboardEvent,\n isUserSuppressingHeaderKeyboardEvent: isUserSuppressingHeaderKeyboardEvent,\n normaliseQwertyAzerty: normaliseQwertyAzerty,\n isDeleteKey: isDeleteKey\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * `True` if the event is close to the original event by X pixels either vertically or horizontally.\n * we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n * @param {MouseEvent | TouchEvent} e1\n * @param {MouseEvent | TouchEvent} e2\n * @param {number} pixelCount\n * @returns {boolean}\n */\nfunction areEventsNear(e1, e2, pixelCount) {\n // by default, we wait 4 pixels before starting the drag\n if (pixelCount === 0) {\n return false;\n }\n var diffX = Math.abs(e1.clientX - e2.clientX);\n var diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\n\nvar MouseUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n areEventsNear: areEventsNear\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.\n * when in ClientSideNodeManager we always have indexes (as this sorts the items the\n * user provided) but when in GroupStage, the nodes can contain filler nodes that\n * don't have order id's\n * @param {RowNode[]} rowNodes\n * @param {Object} rowNodeOrder\n *\n * @returns a boolean representing whether nodes were reordered\n */\nfunction sortRowNodesByOrder(rowNodes, rowNodeOrder) {\n if (!rowNodes) {\n return false;\n }\n var comparator = function (nodeA, nodeB) {\n var positionA = rowNodeOrder[nodeA.id];\n var positionB = rowNodeOrder[nodeB.id];\n var aHasIndex = positionA !== undefined;\n var bHasIndex = positionB !== undefined;\n var bothNodesAreUserNodes = aHasIndex && bHasIndex;\n var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;\n if (bothNodesAreUserNodes) {\n // when comparing two nodes the user has provided, they always\n // have indexes\n return positionA - positionB;\n }\n if (bothNodesAreFillerNodes) {\n // when comparing two filler nodes, we have no index to compare them\n // against, however we want this sorting to be deterministic, so that\n // the rows don't jump around as the user does delta updates. so we\n // want the same sort result. so we use the __objectId - which doesn't make sense\n // from a sorting point of view, but does give consistent behaviour between\n // calls. otherwise groups jump around as delta updates are done.\n // note: previously here we used nodeId, however this gave a strange order\n // as string ordering of numbers is wrong, so using id based on creation order\n // as least gives better looking order.\n return nodeA.__objectId - nodeB.__objectId;\n }\n if (aHasIndex) {\n return 1;\n }\n return -1;\n };\n // check if the list first needs sorting\n var rowNodeA;\n var rowNodeB;\n var atLeastOneOutOfOrder = false;\n for (var i = 0; i < rowNodes.length - 1; i++) {\n rowNodeA = rowNodes[i];\n rowNodeB = rowNodes[i + 1];\n if (comparator(rowNodeA, rowNodeB) > 0) {\n atLeastOneOutOfOrder = true;\n break;\n }\n }\n if (atLeastOneOutOfOrder) {\n rowNodes.sort(comparator);\n return true;\n }\n return false;\n}\nfunction traverseNodesWithKey(nodes, callback) {\n var keyParts = [];\n recursiveSearchNodes(nodes);\n function recursiveSearchNodes(currentNodes) {\n if (!currentNodes) {\n return;\n }\n currentNodes.forEach(function (node) {\n // also checking for children for tree data\n if (node.group || node.hasChildren()) {\n keyParts.push(node.key);\n var key = keyParts.join('|');\n callback(node, key);\n recursiveSearchNodes(node.childrenAfterGroup);\n keyParts.pop();\n }\n });\n }\n}\n\nvar RowNodeUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n sortRowNodesByOrder: sortRowNodesByOrder,\n traverseNodesWithKey: traverseNodesWithKey\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToSet(list) {\n var set = new Set();\n list.forEach(function (x) { return set.add(x); });\n return set;\n}\n\nvar SetUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToSet: convertToSet\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar utils = __assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f(__assign$f({}, GeneralUtils), AriaUtils), ArrayUtils), BrowserUtils), CsvUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nvar _ = utils;\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar NumberSequence = /** @class */ (function () {\n function NumberSequence(initValue, step) {\n if (initValue === void 0) { initValue = 0; }\n if (step === void 0) { step = 1; }\n this.nextValue = initValue;\n this.step = step;\n }\n NumberSequence.prototype.next = function () {\n var valToReturn = this.nextValue;\n this.nextValue += this.step;\n return valToReturn;\n };\n NumberSequence.prototype.peek = function () {\n return this.nextValue;\n };\n NumberSequence.prototype.skip = function (count) {\n this.nextValue += count;\n };\n return NumberSequence;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar AgPromiseStatus;\n(function (AgPromiseStatus) {\n AgPromiseStatus[AgPromiseStatus[\"IN_PROGRESS\"] = 0] = \"IN_PROGRESS\";\n AgPromiseStatus[AgPromiseStatus[\"RESOLVED\"] = 1] = \"RESOLVED\";\n})(AgPromiseStatus || (AgPromiseStatus = {}));\nvar AgPromise = /** @class */ (function () {\n function AgPromise(callback) {\n var _this = this;\n this.status = AgPromiseStatus.IN_PROGRESS;\n this.resolution = null;\n this.waiters = [];\n callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });\n }\n AgPromise.all = function (promises) {\n return new AgPromise(function (resolve) {\n var remainingToResolve = promises.length;\n var combinedValues = new Array(remainingToResolve);\n promises.forEach(function (promise, index) {\n promise.then(function (value) {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n });\n };\n AgPromise.resolve = function (value) {\n if (value === void 0) { value = null; }\n return new AgPromise(function (resolve) { return resolve(value); });\n };\n AgPromise.prototype.then = function (func) {\n var _this = this;\n return new AgPromise(function (resolve) {\n if (_this.status === AgPromiseStatus.RESOLVED) {\n resolve(func(_this.resolution));\n }\n else {\n _this.waiters.push(function (value) { return resolve(func(value)); });\n }\n });\n };\n AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {\n return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;\n };\n AgPromise.prototype.onDone = function (value) {\n this.status = AgPromiseStatus.RESOLVED;\n this.resolution = value;\n this.waiters.forEach(function (waiter) { return waiter(value); });\n };\n AgPromise.prototype.onReject = function (params) {\n console.warn('TBI');\n };\n return AgPromise;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * A Util Class only used when debugging for printing time to console\n */\nvar Timer = /** @class */ (function () {\n function Timer() {\n this.timestamp = new Date().getTime();\n }\n Timer.prototype.print = function (msg) {\n var duration = (new Date().getTime()) - this.timestamp;\n console.info(msg + \" = \" + duration);\n this.timestamp = new Date().getTime();\n };\n return Timer;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar __decorate$2q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TooltipStates;\n(function (TooltipStates) {\n TooltipStates[TooltipStates[\"NOTHING\"] = 0] = \"NOTHING\";\n TooltipStates[TooltipStates[\"WAITING_TO_SHOW\"] = 1] = \"WAITING_TO_SHOW\";\n TooltipStates[TooltipStates[\"SHOWING\"] = 2] = \"SHOWING\";\n})(TooltipStates || (TooltipStates = {}));\nvar CustomTooltipFeature = /** @class */ (function (_super) {\n __extends$2P(CustomTooltipFeature, _super);\n function CustomTooltipFeature(parentComp) {\n var _this = _super.call(this) || this;\n _this.DEFAULT_SHOW_TOOLTIP_DELAY = 2000;\n _this.DEFAULT_HIDE_TOOLTIP_DELAY = 10000;\n _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;\n _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;\n _this.state = TooltipStates.NOTHING;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n _this.tooltipInstanceCount = 0;\n _this.tooltipMouseTrack = false;\n _this.parentComp = parentComp;\n return _this;\n }\n CustomTooltipFeature.prototype.postConstruct = function () {\n this.tooltipShowDelay = this.gridOptionsWrapper.getTooltipDelay('show') || this.DEFAULT_SHOW_TOOLTIP_DELAY;\n this.tooltipHideDelay = this.gridOptionsWrapper.getTooltipDelay('hide') || this.DEFAULT_HIDE_TOOLTIP_DELAY;\n this.tooltipMouseTrack = this.gridOptionsWrapper.isTooltipMouseTrack();\n var el = this.parentComp.getGui();\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n };\n CustomTooltipFeature.prototype.destroy = function () {\n // if this component gets destroyed while tooltip is showing, need to make sure\n // we don't end with no mouseLeave event resulting in zombie tooltip\n this.setToDoNothing();\n _super.prototype.destroy.call(this);\n };\n CustomTooltipFeature.prototype.onMouseEnter = function (e) {\n if (isIOSUserAgent()) {\n return;\n }\n // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for\n // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported\n // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if\n // state is !=nothing, then we know mouseenter was already received.\n if (this.state != TooltipStates.NOTHING) {\n return;\n }\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.lastMouseEvent = e;\n this.state = TooltipStates.WAITING_TO_SHOW;\n };\n CustomTooltipFeature.prototype.onMouseLeave = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onKeyDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.setToDoNothing = function () {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n };\n CustomTooltipFeature.prototype.onMouseMove = function (e) {\n // there is a delay from the time we mouseOver a component and the time the\n // tooltip is displayed, so we need to track mousemove to be able to correctly\n // position the tooltip when showTooltip is called.\n this.lastMouseEvent = e;\n if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltipUnderLastMouseEvent();\n }\n };\n CustomTooltipFeature.prototype.onMouseDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.hideTooltip = function () {\n // check if comp exists - due to async, although we asked for\n // one, the instance may not be back yet\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n CustomTooltipFeature.lastTooltipHideTime = new Date().getTime();\n }\n this.state = TooltipStates.NOTHING;\n };\n CustomTooltipFeature.prototype.destroyTooltipComp = function () {\n var _this = this;\n // add class to fade out the tooltip\n this.tooltipComp.getGui().classList.add('ag-tooltip-hiding');\n // make local copies of these variables, as we use them in the async function below,\n // and we clear then to 'undefined' later, so need to take a copy before they are undefined.\n var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n var tooltipComp = this.tooltipComp;\n window.setTimeout(function () {\n tooltipPopupDestroyFunc();\n _this.getContext().destroyBean(tooltipComp);\n }, this.FADE_OUT_TOOLTIP_TIMEOUT);\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n };\n CustomTooltipFeature.prototype.isLastTooltipHiddenRecently = function () {\n // return true if <1000ms since last time we hid a tooltip\n var now = new Date().getTime();\n var then = CustomTooltipFeature.lastTooltipHideTime;\n return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;\n };\n CustomTooltipFeature.prototype.showTooltip = function () {\n var params = __assign$e({}, this.parentComp.getTooltipParams());\n if (!exists(params.value)) {\n this.setToDoNothing();\n return;\n }\n this.state = TooltipStates.SHOWING;\n this.tooltipInstanceCount++;\n // we pass in tooltipInstanceCount so the callback knows what the count was when\n // we requested the tooltip, so if another tooltip was requested in the mean time\n // we disregard it\n var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n var userDetails = this.userComponentFactory.getTooltipCompDetails(params);\n userDetails.newAgStackInstance().then(callback);\n };\n CustomTooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {\n var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.getContext().destroyBean(tooltipComp);\n return;\n }\n var eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!eGui.classList.contains('ag-tooltip')) {\n eGui.classList.add('ag-tooltip-custom');\n }\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n eChild: eGui,\n ariaLabel: translate('ariaLabelTooltip', 'Tooltip')\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);\n this.positionTooltipUnderLastMouseEvent();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.tooltipHideDelay);\n };\n CustomTooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {\n this.popupService.positionPopupUnderMouseEvent({\n type: 'tooltip',\n mouseEvent: this.lastMouseEvent,\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18,\n skipObserver: this.tooltipMouseTrack\n });\n };\n CustomTooltipFeature.prototype.clearTimeouts = function () {\n if (this.showTooltipTimeoutId) {\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n }\n if (this.hideTooltipTimeoutId) {\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n }\n };\n __decorate$2q([\n Autowired('popupService')\n ], CustomTooltipFeature.prototype, \"popupService\", void 0);\n __decorate$2q([\n Autowired('userComponentFactory')\n ], CustomTooltipFeature.prototype, \"userComponentFactory\", void 0);\n __decorate$2q([\n Autowired('columnApi')\n ], CustomTooltipFeature.prototype, \"columnApi\", void 0);\n __decorate$2q([\n Autowired('gridApi')\n ], CustomTooltipFeature.prototype, \"gridApi\", void 0);\n __decorate$2q([\n PostConstruct\n ], CustomTooltipFeature.prototype, \"postConstruct\", null);\n return CustomTooltipFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar CssClassManager = /** @class */ (function () {\n function CssClassManager(getGui) {\n // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n this.cssClassStates = {};\n this.getGui = getGui;\n }\n CssClassManager.prototype.addCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== true;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.add(className);\n }\n this.cssClassStates[className] = true;\n }\n };\n CssClassManager.prototype.removeCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.removeCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== false;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.remove(className);\n }\n this.cssClassStates[className] = false;\n }\n };\n CssClassManager.prototype.containsCssClass = function (className) {\n var eGui = this.getGui();\n if (!eGui) {\n return false;\n }\n return eGui.classList.contains(className);\n };\n CssClassManager.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n var _this = this;\n if (!className) {\n return;\n }\n // we check for spaces before doing the split, as doing the split\n // created a performance problem (on windows only, see AG-6765)\n if (className.indexOf(' ') >= 0) {\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addOrRemoveCssClass(cls, addOrRemove); });\n return;\n }\n }\n var updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.toggle(className, addOrRemove);\n }\n this.cssClassStates[className] = addOrRemove;\n }\n };\n return CssClassManager;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar compIdSequence = new NumberSequence();\nvar Component = /** @class */ (function (_super) {\n __extends$2O(Component, _super);\n function Component(template) {\n var _this = _super.call(this) || this;\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n _this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n _this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n _this.compId = compIdSequence.next();\n _this.cssClassManager = new CssClassManager(function () { return _this.eGui; });\n if (template) {\n _this.setTemplate(template);\n }\n return _this;\n }\n Component.prototype.preConstructOnComponent = function () {\n this.usingBrowserTooltips = this.gridOptionsWrapper.isEnableBrowserTooltips();\n };\n Component.prototype.getCompId = function () {\n return this.compId;\n };\n Component.prototype.getTooltipParams = function () {\n return {\n value: this.tooltipText,\n location: 'UNKNOWN'\n };\n };\n Component.prototype.setTooltip = function (newTooltipText) {\n var _this = this;\n var removeTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().removeAttribute('title');\n }\n else {\n _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);\n }\n };\n var addTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().setAttribute('title', _this.tooltipText);\n }\n else {\n _this.tooltipFeature = _this.createBean(new CustomTooltipFeature(_this));\n }\n };\n if (this.tooltipText != newTooltipText) {\n if (this.tooltipText) {\n removeTooltip();\n }\n if (newTooltipText != null) {\n this.tooltipText = newTooltipText;\n if (this.tooltipText) {\n addTooltip();\n }\n }\n }\n };\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {\n var _this = this;\n // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM\n // which messes up the traversal order of the children.\n var childNodeList = copyNodeList(parentNode.childNodes);\n childNodeList.forEach(function (childNode) {\n if (!(childNode instanceof HTMLElement)) {\n return;\n }\n var childComp = _this.createComponentFromElement(childNode, function (childComp) {\n // copy over all attributes, including css classes, so any attributes user put on the tag\n // wll be carried across\n var childGui = childComp.getGui();\n if (childGui) {\n _this.copyAttributesFromNode(childNode, childComp.getGui());\n }\n }, paramsMap);\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n // converting from HTMLCollection to Array\n var items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom\n _this.swapComponentForNode(childComp, parentNode, childNode);\n }\n else if (childNode.childNodes) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n }\n });\n };\n Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {\n var key = element.nodeName;\n var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;\n var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);\n if (ComponentClass) {\n Component.elementGettingCreated = element;\n var newComponent = new ComponentClass(componentParams);\n newComponent.setParentComponent(this);\n this.createBean(newComponent, null, afterPreCreateCallback);\n return newComponent;\n }\n return null;\n };\n Component.prototype.copyAttributesFromNode = function (source, dest) {\n iterateNamedNodeMap(source.attributes, function (name, value) { return dest.setAttribute(name, value); });\n };\n Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {\n var eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n };\n Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n };\n Component.prototype.iterateOverQuerySelectors = function (action) {\n var thisPrototype = Object.getPrototypeOf(this);\n while (thisPrototype != null) {\n var metaData = thisPrototype.__agComponentMetaData;\n var currentProtoName = getFunctionName(thisPrototype.constructor);\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n metaData[currentProtoName].querySelectors.forEach(function (querySelector) { return action(querySelector); });\n }\n thisPrototype = Object.getPrototypeOf(thisPrototype);\n }\n };\n Component.prototype.setTemplate = function (template, paramsMap) {\n var eGui = loadTemplate(template);\n this.setTemplateFromElement(eGui, paramsMap);\n };\n Component.prototype.setTemplateFromElement = function (element, paramsMap) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n if (!!this.getContext()) {\n this.createChildComponentsFromTags(this.getGui(), paramsMap);\n }\n };\n Component.prototype.createChildComponentsPreConstruct = function () {\n // ui exists if user sets template in constructor. when this happens, we have to wait for the context\n // to be autoWired first before we can create child components.\n if (!!this.getGui()) {\n this.createChildComponentsFromTags(this.getGui());\n }\n };\n Component.prototype.wireQuerySelectors = function () {\n var _this = this;\n if (!this.eGui) {\n return;\n }\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };\n // if it's a ref selector, and match is on top level component, we return\n // the element. otherwise no way of components putting ref=xxx on the top\n // level element as querySelector only looks at children.\n var topLevelRefMatch = querySelector.refSelector\n && _this.eGui.getAttribute('ref') === querySelector.refSelector;\n if (topLevelRefMatch) {\n setResult(_this.eGui);\n }\n else {\n // otherwise use querySelector, which looks at children\n var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n setResult(resultOfQuery.__agComponent || resultOfQuery);\n }\n }\n });\n };\n Component.prototype.getGui = function () {\n return this.eGui;\n };\n Component.prototype.getFocusableElement = function () {\n return this.eGui;\n };\n Component.prototype.setParentComponent = function (component) {\n this.parentComponent = component;\n };\n Component.prototype.getParentComponent = function () {\n return this.parentComponent;\n };\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n Component.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n };\n Component.prototype.queryForHtmlElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.queryForHtmlInputElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.appendChild = function (newChild, container) {\n if (newChild == null) {\n return;\n }\n if (!container) {\n container = this.eGui;\n }\n if (isNodeOrElement(newChild)) {\n container.appendChild(newChild);\n }\n else {\n var childComponent = newChild;\n container.appendChild(childComponent.getGui());\n }\n };\n Component.prototype.isDisplayed = function () {\n return this.displayed;\n };\n Component.prototype.setVisible = function (visible) {\n if (visible !== this.visible) {\n this.visible = visible;\n setVisible(this.eGui, visible);\n }\n };\n Component.prototype.setDisplayed = function (displayed) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n setDisplayed(this.eGui, displayed);\n var event_1 = {\n type: Component.EVENT_DISPLAYED_CHANGED,\n visible: this.displayed\n };\n this.dispatchEvent(event_1);\n }\n };\n Component.prototype.destroy = function () {\n if (this.tooltipFeature) {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n _super.prototype.destroy.call(this);\n };\n Component.prototype.addGuiEventListener = function (event, listener) {\n var _this = this;\n this.eGui.addEventListener(event, listener);\n this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });\n };\n Component.prototype.addCssClass = function (className) {\n this.cssClassManager.addCssClass(className);\n };\n Component.prototype.removeCssClass = function (className) {\n this.cssClassManager.removeCssClass(className);\n };\n Component.prototype.containsCssClass = function (className) {\n return this.cssClassManager.containsCssClass(className);\n };\n Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n this.cssClassManager.addOrRemoveCssClass(className, addOrRemove);\n };\n Component.prototype.getAttribute = function (key) {\n var eGui = this.eGui;\n return eGui ? eGui.getAttribute(key) : null;\n };\n Component.prototype.getRefElement = function (refName) {\n return this.queryForHtmlElement(\"[ref=\\\"\" + refName + \"\\\"]\");\n };\n Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n __decorate$2p([\n Autowired('agStackComponentsRegistry')\n ], Component.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$2p([\n PreConstruct\n ], Component.prototype, \"preConstructOnComponent\", null);\n __decorate$2p([\n PreConstruct\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n return Component;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector, undefined);\n}\nfunction RefSelector(ref) {\n return querySelectorFunc.bind(this, \"[ref=\" + ref + \"]\", ref);\n}\nfunction querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {\n if (selector === null) {\n console.error('AG Grid: QuerySelector selector should not be null');\n return;\n }\n if (typeof index === 'number') {\n console.error('AG Grid: QuerySelector should be on an attribute');\n return;\n }\n addToObjectProps(classPrototype, 'querySelectors', {\n attributeName: methodOrAttributeName,\n querySelector: selector,\n refSelector: refSelector\n });\n}\n// // think we should take this out, put property bindings on the\n// export function Method(eventName?: string): Function {\n// return methodFunc.bind(this, eventName);\n// }\n//\n// function methodFunc(alias: string, target: Object, methodName: string) {\n// if (alias === null) {\n// console.error(\"AG Grid: EventListener eventName should not be null\");\n// return;\n// }\n//\n// addToObjectProps(target, 'methods', {\n// methodName: methodName,\n// alias: alias\n// });\n// }\nfunction addToObjectProps(target, key, value) {\n // it's an attribute on the class\n var props = getOrCreateProps(target, getFunctionName(target.constructor));\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps(target, instanceName) {\n if (!target.__agComponentMetaData) {\n target.__agComponentMetaData = {};\n }\n if (!target.__agComponentMetaData[instanceName]) {\n target.__agComponentMetaData[instanceName] = {};\n }\n return target.__agComponentMetaData[instanceName];\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// optional floating filter for user provided filters - instead of providing a floating filter,\n// they can provide a getModelAsString() method on the filter instead. this class just displays\n// the string returned from getModelAsString()\nvar ReadOnlyFloatingFilter = /** @class */ (function (_super) {\n __extends$2N(ReadOnlyFloatingFilter, _super);\n function ReadOnlyFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n ReadOnlyFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n ReadOnlyFloatingFilter.prototype.init = function (params) {\n this.params = params;\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {\n var _this = this;\n if (!parentModel) {\n this.eFloatingFilterText.setValue('');\n return;\n }\n this.params.parentFilterInstance(function (filterInstance) {\n // it would be nice to check if getModelAsString was present before creating this component,\n // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until\n // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns\n // are drawn, but the parent filters are only created when needed).\n if (filterInstance.getModelAsString) {\n var modelAsString = filterInstance.getModelAsString(parentModel);\n _this.eFloatingFilterText.setValue(modelAsString);\n }\n });\n };\n __decorate$2o([\n RefSelector('eFloatingFilterText')\n ], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n __decorate$2o([\n Autowired('columnModel')\n ], ReadOnlyFloatingFilter.prototype, \"columnModel\", void 0);\n return ReadOnlyFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/** Provides sync access to async component. Date component can be lazy created - this class encapsulates\n * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */\nvar DateCompWrapper = /** @class */ (function () {\n function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {\n var _this = this;\n this.alive = true;\n this.context = context;\n this.eParent = eParent;\n var compDetails = userComponentFactory.getDateCompDetails(dateComponentParams);\n var promise = compDetails.newAgStackInstance();\n promise.then(function (dateComp) {\n // because async, check the filter still exists after component comes back\n if (!_this.alive) {\n context.destroyBean(dateComp);\n return;\n }\n _this.dateComp = dateComp;\n if (!dateComp) {\n return;\n }\n eParent.appendChild(dateComp.getGui());\n if (dateComp.afterGuiAttached) {\n dateComp.afterGuiAttached();\n }\n if (_this.tempValue) {\n dateComp.setDate(_this.tempValue);\n }\n if (_this.disabled != null) {\n _this.setDateCompDisabled(_this.disabled);\n }\n });\n }\n DateCompWrapper.prototype.destroy = function () {\n this.alive = false;\n this.dateComp = this.context.destroyBean(this.dateComp);\n };\n DateCompWrapper.prototype.getDate = function () {\n return this.dateComp ? this.dateComp.getDate() : this.tempValue;\n };\n DateCompWrapper.prototype.setDate = function (value) {\n if (this.dateComp) {\n this.dateComp.setDate(value);\n }\n else {\n this.tempValue = value;\n }\n };\n DateCompWrapper.prototype.setDisabled = function (disabled) {\n if (this.dateComp) {\n this.setDateCompDisabled(disabled);\n }\n else {\n this.disabled = disabled;\n }\n };\n DateCompWrapper.prototype.setDisplayed = function (displayed) {\n setDisplayed(this.eParent, displayed);\n };\n DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {\n if (this.dateComp && this.dateComp.setInputPlaceholder) {\n this.dateComp.setInputPlaceholder(placeholder);\n }\n };\n DateCompWrapper.prototype.setInputAriaLabel = function (label) {\n if (this.dateComp && this.dateComp.setInputAriaLabel) {\n this.dateComp.setInputAriaLabel(label);\n }\n };\n DateCompWrapper.prototype.afterGuiAttached = function (params) {\n if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {\n this.dateComp.afterGuiAttached(params);\n }\n };\n DateCompWrapper.prototype.setDateCompDisabled = function (disabled) {\n if (this.dateComp == null) {\n return;\n }\n if (this.dateComp.setDisabled == null) {\n return;\n }\n this.dateComp.setDisabled(disabled);\n };\n return DateCompWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\n/* Common logic for options, used by both filters and floating filters. */\nvar OptionsFactory = /** @class */ (function () {\n function OptionsFactory() {\n this.customFilterOptions = {};\n }\n OptionsFactory.prototype.init = function (params, defaultOptions) {\n this.filterOptions = params.filterOptions || defaultOptions;\n this.mapCustomOptions();\n this.selectDefaultItem(params);\n this.checkForDeprecatedParams();\n };\n OptionsFactory.prototype.checkForDeprecatedParams = function () {\n if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.test != null; })) {\n console.warn(\"AG Grid: [IFilterOptionDef] since v26.2.0, test() has been replaced with predicate().\");\n }\n if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.hideFilterInput != null; })) {\n console.warn(\"AG Grid: [IFilterOptionDef] since v26.2.0, useOfHideFilterInput has been replaced with numberOfInputs.\");\n }\n };\n OptionsFactory.prototype.getFilterOptions = function () {\n return this.filterOptions;\n };\n OptionsFactory.prototype.mapCustomOptions = function () {\n var _this = this;\n if (!this.filterOptions) {\n return;\n }\n this.filterOptions.forEach(function (filterOption) {\n if (typeof filterOption === 'string') {\n return;\n }\n var requiredProperties = [['displayKey'], ['displayName'], ['predicate', 'test']];\n var propertyCheck = function (keys) {\n if (!keys.some(function (key) { return filterOption[key] != null; })) {\n console.warn(\"AG Grid: ignoring FilterOptionDef as it doesn't contain one of '\" + keys + \"'\");\n return false;\n }\n return true;\n };\n if (!requiredProperties.every(propertyCheck)) {\n _this.filterOptions = _this.filterOptions.filter(function (v) { return v === filterOption; }) || [];\n return;\n }\n var test = filterOption.test;\n var mutatedFilterOptions = __assign$d({}, filterOption);\n if (test != null && filterOption.predicate == null) {\n mutatedFilterOptions.predicate = function (v, cv) { return test(v[0], cv); };\n delete mutatedFilterOptions.test;\n }\n if (mutatedFilterOptions.hideFilterInput && mutatedFilterOptions.numberOfInputs == null) {\n mutatedFilterOptions.numberOfInputs = 0;\n delete mutatedFilterOptions.hideFilterInput;\n }\n _this.customFilterOptions[filterOption.displayKey] = mutatedFilterOptions;\n });\n };\n OptionsFactory.prototype.selectDefaultItem = function (params) {\n if (params.defaultOption) {\n this.defaultOption = params.defaultOption;\n }\n else if (this.filterOptions.length >= 1) {\n var firstFilterOption = this.filterOptions[0];\n if (typeof firstFilterOption === 'string') {\n this.defaultOption = firstFilterOption;\n }\n else if (firstFilterOption.displayKey) {\n this.defaultOption = firstFilterOption.displayKey;\n }\n else {\n console.warn(\"AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'\");\n }\n }\n else {\n console.warn('AG Grid: no filter options for filter');\n }\n };\n OptionsFactory.prototype.getDefaultOption = function () {\n return this.defaultOption;\n };\n OptionsFactory.prototype.getCustomOption = function (name) {\n return this.customFilterOptions[name];\n };\n return OptionsFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DEFAULT_FILTER_LOCALE_TEXT = {\n applyFilter: 'Apply',\n clearFilter: 'Clear',\n resetFilter: 'Reset',\n cancelFilter: 'Cancel',\n textFilter: 'Text Filter',\n numberFilter: 'Number Filter',\n dateFilter: 'Date Filter',\n setFilter: 'Set Filter',\n filterOoo: 'Filter...',\n empty: 'Choose One',\n equals: 'Equals',\n notEqual: 'Not equal',\n lessThan: 'Less than',\n greaterThan: 'Greater than',\n inRange: 'In range',\n inRangeStart: 'From',\n inRangeEnd: 'To',\n lessThanOrEqual: 'Less than or equals',\n greaterThanOrEqual: 'Greater than or equals',\n contains: 'Contains',\n notContains: 'Not contains',\n startsWith: 'Starts with',\n endsWith: 'Ends with',\n blank: 'Blank',\n notBlank: 'Not blank',\n andCondition: 'AND',\n orCondition: 'OR',\n dateFormatOoo: 'yyyy-mm-dd',\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __decorate$2n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ManagedFocusFeature = /** @class */ (function (_super) {\n __extends$2M(ManagedFocusFeature, _super);\n function ManagedFocusFeature(eFocusableElement, callbacks) {\n if (callbacks === void 0) { callbacks = {}; }\n var _this = _super.call(this) || this;\n _this.eFocusableElement = eFocusableElement;\n _this.callbacks = callbacks;\n _this.callbacks = __assign$c({ shouldStopEventPropagation: function () { return false; }, onTabKeyDown: function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var nextRoot = _this.focusService.findNextFocusableElement(_this.eFocusableElement, false, e.shiftKey);\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n } }, callbacks);\n return _this;\n }\n ManagedFocusFeature.prototype.postConstruct = function () {\n this.eFocusableElement.classList.add(ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n this.addKeyDownListeners(this.eFocusableElement);\n if (this.callbacks.onFocusIn) {\n this.addManagedListener(this.eFocusableElement, 'focusin', this.callbacks.onFocusIn);\n }\n if (this.callbacks.onFocusOut) {\n this.addManagedListener(this.eFocusableElement, 'focusout', this.callbacks.onFocusOut);\n }\n };\n ManagedFocusFeature.prototype.addKeyDownListeners = function (eGui) {\n var _this = this;\n this.addManagedListener(eGui, 'keydown', function (e) {\n if (e.defaultPrevented || isStopPropagationForAgGrid(e)) {\n return;\n }\n if (_this.callbacks.shouldStopEventPropagation(e)) {\n stopPropagationForAgGrid(e);\n return;\n }\n if (e.key === KeyCode.TAB) {\n _this.callbacks.onTabKeyDown(e);\n }\n else if (_this.callbacks.handleKeyDown) {\n _this.callbacks.handleKeyDown(e);\n }\n });\n };\n ManagedFocusFeature.FOCUS_MANAGED_CLASS = 'ag-focus-managed';\n __decorate$2n([\n Autowired('focusService')\n ], ManagedFocusFeature.prototype, \"focusService\", void 0);\n __decorate$2n([\n PostConstruct\n ], ManagedFocusFeature.prototype, \"postConstruct\", null);\n return ManagedFocusFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * Contains common logic to all provided filters (apply button, clear button, etc).\n * All the filters that come with AG Grid extend this class. User filters do not\n * extend this class.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n */\nvar ProvidedFilter = /** @class */ (function (_super) {\n __extends$2L(ProvidedFilter, _super);\n function ProvidedFilter(filterNameKey) {\n var _this = _super.call(this) || this;\n _this.filterNameKey = filterNameKey;\n _this.applyActive = false;\n _this.hidePopup = null;\n // after the user hits 'apply' the model gets copied to here. this is then the model that we use for\n // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.\n // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is\n // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter\n // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter\n // not active) then this appliedModel will be null/undefined.\n _this.appliedModel = null;\n return _this;\n }\n ProvidedFilter.prototype.postConstruct = function () {\n this.resetTemplate(); // do this first to create the DOM\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n // override\n ProvidedFilter.prototype.handleKeyDown = function (e) { };\n ProvidedFilter.prototype.getFilterTitle = function () {\n return this.translate(this.filterNameKey);\n };\n ProvidedFilter.prototype.isFilterActive = function () {\n // filter is active if we have a valid applied model\n return !!this.appliedModel;\n };\n ProvidedFilter.prototype.resetTemplate = function (paramsMap) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n var templateString = /* html */ \"\\n
\\n
\\n \" + this.createBodyTemplate() + \"\\n
\\n
\";\n this.setTemplate(templateString, paramsMap);\n eGui = this.getGui();\n if (eGui) {\n eGui.addEventListener('submit', this.onFormSubmit);\n }\n };\n ProvidedFilter.prototype.isReadOnly = function () {\n return !!this.providedFilterParams.readOnly;\n };\n ProvidedFilter.prototype.init = function (params) {\n var _this = this;\n this.setParams(params);\n this.resetUiToDefaults(true).then(function () {\n _this.updateUiVisibility();\n _this.setupOnBtApplyDebounce();\n });\n };\n ProvidedFilter.prototype.setParams = function (params) {\n this.providedFilterParams = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.createButtonPanel();\n };\n ProvidedFilter.prototype.createButtonPanel = function () {\n var _this = this;\n var buttons = this.providedFilterParams.buttons;\n if (!buttons || buttons.length < 1 || this.isReadOnly()) {\n return;\n }\n var eButtonsPanel = document.createElement('div');\n eButtonsPanel.classList.add('ag-filter-apply-panel');\n var addButton = function (type) {\n var text;\n var clickListener;\n switch (type) {\n case 'apply':\n text = _this.translate('applyFilter');\n clickListener = function (e) { return _this.onBtApply(false, false, e); };\n break;\n case 'clear':\n text = _this.translate('clearFilter');\n clickListener = function () { return _this.onBtClear(); };\n break;\n case 'reset':\n text = _this.translate('resetFilter');\n clickListener = function () { return _this.onBtReset(); };\n break;\n case 'cancel':\n text = _this.translate('cancelFilter');\n clickListener = function (e) { _this.onBtCancel(e); };\n break;\n default:\n console.warn('AG Grid: Unknown button type specified');\n return;\n }\n var buttonType = type === 'apply' ? 'submit' : 'button';\n var button = loadTemplate(\n /* html */\n \"\" + text + \"\\n \");\n eButtonsPanel.appendChild(button);\n _this.addManagedListener(button, 'click', clickListener);\n };\n convertToSet(buttons).forEach(function (type) { return addButton(type); });\n this.getGui().appendChild(eButtonsPanel);\n };\n // subclasses can override this to provide alternative debounce defaults\n ProvidedFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {\n var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n this.onBtApplyDebounce = debounce(this.onBtApply.bind(this), debounceMs);\n };\n ProvidedFilter.prototype.getModel = function () {\n return this.appliedModel ? this.appliedModel : null;\n };\n ProvidedFilter.prototype.setModel = function (model) {\n var _this = this;\n var promise = model != null ? this.setModelIntoUi(model) : this.resetUiToDefaults();\n return promise.then(function () {\n _this.updateUiVisibility();\n // we set the model from the GUI, rather than the provided model,\n // so the model is consistent, e.g. handling of null/undefined will be the same,\n // or if model is case insensitive, then casing is removed.\n _this.applyModel();\n });\n };\n ProvidedFilter.prototype.onBtCancel = function (e) {\n var _this = this;\n var currentModel = this.getModel();\n var afterAppliedFunc = function () {\n _this.onUiChanged(false, 'prevent');\n if (_this.providedFilterParams.closeOnApply) {\n _this.close(e);\n }\n };\n if (currentModel != null) {\n this.setModelIntoUi(currentModel).then(afterAppliedFunc);\n }\n else {\n this.resetUiToDefaults().then(afterAppliedFunc);\n }\n };\n ProvidedFilter.prototype.onBtClear = function () {\n var _this = this;\n this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });\n };\n ProvidedFilter.prototype.onBtReset = function () {\n this.onBtClear();\n this.onBtApply();\n };\n /**\n * Applies changes made in the UI to the filter, and returns true if the model has changed.\n */\n ProvidedFilter.prototype.applyModel = function () {\n var newModel = this.getModelFromUi();\n if (!this.isModelValid(newModel)) {\n return false;\n }\n var previousModel = this.appliedModel;\n this.appliedModel = newModel;\n // models can be same if user pasted same content into text field, or maybe just changed the case\n // and it's a case insensitive filter\n return !this.areModelsEqual(previousModel, newModel);\n };\n ProvidedFilter.prototype.isModelValid = function (model) {\n return true;\n };\n ProvidedFilter.prototype.onFormSubmit = function (e) {\n e.preventDefault();\n };\n ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {\n if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }\n if (afterDataChange === void 0) { afterDataChange = false; }\n // Prevent form submission\n if (e) {\n e.preventDefault();\n }\n if (this.applyModel()) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });\n }\n var closeOnApply = this.providedFilterParams.closeOnApply;\n // only close if an apply button is visible, otherwise we'd be closing every time a change was made!\n if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.onNewRowsLoaded = function () {\n };\n ProvidedFilter.prototype.close = function (e) {\n if (!this.hidePopup) {\n return;\n }\n var keyboardEvent = e;\n var key = keyboardEvent && keyboardEvent.key;\n var params;\n if (key === 'Enter' || key === 'Space') {\n params = { keyboardEvent: keyboardEvent };\n }\n this.hidePopup(params);\n this.hidePopup = null;\n };\n /**\n * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no\n * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can\n * be adjusted by using the apply parameter.\n */\n ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {\n if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }\n this.updateUiVisibility();\n this.providedFilterParams.filterModifiedCallback();\n if (this.applyActive && !this.isReadOnly) {\n var isValid = this.isModelValid(this.getModelFromUi());\n setDisabled(this.getRefElement('applyFilterButton'), !isValid);\n }\n if ((fromFloatingFilter && !apply) || apply === 'immediately') {\n this.onBtApply(fromFloatingFilter);\n }\n else if ((!this.applyActive && !apply) || apply === 'debounce') {\n this.onBtApplyDebounce();\n }\n };\n ProvidedFilter.prototype.afterGuiAttached = function (params) {\n if (params == null) {\n return;\n }\n this.hidePopup = params.hidePopup;\n };\n // static, as used by floating filter also\n ProvidedFilter.getDebounceMs = function (params, debounceDefault) {\n if (ProvidedFilter.isUseApplyButton(params)) {\n if (params.debounceMs != null) {\n console.warn('AG Grid: debounceMs is ignored when apply button is present');\n }\n return 0;\n }\n return params.debounceMs != null ? params.debounceMs : debounceDefault;\n };\n // static, as used by floating filter also\n ProvidedFilter.isUseApplyButton = function (params) {\n return !!params.buttons && params.buttons.indexOf('apply') >= 0;\n };\n ProvidedFilter.prototype.destroy = function () {\n var eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n this.hidePopup = null;\n _super.prototype.destroy.call(this);\n };\n ProvidedFilter.prototype.translate = function (key) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(key, DEFAULT_FILTER_LOCALE_TEXT[key]);\n };\n ProvidedFilter.prototype.getCellValue = function (rowNode) {\n var _a = this.providedFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n return this.providedFilterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: rowNode.data,\n getValue: function (field) { return rowNode.data[field]; },\n node: rowNode,\n });\n };\n __decorate$2m([\n Autowired('rowModel')\n ], ProvidedFilter.prototype, \"rowModel\", void 0);\n __decorate$2m([\n PostConstruct\n ], ProvidedFilter.prototype, \"postConstruct\", null);\n return ProvidedFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractLabel = /** @class */ (function (_super) {\n __extends$2K(AgAbstractLabel, _super);\n function AgAbstractLabel(config, template) {\n var _this = _super.call(this, template) || this;\n _this.labelSeparator = '';\n _this.labelAlignment = 'left';\n _this.disabled = false;\n _this.label = '';\n _this.config = config || {};\n return _this;\n }\n AgAbstractLabel.prototype.postConstruct = function () {\n this.addCssClass('ag-labeled');\n this.eLabel.classList.add('ag-label');\n var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;\n if (labelSeparator != null) {\n this.setLabelSeparator(labelSeparator);\n }\n if (label != null) {\n this.setLabel(label);\n }\n if (labelWidth != null) {\n this.setLabelWidth(labelWidth);\n }\n this.setLabelAlignment(labelAlignment || this.labelAlignment);\n this.refreshLabel();\n };\n AgAbstractLabel.prototype.refreshLabel = function () {\n clearElement(this.eLabel);\n if (typeof this.label === 'string') {\n this.eLabel.innerText = this.label + this.labelSeparator;\n }\n else if (this.label) {\n this.eLabel.appendChild(this.label);\n }\n if (this.label === '') {\n this.eLabel.classList.add('ag-hidden');\n setAriaRole(this.eLabel, 'presentation');\n }\n else {\n this.eLabel.classList.remove('ag-hidden');\n setAriaRole(this.eLabel, null);\n }\n };\n AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {\n if (this.labelSeparator === labelSeparator) {\n return this;\n }\n this.labelSeparator = labelSeparator;\n if (this.label != null) {\n this.refreshLabel();\n }\n return this;\n };\n AgAbstractLabel.prototype.getLabelId = function () {\n this.eLabel.id = this.eLabel.id || \"ag-\" + this.getCompId() + \"-label\";\n return this.eLabel.id;\n };\n AgAbstractLabel.prototype.getLabel = function () {\n return this.label;\n };\n AgAbstractLabel.prototype.setLabel = function (label) {\n if (this.label === label) {\n return this;\n }\n this.label = label;\n this.refreshLabel();\n return this;\n };\n AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {\n var eGui = this.getGui();\n var eGuiClassList = eGui.classList;\n eGuiClassList.toggle('ag-label-align-left', alignment === 'left');\n eGuiClassList.toggle('ag-label-align-right', alignment === 'right');\n eGuiClassList.toggle('ag-label-align-top', alignment === 'top');\n return this;\n };\n AgAbstractLabel.prototype.setLabelWidth = function (width) {\n if (this.label == null) {\n return this;\n }\n setElementWidth(this.eLabel, width);\n return this;\n };\n AgAbstractLabel.prototype.setDisabled = function (disabled) {\n disabled = !!disabled;\n var element = this.getGui();\n setDisabled(element, disabled);\n element.classList.toggle('ag-disabled', disabled);\n this.disabled = disabled;\n return this;\n };\n AgAbstractLabel.prototype.isDisabled = function () {\n return !!this.disabled;\n };\n __decorate$2l([\n PostConstruct\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgAbstractField = /** @class */ (function (_super) {\n __extends$2J(AgAbstractField, _super);\n function AgAbstractField(config, template, className) {\n var _this = _super.call(this, config, template) || this;\n _this.className = className;\n return _this;\n }\n AgAbstractField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.className) {\n this.addCssClass(this.className);\n }\n };\n AgAbstractField.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });\n return this;\n };\n AgAbstractField.prototype.getWidth = function () {\n return this.getGui().clientWidth;\n };\n AgAbstractField.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAbstractField.prototype.getPreviousValue = function () {\n return this.previousValue;\n };\n AgAbstractField.prototype.getValue = function () {\n return this.value;\n };\n AgAbstractField.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n return this;\n }\n this.previousValue = this.value;\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAbstractField.EVENT_CHANGED = 'valueChange';\n return AgAbstractField;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgPickerField = /** @class */ (function (_super) {\n __extends$2I(AgPickerField, _super);\n function AgPickerField(config, className, pickerIcon, ariaRole) {\n var _this = _super.call(this, config, \n /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\", className) || this;\n _this.pickerIcon = pickerIcon;\n _this.isPickerDisplayed = false;\n _this.isDestroyingPicker = false;\n _this.skipClick = false;\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n var displayId = this.getCompId() + \"-display\";\n this.eDisplayField.setAttribute('id', displayId);\n setAriaDescribedBy(this.eWrapper, displayId);\n var clickHandler = function () {\n if (_this.skipClick) {\n _this.skipClick = false;\n return;\n }\n if (_this.isDisabled()) {\n return;\n }\n _this.pickerComponent = _this.showPicker();\n };\n var eGui = this.getGui();\n this.addManagedListener(eGui, 'mousedown', function (e) {\n if (!_this.skipClick &&\n _this.pickerComponent &&\n _this.pickerComponent.isAlive() &&\n isVisible(_this.pickerComponent.getGui()) &&\n eGui.contains(e.target)) {\n _this.skipClick = true;\n }\n });\n this.addManagedListener(eGui, 'keydown', function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n clickHandler();\n case KeyCode.ESCAPE:\n if (_this.isPickerDisplayed) {\n e.preventDefault();\n }\n break;\n }\n });\n this.addManagedListener(this.eWrapper, 'click', clickHandler);\n this.addManagedListener(this.eLabel, 'click', clickHandler);\n if (this.pickerIcon) {\n var icon = createIconNoSpan(this.pickerIcon, this.gridOptionsWrapper);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n };\n AgPickerField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eWrapper, this.getLabelId());\n }\n else {\n this.eWrapper.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgPickerField.prototype.setAriaLabel = function (label) {\n setAriaLabel(this.eWrapper, label);\n return this;\n };\n AgPickerField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgPickerField.prototype.getFocusableElement = function () {\n return this.eWrapper;\n };\n __decorate$2k([\n RefSelector('eLabel')\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate$2k([\n RefSelector('eWrapper')\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate$2k([\n RefSelector('eDisplayField')\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate$2k([\n RefSelector('eIcon')\n ], AgPickerField.prototype, \"eIcon\", void 0);\n return AgPickerField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgList = /** @class */ (function (_super) {\n __extends$2H(AgList, _super);\n function AgList(cssIdentifier) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.cssIdentifier = cssIdentifier;\n _this.options = [];\n _this.itemEls = [];\n return _this;\n }\n AgList.prototype.init = function () {\n this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));\n };\n AgList.prototype.handleKeyDown = function (e) {\n var key = e.key;\n switch (key) {\n case KeyCode.ENTER:\n if (!this.highlightedEl) {\n this.setValue(this.getValue());\n }\n else {\n var pos = this.itemEls.indexOf(this.highlightedEl);\n this.setValueByIndex(pos);\n }\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n var isDown = key === KeyCode.DOWN;\n var itemToHighlight = void 0;\n e.preventDefault();\n if (!this.highlightedEl) {\n itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];\n }\n else {\n var currentIdx = this.itemEls.indexOf(this.highlightedEl);\n var nextPos = currentIdx + (isDown ? 1 : -1);\n nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);\n itemToHighlight = this.itemEls[nextPos];\n }\n this.highlightItem(itemToHighlight);\n break;\n }\n };\n AgList.prototype.addOptions = function (listOptions) {\n var _this = this;\n listOptions.forEach(function (listOption) { return _this.addOption(listOption); });\n return this;\n };\n AgList.prototype.addOption = function (listOption) {\n var value = listOption.value, text = listOption.text;\n var sanitisedText = escapeString(text || value);\n this.options.push({ value: value, text: sanitisedText });\n this.renderOption(value, sanitisedText);\n this.updateIndices();\n return this;\n };\n AgList.prototype.updateIndices = function () {\n var options = this.getGui().querySelectorAll('.ag-list-item');\n options.forEach(function (option, idx) {\n setAriaPosInSet(option, idx + 1);\n setAriaSetSize(option, options.length);\n });\n };\n AgList.prototype.renderOption = function (value, text) {\n var _this = this;\n var itemEl = document.createElement('div');\n setAriaRole(itemEl, 'option');\n itemEl.classList.add('ag-list-item', \"ag-\" + this.cssIdentifier + \"-list-item\");\n itemEl.innerHTML = \"\" + text + \"\";\n itemEl.tabIndex = -1;\n this.itemEls.push(itemEl);\n this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });\n this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });\n this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });\n this.getGui().appendChild(itemEl);\n };\n AgList.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n this.fireItemSelected();\n return this;\n }\n if (value == null) {\n this.reset();\n return this;\n }\n var idx = this.options.findIndex(function (option) { return option.value === value; });\n if (idx !== -1) {\n var option = this.options[idx];\n this.value = option.value;\n this.displayValue = option.text != null ? option.text : option.value;\n this.highlightItem(this.itemEls[idx]);\n if (!silent) {\n this.fireChangeEvent();\n }\n }\n return this;\n };\n AgList.prototype.setValueByIndex = function (idx) {\n return this.setValue(this.options[idx].value);\n };\n AgList.prototype.getValue = function () {\n return this.value;\n };\n AgList.prototype.getDisplayValue = function () {\n return this.displayValue;\n };\n AgList.prototype.refreshHighlighted = function () {\n var _this = this;\n this.clearHighlighted();\n var idx = this.options.findIndex(function (option) { return option.value === _this.value; });\n if (idx !== -1) {\n this.highlightItem(this.itemEls[idx]);\n }\n };\n AgList.prototype.reset = function () {\n this.value = null;\n this.displayValue = null;\n this.clearHighlighted();\n this.fireChangeEvent();\n };\n AgList.prototype.highlightItem = function (el) {\n if (!el.offsetParent) {\n return;\n }\n this.clearHighlighted();\n this.highlightedEl = el;\n this.highlightedEl.classList.add(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, true);\n this.highlightedEl.focus();\n };\n AgList.prototype.clearHighlighted = function () {\n if (!this.highlightedEl || !this.highlightedEl.offsetParent) {\n return;\n }\n this.highlightedEl.classList.remove(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, false);\n this.highlightedEl = null;\n };\n AgList.prototype.fireChangeEvent = function () {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n this.fireItemSelected();\n };\n AgList.prototype.fireItemSelected = function () {\n this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });\n };\n AgList.EVENT_ITEM_SELECTED = 'selectedItem';\n AgList.ACTIVE_CLASS = 'ag-active-item';\n __decorate$2j([\n PostConstruct\n ], AgList.prototype, \"init\", null);\n return AgList;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgSelect = /** @class */ (function (_super) {\n __extends$2G(AgSelect, _super);\n function AgSelect(config) {\n return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;\n }\n AgSelect.prototype.init = function () {\n var _this = this;\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n this.eWrapper.tabIndex = 0;\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, function () { if (_this.hideList) {\n _this.hideList();\n } });\n this.listComponent.addManagedListener(this.listComponent, AgAbstractField.EVENT_CHANGED, function () {\n _this.setValue(_this.listComponent.getValue(), false, true);\n if (_this.hideList) {\n _this.hideList();\n }\n });\n };\n AgSelect.prototype.showPicker = function () {\n var _this = this;\n var listGui = this.listComponent.getGui();\n var eDocument = this.gridOptionsWrapper.getDocument();\n var destroyMouseWheelFunc = this.addManagedListener(eDocument.body, 'wheel', function (e) {\n if (!listGui.contains(e.target) && _this.hideList) {\n _this.hideList();\n }\n });\n var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {\n if (!listGui.contains(e.relatedTarget) && _this.hideList) {\n _this.hideList();\n }\n });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: listGui,\n closeOnEsc: true,\n closedCallback: function () {\n _this.hideList = null;\n _this.isPickerDisplayed = false;\n destroyFocusOutFunc();\n destroyMouseWheelFunc();\n if (_this.isAlive()) {\n setAriaExpanded(_this.eWrapper, false);\n _this.getFocusableElement().focus();\n }\n },\n ariaLabel: translate('ariaLabelSelectField', 'Select Field')\n });\n if (addPopupRes) {\n this.hideList = addPopupRes.hideFunc;\n }\n this.isPickerDisplayed = true;\n setElementWidth(listGui, getAbsoluteWidth(this.eWrapper));\n setAriaExpanded(this.eWrapper, true);\n listGui.style.maxHeight = getInnerHeight(this.popupService.getPopupParent()) + 'px';\n listGui.style.position = 'absolute';\n this.popupService.positionPopupUnderComponent({\n type: 'ag-list',\n eventSource: this.eWrapper,\n ePopup: listGui,\n keepWithinBounds: true\n });\n this.listComponent.refreshHighlighted();\n return this.listComponent;\n };\n AgSelect.prototype.addOptions = function (options) {\n var _this = this;\n options.forEach(function (option) { return _this.addOption(option); });\n return this;\n };\n AgSelect.prototype.addOption = function (option) {\n this.listComponent.addOption(option);\n return this;\n };\n AgSelect.prototype.setValue = function (value, silent, fromPicker) {\n if (this.value === value) {\n return this;\n }\n if (!fromPicker) {\n this.listComponent.setValue(value, true);\n }\n var newValue = this.listComponent.getValue();\n if (newValue === this.getValue()) {\n return this;\n }\n this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgSelect.prototype.destroy = function () {\n if (this.hideList) {\n this.hideList();\n }\n this.destroyBean(this.listComponent);\n _super.prototype.destroy.call(this);\n };\n __decorate$2i([\n Autowired('popupService')\n ], AgSelect.prototype, \"popupService\", void 0);\n __decorate$2i([\n PostConstruct\n ], AgSelect.prototype, \"init\", null);\n return AgSelect;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractInputField = /** @class */ (function (_super) {\n __extends$2F(AgAbstractInputField, _super);\n function AgAbstractInputField(config, className, inputType, displayFieldTag) {\n if (inputType === void 0) { inputType = 'text'; }\n if (displayFieldTag === void 0) { displayFieldTag = 'input'; }\n var _this = _super.call(this, config, /* html */ \"\\n
\\n
\\n
\\n <\" + displayFieldTag + \" ref=\\\"eInput\\\" class=\\\"ag-input-field-input\\\">\\n
\\n
\", className) || this;\n _this.inputType = inputType;\n _this.displayFieldTag = displayFieldTag;\n return _this;\n }\n AgAbstractInputField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setInputType();\n this.eLabel.classList.add(this.className + \"-label\");\n this.eWrapper.classList.add(this.className + \"-input-wrapper\");\n this.eInput.classList.add(this.className + \"-input\");\n this.addCssClass('ag-input-field');\n this.eInput.id = this.eInput.id || \"ag-\" + this.getCompId() + \"-input\";\n var _a = this.config, width = _a.width, value = _a.value;\n if (width != null) {\n this.setWidth(width);\n }\n if (value != null) {\n this.setValue(value);\n }\n this.addInputListeners();\n };\n AgAbstractInputField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eInput, this.getLabelId());\n }\n else {\n this.eInput.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgAbstractInputField.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });\n };\n AgAbstractInputField.prototype.setInputType = function () {\n if (this.displayFieldTag === 'input') {\n this.eInput.setAttribute('type', this.inputType);\n }\n };\n AgAbstractInputField.prototype.getInputElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgAbstractInputField.prototype.setInputName = function (name) {\n this.getInputElement().setAttribute('name', name);\n return this;\n };\n AgAbstractInputField.prototype.getFocusableElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setMaxLength = function (length) {\n var eInput = this.eInput;\n eInput.maxLength = length;\n return this;\n };\n AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {\n addOrRemoveAttribute(this.eInput, 'placeholder', placeholder);\n return this;\n };\n AgAbstractInputField.prototype.setInputAriaLabel = function (label) {\n setAriaLabel(this.eInput, label);\n return this;\n };\n AgAbstractInputField.prototype.setDisabled = function (disabled) {\n setDisabled(this.eInput, disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n __decorate$2h([\n RefSelector('eLabel')\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate$2h([\n RefSelector('eWrapper')\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate$2h([\n RefSelector('eInput')\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionPosition;\n(function (ConditionPosition) {\n ConditionPosition[ConditionPosition[\"One\"] = 0] = \"One\";\n ConditionPosition[ConditionPosition[\"Two\"] = 1] = \"Two\";\n})(ConditionPosition || (ConditionPosition = {}));\n/**\n * Every filter with a dropdown where the user can specify a comparing type against the filter values.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n * @param E type of UI element used for collecting user-input\n */\nvar SimpleFilter = /** @class */ (function (_super) {\n __extends$2E(SimpleFilter, _super);\n function SimpleFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFilter.prototype.getNumberOfInputs = function (type) {\n var customOpts = this.optionsFactory.getCustomOption(type);\n if (customOpts) {\n var numberOfInputs = customOpts.numberOfInputs;\n return numberOfInputs != null ? numberOfInputs : 1;\n }\n var zeroInputTypes = [\n SimpleFilter.EMPTY, SimpleFilter.NOT_BLANK, SimpleFilter.BLANK,\n ];\n if (type && zeroInputTypes.indexOf(type) >= 0) {\n return 0;\n }\n else if (type === SimpleFilter.IN_RANGE) {\n return 2;\n }\n return 1;\n };\n // floating filter calls this when user applies filter from floating filter\n SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {\n this.setTypeFromFloatingFilter(type);\n this.setValueFromFloatingFilter(value);\n this.onUiChanged(true);\n };\n SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {\n this.eType1.setValue(type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n (this.isDefaultOperator('AND') ? this.eJoinOperatorAnd : this.eJoinOperatorOr).setValue(true);\n };\n SimpleFilter.prototype.getModelFromUi = function () {\n if (!this.isConditionUiComplete(ConditionPosition.One)) {\n return null;\n }\n if (this.isAllowTwoConditions() && this.isConditionUiComplete(ConditionPosition.Two)) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: this.createCondition(ConditionPosition.One),\n condition2: this.createCondition(ConditionPosition.Two)\n };\n }\n return this.createCondition(ConditionPosition.One);\n };\n SimpleFilter.prototype.getConditionTypes = function () {\n return [\n this.eType1.getValue(),\n this.eType2.getValue(),\n ];\n };\n SimpleFilter.prototype.getJoinOperator = function () {\n return this.eJoinOperatorOr.getValue() === true ? 'OR' : 'AND';\n };\n SimpleFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (!a && !b) {\n return true;\n }\n // one is missing, other present\n if ((!a && b) || (a && !b)) {\n return false;\n }\n // one is combined, the other is not\n var aIsSimple = !a.operator;\n var bIsSimple = !b.operator;\n var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);\n if (oneSimpleOneCombined) {\n return false;\n }\n var res;\n // otherwise both present, so compare\n if (aIsSimple) {\n var aSimple = a;\n var bSimple = b;\n res = this.areSimpleModelsEqual(aSimple, bSimple);\n }\n else {\n var aCombined = a;\n var bCombined = b;\n res = aCombined.operator === bCombined.operator\n && this.areSimpleModelsEqual(aCombined.condition1, bCombined.condition1)\n && this.areSimpleModelsEqual(aCombined.condition2, bCombined.condition2);\n }\n return res;\n };\n SimpleFilter.prototype.setModelIntoUi = function (model) {\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n var orChecked = combinedModel.operator === 'OR';\n this.eJoinOperatorAnd.setValue(!orChecked);\n this.eJoinOperatorOr.setValue(orChecked);\n this.eType1.setValue(combinedModel.condition1.type);\n this.eType2.setValue(combinedModel.condition2.type);\n this.setConditionIntoUi(combinedModel.condition1, ConditionPosition.One);\n this.setConditionIntoUi(combinedModel.condition2, ConditionPosition.Two);\n }\n else {\n var simpleModel = model;\n this.eJoinOperatorAnd.setValue(this.isDefaultOperator('AND'));\n this.eJoinOperatorOr.setValue(this.isDefaultOperator('OR'));\n this.eType1.setValue(simpleModel.type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n this.setConditionIntoUi(simpleModel, ConditionPosition.One);\n this.setConditionIntoUi(null, ConditionPosition.Two);\n }\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n var model = this.getModel();\n if (model == null) {\n return true;\n }\n var operator = model.operator;\n var models = [];\n if (operator) {\n var combinedModel = model;\n models.push(combinedModel.condition1, combinedModel.condition2);\n }\n else {\n models.push(model);\n }\n var combineFunction = operator && operator === 'OR' ? 'some' : 'every';\n return models[combineFunction](function (m) { return _this.individualConditionPasses(params, m); });\n };\n SimpleFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.allowTwoConditions = !params.suppressAndOrCondition;\n this.alwaysShowBothConditions = !!params.alwaysShowBothConditions;\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.filterPlaceholder = params.filterPlaceholder;\n this.putOptionsIntoDropdown();\n this.addChangedListeners();\n };\n SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {\n return includes(['AND', 'OR'], defaultJoinOperator) ? defaultJoinOperator : 'AND';\n };\n SimpleFilter.prototype.putOptionsIntoDropdown = function () {\n var _this = this;\n var filterOptions = this.optionsFactory.getFilterOptions();\n var eTypes = [this.eType1, this.eType2];\n // Add specified options to all condition drop-downs.\n filterOptions.forEach(function (option) {\n var listOption = typeof option === 'string' ?\n _this.createBoilerplateListOption(option) :\n _this.createCustomListOption(option);\n eTypes.forEach(function (eType) { return eType.addOption(listOption); });\n });\n // Make drop-downs read-only if there is only one option.\n eTypes.forEach(function (eType) { return eType.setDisabled(filterOptions.length <= 1); });\n };\n SimpleFilter.prototype.createBoilerplateListOption = function (option) {\n return { value: option, text: this.translate(option) };\n };\n SimpleFilter.prototype.createCustomListOption = function (option) {\n var displayKey = option.displayKey;\n var customOption = this.optionsFactory.getCustomOption(option.displayKey);\n return {\n value: displayKey,\n text: customOption ?\n this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n this.translate(displayKey),\n };\n };\n SimpleFilter.prototype.isAllowTwoConditions = function () {\n return this.allowTwoConditions;\n };\n SimpleFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n \\n \" + this.createValueTemplate(ConditionPosition.One) + \"\\n
\\n \\n \\n
\\n \\n \" + this.createValueTemplate(ConditionPosition.Two);\n };\n SimpleFilter.prototype.getCssIdentifier = function () {\n return 'simple-filter';\n };\n SimpleFilter.prototype.updateUiVisibility = function () {\n var _this = this;\n var elementConditionGroups = [\n [this.eType1],\n [this.eType2, this.eJoinOperatorPanel, this.eJoinOperatorAnd, this.eJoinOperatorOr],\n ];\n var elementBodies = [this.eCondition1Body, this.eCondition2Body];\n elementConditionGroups.forEach(function (group, position) {\n var visible = _this.isConditionVisible(position);\n var disabled = _this.isConditionDisabled(position);\n group.forEach(function (element) {\n if (element instanceof AgAbstractInputField || element instanceof AgSelect) {\n element.setDisabled(disabled);\n element.setDisplayed(visible);\n }\n else {\n setDisabled(element, disabled);\n setDisplayed(element, visible);\n }\n });\n });\n elementBodies.forEach(function (element, index) {\n setDisplayed(element, _this.isConditionBodyVisible(index));\n });\n this.forEachInput(function (element, index, position, numberOfInputs) {\n _this.setElementDisplayed(element, index < numberOfInputs);\n _this.setElementDisabled(element, _this.isConditionDisabled(position));\n });\n this.resetPlaceholder();\n };\n SimpleFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!params || (!params.suppressFocus && !this.isReadOnly())) {\n var firstInput = this.getInputs()[0][0];\n if (!firstInput) {\n return;\n }\n if (firstInput instanceof AgAbstractInputField) {\n firstInput.getInputElement().focus();\n }\n }\n };\n SimpleFilter.prototype.getPlaceholderText = function (defaultPlaceholder, position) {\n var placeholder = this.translate(defaultPlaceholder);\n if (isFunction(this.filterPlaceholder)) {\n var filterPlaceholderFn = this.filterPlaceholder;\n var filterOptionKey = (position === 0 ? this.eType1.getValue() : this.eType2.getValue());\n var filterOption = this.translate(filterOptionKey);\n placeholder = filterPlaceholderFn({\n filterOptionKey: filterOptionKey,\n filterOption: filterOption,\n placeholder: placeholder\n });\n }\n else if (typeof this.filterPlaceholder === 'string') {\n placeholder = this.filterPlaceholder;\n }\n return placeholder;\n };\n // allow sub-classes to reset HTML placeholders after UI update.\n SimpleFilter.prototype.resetPlaceholder = function () {\n var _this = this;\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.forEachInput(function (element, index, position, numberOfInputs) {\n if (!(element instanceof AgAbstractInputField)) {\n return;\n }\n var placeholder = index === 0 && numberOfInputs > 1 ? 'inRangeStart' :\n index === 0 ? 'filterOoo' :\n 'inRangeEnd';\n var ariaLabel = index === 0 && numberOfInputs > 1 ? globalTranslate('ariaFilterFromValue', 'Filter from value') :\n index === 0 ? globalTranslate('ariaFilterValue', 'Filter Value') :\n globalTranslate('ariaFilterToValue', 'Filter to Value');\n element.setInputPlaceholder(_this.getPlaceholderText(placeholder, position));\n element.setInputAriaLabel(ariaLabel);\n });\n };\n SimpleFilter.prototype.setElementValue = function (element, value, silent) {\n if (element instanceof AgAbstractInputField) {\n element.setValue(value != null ? String(value) : null, silent);\n }\n };\n SimpleFilter.prototype.setElementDisplayed = function (element, displayed) {\n if (element instanceof Component) {\n setDisplayed(element.getGui(), displayed);\n }\n };\n SimpleFilter.prototype.setElementDisabled = function (element, disabled) {\n if (element instanceof Component) {\n setDisabled(element.getGui(), disabled);\n }\n };\n SimpleFilter.prototype.attachElementOnChange = function (element, listener) {\n if (element instanceof AgAbstractInputField) {\n element.onValueChange(listener);\n }\n };\n SimpleFilter.prototype.forEachInput = function (cb) {\n var _this = this;\n var inputs = this.getInputs();\n this.getConditionTypes().forEach(function (type, position) {\n var numberOfInputs = _this.getNumberOfInputs(type);\n for (var index = 0; index < inputs[position].length; index++) {\n var input = inputs[position][index];\n if (input != null) {\n cb(input, index, position, numberOfInputs);\n }\n }\n });\n };\n SimpleFilter.prototype.isConditionVisible = function (position) {\n if (position === 0) {\n return true;\n } // Position 0 should always be visible.\n if (!this.allowTwoConditions) {\n return false;\n } // Short-circuit if no tail conditions.\n if (this.isReadOnly()) {\n // Only display a condition when read-only if the condition is complete.\n return this.isConditionUiComplete(position);\n }\n if (this.alwaysShowBothConditions) {\n return true;\n }\n // Only display a 2nd or later condition when the previous condition is complete.\n return this.isConditionUiComplete(position - 1);\n };\n SimpleFilter.prototype.isConditionDisabled = function (position) {\n if (this.isReadOnly()) {\n return true;\n } // Read-only mode trumps everything.\n if (!this.isConditionVisible(position)) {\n return true;\n } // Invisible implies disabled.\n if (position === 0) {\n return false;\n } // Position 0 should typically be editable.\n // Only allow editing of a 2nd or later condition if the previous condition is complete.\n return !this.isConditionUiComplete(position - 1);\n };\n SimpleFilter.prototype.isConditionBodyVisible = function (position) {\n if (!this.isConditionVisible(position)) {\n return false;\n }\n // Check that the condition needs inputs.\n var type = this.getConditionTypes()[position];\n var numberOfInputs = this.getNumberOfInputs(type);\n return numberOfInputs > 0;\n };\n // returns true if the UI represents a working filter, eg all parts are filled out.\n // eg if text filter and textfield blank then returns false.\n SimpleFilter.prototype.isConditionUiComplete = function (position) {\n var type = this.getConditionTypes()[position];\n if (type === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.getValues(position).some(function (v) { return v == null; })) {\n return false;\n }\n return true;\n };\n SimpleFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n var uniqueGroupId = 'ag-simple-filter-and-or-' + this.getCompId();\n var defaultOption = this.optionsFactory.getDefaultOption();\n this.eType1\n .setValue(defaultOption, silent)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly());\n this.eType2\n .setValue(this.optionsFactory.getDefaultOption(), silent)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly());\n this.eJoinOperatorAnd\n .setValue(this.isDefaultOperator('AND'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('andCondition'))\n .setDisabled(this.isReadOnly());\n this.eJoinOperatorOr\n .setValue(this.isDefaultOperator('OR'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('orCondition'))\n .setDisabled(this.isReadOnly());\n this.forEachInput(function (element) {\n _this.setElementValue(element, null, silent);\n _this.setElementDisabled(element, _this.isReadOnly());\n });\n this.resetPlaceholder();\n return AgPromise.resolve();\n };\n // puts model values into the UI\n SimpleFilter.prototype.setConditionIntoUi = function (model, position) {\n var _this = this;\n var values = this.mapValuesFromModel(model);\n this.forEachInput(function (element, index, elPosition, _) {\n if (elPosition !== position) {\n return;\n }\n _this.setElementValue(element, values[index] != null ? values[index] : null);\n });\n };\n // after floating filter changes, this sets the 'value' section. this is implemented by the base class\n // (as that's where value is controlled), the 'type' part from the floating filter is dealt with in this class.\n SimpleFilter.prototype.setValueFromFloatingFilter = function (value) {\n var _this = this;\n this.forEachInput(function (element, index, position, _) {\n _this.setElementValue(element, index === 0 && position === 0 ? value : null);\n });\n };\n SimpleFilter.prototype.isDefaultOperator = function (operator) {\n return operator === this.defaultJoinOperator;\n };\n SimpleFilter.prototype.addChangedListeners = function () {\n var _this = this;\n if (this.isReadOnly()) {\n return;\n }\n var listener = function () { return _this.onUiChanged(); };\n this.eType1.onValueChange(listener);\n this.eType2.onValueChange(listener);\n this.eJoinOperatorOr.onValueChange(listener);\n this.eJoinOperatorAnd.onValueChange(listener);\n this.forEachInput(function (element) {\n _this.attachElementOnChange(element, listener);\n });\n };\n /** returns true if the row passes the said condition */\n SimpleFilter.prototype.individualConditionPasses = function (params, filterModel) {\n var cellValue = this.getCellValue(params.node);\n var values = this.mapValuesFromModel(filterModel);\n var customFilterOption = this.optionsFactory.getCustomOption(filterModel.type);\n var customFilterResult = this.evaluateCustomFilter(customFilterOption, values, cellValue);\n if (customFilterResult != null) {\n return customFilterResult;\n }\n if (cellValue == null) {\n return this.evaluateNullValue(filterModel.type);\n }\n return this.evaluateNonNullValue(values, cellValue, filterModel, params);\n };\n SimpleFilter.prototype.evaluateCustomFilter = function (customFilterOption, values, cellValue) {\n if (customFilterOption == null) {\n return;\n }\n var predicate = customFilterOption.predicate;\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (predicate != null && !values.some(function (v) { return v == null; })) {\n return predicate(values, cellValue);\n }\n // No custom filter invocation, indicate that to the caller.\n return;\n };\n SimpleFilter.prototype.isBlank = function (cellValue) {\n return cellValue == null ||\n (typeof cellValue === 'string' && cellValue.trim().length === 0);\n };\n SimpleFilter.EMPTY = 'empty';\n SimpleFilter.BLANK = 'blank';\n SimpleFilter.NOT_BLANK = 'notBlank';\n SimpleFilter.EQUALS = 'equals';\n SimpleFilter.NOT_EQUAL = 'notEqual';\n SimpleFilter.LESS_THAN = 'lessThan';\n SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\n SimpleFilter.GREATER_THAN = 'greaterThan';\n SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\n SimpleFilter.IN_RANGE = 'inRange';\n SimpleFilter.CONTAINS = 'contains';\n SimpleFilter.NOT_CONTAINS = 'notContains';\n SimpleFilter.STARTS_WITH = 'startsWith';\n SimpleFilter.ENDS_WITH = 'endsWith';\n __decorate$2g([\n RefSelector('eOptions1')\n ], SimpleFilter.prototype, \"eType1\", void 0);\n __decorate$2g([\n RefSelector('eOptions2')\n ], SimpleFilter.prototype, \"eType2\", void 0);\n __decorate$2g([\n RefSelector('eJoinOperatorPanel')\n ], SimpleFilter.prototype, \"eJoinOperatorPanel\", void 0);\n __decorate$2g([\n RefSelector('eJoinOperatorAnd')\n ], SimpleFilter.prototype, \"eJoinOperatorAnd\", void 0);\n __decorate$2g([\n RefSelector('eJoinOperatorOr')\n ], SimpleFilter.prototype, \"eJoinOperatorOr\", void 0);\n __decorate$2g([\n RefSelector('eCondition1Body')\n ], SimpleFilter.prototype, \"eCondition1Body\", void 0);\n __decorate$2g([\n RefSelector('eCondition2Body')\n ], SimpleFilter.prototype, \"eCondition2Body\", void 0);\n return SimpleFilter;\n}(ProvidedFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ScalarFilter = /** @class */ (function (_super) {\n __extends$2D(ScalarFilter, _super);\n function ScalarFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScalarFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.scalarFilterParams = params;\n };\n ScalarFilter.prototype.evaluateNullValue = function (filterType) {\n switch (filterType) {\n case ScalarFilter.EQUALS:\n case ScalarFilter.NOT_EQUAL:\n if (this.scalarFilterParams.includeBlanksInEquals) {\n return true;\n }\n break;\n case ScalarFilter.GREATER_THAN:\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInGreaterThan) {\n return true;\n }\n break;\n case ScalarFilter.LESS_THAN:\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInLessThan) {\n return true;\n }\n break;\n case ScalarFilter.IN_RANGE:\n if (this.scalarFilterParams.includeBlanksInRange) {\n return true;\n }\n break;\n case ScalarFilter.BLANK:\n return true;\n case ScalarFilter.NOT_BLANK:\n return false;\n }\n return false;\n };\n ScalarFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel) {\n var comparator = this.comparator();\n var compareResult = values[0] != null ? comparator(values[0], cellValue) : 0;\n switch (filterModel.type) {\n case ScalarFilter.EQUALS:\n return compareResult === 0;\n case ScalarFilter.NOT_EQUAL:\n return compareResult !== 0;\n case ScalarFilter.GREATER_THAN:\n return compareResult > 0;\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n return compareResult >= 0;\n case ScalarFilter.LESS_THAN:\n return compareResult < 0;\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n return compareResult <= 0;\n case ScalarFilter.IN_RANGE: {\n var compareToResult = comparator(values[1], cellValue);\n return this.scalarFilterParams.inRangeInclusive ?\n compareResult >= 0 && compareToResult <= 0 :\n compareResult > 0 && compareToResult < 0;\n }\n case ScalarFilter.BLANK:\n return this.isBlank(cellValue);\n case ScalarFilter.NOT_BLANK:\n return !this.isBlank(cellValue);\n default:\n console.warn('AG Grid: Unexpected type of filter \"' + filterModel.type + '\", it looks like the filter was configured with incorrect Filter Options');\n return true;\n }\n };\n return ScalarFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar __decorate$2f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEFAULT_MIN_YEAR = 1000;\nvar DEFAULT_MAX_YEAR = Infinity;\nvar DateFilter = /** @class */ (function (_super) {\n __extends$2C(DateFilter, _super);\n function DateFilter() {\n var _this = _super.call(this, 'dateFilter') || this;\n _this.minValidYear = DEFAULT_MIN_YEAR;\n _this.maxValidYear = DEFAULT_MAX_YEAR;\n return _this;\n }\n DateFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.dateCondition1FromComp.afterGuiAttached(params);\n };\n DateFilter.prototype.mapValuesFromModel = function (filterModel) {\n // unlike the other filters, we do two things here:\n // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'\n // are in different locations in Date and Number filter models)\n // 2) convert the type (because Date filter uses Dates, however model is 'string')\n //\n // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks\n // a date from the UI, it will have timezone info in it. This is lost when creating\n // the model. When we recreate the date again here, it's without a timezone.\n var _a = filterModel || {}, dateFrom = _a.dateFrom, dateTo = _a.dateTo, type = _a.type;\n return [\n dateFrom && parseDateTimeFromString(dateFrom) || null,\n dateTo && parseDateTimeFromString(dateTo) || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n DateFilter.prototype.comparator = function () {\n return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);\n };\n DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {\n // The default comparator assumes that the cellValue is a date\n var cellAsDate = cellValue;\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n };\n DateFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.dateFilterParams = params;\n var yearParser = function (param, fallback) {\n if (params[param] != null) {\n if (!isNaN(params[param])) {\n return params[param] == null ? fallback : Number(params[param]);\n }\n else {\n console.warn(\"AG Grid: DateFilter \" + param + \" is not a number\");\n }\n }\n return fallback;\n };\n this.minValidYear = yearParser('minValidYear', DEFAULT_MIN_YEAR);\n this.maxValidYear = yearParser('maxValidYear', DEFAULT_MAX_YEAR);\n if (this.minValidYear > this.maxValidYear) {\n console.warn(\"AG Grid: DateFilter minValidYear should be <= maxValidYear\");\n }\n this.createDateComponents();\n };\n DateFilter.prototype.createDateComponents = function () {\n var _this = this;\n var createDateCompWrapper = function (element) {\n return new DateCompWrapper(_this.getContext(), _this.userComponentFactory, {\n onDateChanged: function () { return _this.onUiChanged(); },\n filterParams: _this.dateFilterParams\n }, element);\n };\n this.dateCondition1FromComp = createDateCompWrapper(this.eCondition1PanelFrom);\n this.dateCondition1ToComp = createDateCompWrapper(this.eCondition1PanelTo);\n this.dateCondition2FromComp = createDateCompWrapper(this.eCondition2PanelFrom);\n this.dateCondition2ToComp = createDateCompWrapper(this.eCondition2PanelTo);\n this.addDestroyFunc(function () {\n _this.forEachInput(function (element) { return element.destroy(); });\n });\n };\n DateFilter.prototype.setElementValue = function (element, value, silent) {\n element.setDate(value);\n };\n DateFilter.prototype.setElementDisplayed = function (element, displayed) {\n element.setDisplayed(displayed);\n };\n DateFilter.prototype.setElementDisabled = function (element, disabled) {\n element.setDisabled(disabled);\n };\n DateFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n
\\n
\\n
\";\n };\n DateFilter.prototype.isConditionUiComplete = function (position) {\n var _this = this;\n if (!_super.prototype.isConditionUiComplete.call(this, position)) {\n return false;\n }\n var isValidDate = function (value) { return value != null\n && value.getUTCFullYear() >= _this.minValidYear\n && value.getUTCFullYear() <= _this.maxValidYear; };\n var valid = true;\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (elPosition !== position || !valid || index >= numberOfInputs) {\n return;\n }\n valid = valid && isValidDate(element.getDate());\n });\n return valid;\n };\n DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.dateFrom === bSimple.dateFrom\n && aSimple.dateTo === bSimple.dateTo\n && aSimple.type === bSimple.type;\n };\n DateFilter.prototype.getFilterType = function () {\n return 'date';\n };\n DateFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {};\n var values = this.getValues(position);\n if (values.length > 0) {\n model.dateFrom = serialiseDate(values[0]);\n }\n if (values.length > 1) {\n model.dateTo = serialiseDate(values[1]);\n }\n return __assign$b({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type: type }, model);\n };\n DateFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n var placeholder = this.translate('dateFormatOoo');\n var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');\n this.forEachInput(function (element) {\n element.setInputPlaceholder(placeholder);\n element.setInputAriaLabel(ariaLabel);\n });\n };\n DateFilter.prototype.getInputs = function () {\n return [\n [this.dateCondition1FromComp, this.dateCondition1ToComp],\n [this.dateCondition2FromComp, this.dateCondition2ToComp],\n ];\n };\n DateFilter.prototype.getValues = function (position) {\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n result.push(element.getDate());\n }\n });\n return result;\n };\n DateFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.LESS_THAN,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n __decorate$2f([\n RefSelector('eCondition1PanelFrom')\n ], DateFilter.prototype, \"eCondition1PanelFrom\", void 0);\n __decorate$2f([\n RefSelector('eCondition1PanelTo')\n ], DateFilter.prototype, \"eCondition1PanelTo\", void 0);\n __decorate$2f([\n RefSelector('eCondition2PanelFrom')\n ], DateFilter.prototype, \"eCondition2PanelFrom\", void 0);\n __decorate$2f([\n RefSelector('eCondition2PanelTo')\n ], DateFilter.prototype, \"eCondition2PanelTo\", void 0);\n __decorate$2f([\n Autowired('userComponentFactory')\n ], DateFilter.prototype, \"userComponentFactory\", void 0);\n return DateFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SimpleFloatingFilter = /** @class */ (function (_super) {\n __extends$2B(SimpleFloatingFilter, _super);\n function SimpleFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SimpleFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n // used by:\n // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.\n // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)\n SimpleFloatingFilter.prototype.getTextFromModel = function (model) {\n if (!model) {\n return null;\n }\n var isCombined = model.operator != null;\n if (isCombined) {\n var combinedModel = model;\n var _a = combinedModel || {}, condition1 = _a.condition1, condition2 = _a.condition2;\n var customOption1 = this.getTextFromModel(condition1);\n var customOption2 = this.getTextFromModel(condition2);\n return [\n customOption1,\n combinedModel.operator,\n customOption2,\n ].join(' ');\n }\n else if (model.type === SimpleFilter.BLANK || model.type === SimpleFilter.NOT_BLANK) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(model.type, model.type);\n }\n else {\n var condition = model;\n var customOption = this.optionsFactory.getCustomOption(condition.type);\n // For custom filter options we display the Name of the filter instead\n // of displaying the `from` value, as it wouldn't be relevant\n var _b = customOption || {}, displayKey = _b.displayKey, displayName = _b.displayName, numberOfInputs = _b.numberOfInputs;\n if (displayKey && displayName && numberOfInputs === 0) {\n this.gridOptionsWrapper.getLocaleTextFunc()(displayKey, displayName);\n return displayName;\n }\n return this.conditionToString(condition, customOption);\n }\n };\n SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {\n return event && event.afterFloatingFilter;\n };\n SimpleFloatingFilter.prototype.getLastType = function () {\n return this.lastType;\n };\n SimpleFloatingFilter.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {\n // if no model provided by the parent filter use default\n if (!model) {\n this.lastType = this.optionsFactory.getDefaultOption();\n return;\n }\n var isCombined = model.operator;\n var condition;\n if (isCombined) {\n var combinedModel = model;\n condition = combinedModel.condition1;\n }\n else {\n condition = model;\n }\n this.lastType = condition.type;\n };\n SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {\n if (!model) {\n // if no model, then we can edit as long as the lastType is something we can edit, as this\n // is the type we will provide to the parent filter if the user decides to use the floating filter.\n return this.isTypeEditable(this.lastType);\n }\n // never allow editing if the filter is combined (ie has two parts)\n var isCombined = model.operator;\n if (isCombined) {\n return false;\n }\n var simpleModel = model;\n return this.isTypeEditable(simpleModel.type);\n };\n SimpleFloatingFilter.prototype.init = function (params) {\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());\n this.lastType = this.optionsFactory.getDefaultOption();\n // readOnly is a property of IProvidedFilterParams - we need to find a better (type-safe)\n // way to support reading this in the future.\n this.readOnly = !!params.filterParams.readOnly;\n // we are editable if:\n // 1) there is a type (user has configured filter wrong if not type)\n // AND\n // 2) the default type is not 'in range'\n var editable = this.isTypeEditable(this.lastType);\n this.setEditable(editable);\n };\n SimpleFloatingFilter.prototype.doesFilterHaveSingleInput = function (filterType) {\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n var numberOfInputs = (customFilterOption || {}).numberOfInputs;\n return numberOfInputs == null || numberOfInputs == 1;\n };\n SimpleFloatingFilter.prototype.isTypeEditable = function (type) {\n var uneditableTypes = [\n SimpleFilter.IN_RANGE, SimpleFilter.EMPTY, SimpleFilter.BLANK, SimpleFilter.NOT_BLANK,\n ];\n return !!type &&\n !this.isReadOnly() &&\n this.doesFilterHaveSingleInput(type) &&\n uneditableTypes.indexOf(type) < 0;\n };\n return SimpleFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DateFloatingFilter = /** @class */ (function (_super) {\n __extends$2A(DateFloatingFilter, _super);\n function DateFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\\n
\") || this;\n }\n DateFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFloatingFilter.prototype.conditionToString = function (condition, options) {\n var type = condition.type;\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n var dateFrom = parseDateTimeFromString(condition.dateFrom);\n var dateTo = parseDateTimeFromString(condition.dateTo);\n var format = this.filterParams.inRangeFloatingFilterDateFormat;\n if (isRange) {\n var formattedFrom = dateFrom !== null ? dateToFormattedString(dateFrom, format) : 'null';\n var formattedTo = dateTo !== null ? dateToFormattedString(dateTo, format) : 'null';\n return formattedFrom + \"-\" + formattedTo;\n }\n if (dateFrom != null) {\n return dateToFormattedString(dateFrom, format);\n }\n // cater for when the type doesn't need a value\n return \"\" + type;\n };\n DateFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.createDateComponent();\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n };\n DateFloatingFilter.prototype.setEditable = function (editable) {\n setDisplayed(this.eDateWrapper, editable);\n setDisplayed(this.eReadOnlyText.getGui(), !editable);\n };\n DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (this.isEventFromFloatingFilter(event)) {\n return;\n }\n _super.prototype.setLastTypeFromModel.call(this, model);\n var allowEditing = !this.isReadOnly() &&\n this.canWeEditAfterModelFromParentFilter(model);\n this.setEditable(allowEditing);\n if (allowEditing) {\n if (model) {\n var dateModel = model;\n this.dateComp.setDate(parseDateTimeFromString(dateModel.dateFrom));\n }\n else {\n this.dateComp.setDate(null);\n }\n this.eReadOnlyText.setValue('');\n }\n else {\n this.eReadOnlyText.setValue(this.getTextFromModel(model));\n this.dateComp.setDate(null);\n }\n };\n DateFloatingFilter.prototype.onDateChanged = function () {\n var _this = this;\n var filterValueDate = this.dateComp.getDate();\n var filterValueText = serialiseDate(filterValueDate);\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n var date = parseDateTimeFromString(filterValueText);\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, date);\n }\n });\n };\n DateFloatingFilter.prototype.createDateComponent = function () {\n var _this = this;\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var dateComponentParams = {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);\n this.addDestroyFunc(function () { return _this.dateComp.destroy(); });\n };\n __decorate$2e([\n Autowired('userComponentFactory')\n ], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$2e([\n RefSelector('eReadOnlyText')\n ], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n __decorate$2e([\n RefSelector('eDateWrapper')\n ], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n return DateFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DefaultDateComponent = /** @class */ (function (_super) {\n __extends$2z(DefaultDateComponent, _super);\n function DefaultDateComponent() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DefaultDateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DefaultDateComponent.prototype.init = function (params) {\n var _this = this;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var inputElement = this.eDateInput.getInputElement();\n if (this.shouldUseBrowserDatePicker(params)) {\n inputElement.type = 'date';\n }\n // ensures that the input element is focussed when a clear button is clicked\n this.addManagedListener(inputElement, 'mousedown', function () {\n if (_this.eDateInput.isDisabled()) {\n return;\n }\n inputElement.focus();\n });\n this.addManagedListener(inputElement, 'input', function (e) {\n if (e.target !== eDocument.activeElement) {\n return;\n }\n if (_this.eDateInput.isDisabled()) {\n return;\n }\n params.onDateChanged();\n });\n var _a = params.filterParams || {}, minValidYear = _a.minValidYear, maxValidYear = _a.maxValidYear;\n if (minValidYear) {\n inputElement.min = minValidYear + \"-01-01\";\n }\n if (maxValidYear) {\n inputElement.max = maxValidYear + \"-12-31\";\n }\n };\n DefaultDateComponent.prototype.getDate = function () {\n return parseDateTimeFromString(this.eDateInput.getValue());\n };\n DefaultDateComponent.prototype.setDate = function (date) {\n this.eDateInput.setValue(serialiseDate(date, false));\n };\n DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {\n this.eDateInput.setInputPlaceholder(placeholder);\n };\n DefaultDateComponent.prototype.setDisabled = function (disabled) {\n this.eDateInput.setDisabled(disabled);\n };\n DefaultDateComponent.prototype.afterGuiAttached = function (params) {\n if (!params || !params.suppressFocus) {\n this.eDateInput.getInputElement().focus();\n }\n };\n DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {\n if (params.filterParams && params.filterParams.browserDatePicker != null) {\n return params.filterParams.browserDatePicker;\n }\n return isBrowserChrome() || isBrowserFirefox();\n };\n __decorate$2d([\n RefSelector('eDateInput')\n ], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n return DefaultDateComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NumberFilter = /** @class */ (function (_super) {\n __extends$2y(NumberFilter, _super);\n function NumberFilter() {\n return _super.call(this, 'numberFilter') || this;\n }\n NumberFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n filter == null ? null : filter,\n filterTo == null ? null : filterTo,\n ].slice(0, this.getNumberOfInputs(type));\n };\n NumberFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n NumberFilter.prototype.comparator = function () {\n return function (left, right) {\n if (left === right) {\n return 0;\n }\n return left < right ? 1 : -1;\n };\n };\n NumberFilter.prototype.setParams = function (params) {\n this.numberFilterParams = params;\n var allowedCharPattern = this.getAllowedCharPattern();\n if (allowedCharPattern) {\n var config = { allowedCharPattern: allowedCharPattern };\n this.resetTemplate({\n 'eValue-index0-1': config,\n 'eValue-index1-1': config,\n 'eValue-index0-2': config,\n 'eValue-index1-2': config,\n });\n }\n _super.prototype.setParams.call(this, params);\n };\n NumberFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n var allowedCharPattern = this.getAllowedCharPattern();\n var agElementTag = allowedCharPattern ? 'ag-input-text-field' : 'ag-input-number-field';\n return /* html */ \"\\n
\\n <\" + agElementTag + \" class=\\\"ag-filter-from ag-filter-filter\\\" ref=\\\"eValue-index0-\" + pos + \"\\\">\\n <\" + agElementTag + \" class=\\\"ag-filter-to ag-filter-filter\\\" ref=\\\"eValue-index1-\" + pos + \"\\\">\\n
\";\n };\n NumberFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n result.push(_this.stringToFloat(element.getValue()));\n }\n });\n return result;\n };\n NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter\n && aSimple.filterTo === bSimple.filterTo\n && aSimple.type === bSimple.type;\n };\n NumberFilter.prototype.getFilterType = function () {\n return 'number';\n };\n NumberFilter.prototype.stringToFloat = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n var filterText = makeNull(value);\n if (filterText != null && filterText.trim() === '') {\n filterText = null;\n }\n if (this.numberFilterParams.numberParser) {\n return this.numberFilterParams.numberParser(filterText);\n }\n return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);\n };\n NumberFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {\n filterType: this.getFilterType(),\n type: type\n };\n var values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n NumberFilter.prototype.getInputs = function () {\n return [\n [this.eValueFrom1, this.eValueTo1],\n [this.eValueFrom2, this.eValueTo2],\n ];\n };\n NumberFilter.prototype.getAllowedCharPattern = function () {\n var allowedCharPattern = (this.numberFilterParams || {}).allowedCharPattern;\n if (allowedCharPattern) {\n return allowedCharPattern;\n }\n if (!isBrowserChrome() && !isBrowserEdge()) {\n // only Chrome and Edge support the HTML5 number field, so for other browsers we provide an equivalent\n // constraint instead\n return '\\\\d\\\\-\\\\.';\n }\n return null;\n };\n NumberFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.LESS_THAN_OR_EQUAL,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.GREATER_THAN_OR_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n __decorate$2c([\n RefSelector('eValue-index0-1')\n ], NumberFilter.prototype, \"eValueFrom1\", void 0);\n __decorate$2c([\n RefSelector('eValue-index1-1')\n ], NumberFilter.prototype, \"eValueTo1\", void 0);\n __decorate$2c([\n RefSelector('eValue-index0-2')\n ], NumberFilter.prototype, \"eValueFrom2\", void 0);\n __decorate$2c([\n RefSelector('eValue-index1-2')\n ], NumberFilter.prototype, \"eValueTo2\", void 0);\n return NumberFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar __decorate$2b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextFilter = /** @class */ (function (_super) {\n __extends$2x(TextFilter, _super);\n function TextFilter() {\n return _super.call(this, 'textFilter') || this;\n }\n TextFilter.trimInput = function (value) {\n var trimmedInput = value && value.trim();\n // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)\n return trimmedInput === '' ? value : trimmedInput;\n };\n TextFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.textFilterParams = params;\n this.matcher = this.getTextMatcher();\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n };\n TextFilter.prototype.getTextMatcher = function () {\n var legacyComparator = this.textFilterParams.textCustomComparator;\n if (legacyComparator) {\n _.doOnce(function () { return console.warn('AG Grid - textCustomComparator is deprecated, use textMatcher instead.'); }, 'textCustomComparator.deprecated');\n return function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n return legacyComparator(filterOption, value, filterText);\n };\n }\n return this.textFilterParams.textMatcher || TextFilter.DEFAULT_MATCHER;\n };\n TextFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {\n filterType: this.getFilterType(),\n type: type,\n };\n var values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n TextFilter.prototype.getFilterType = function () {\n return 'text';\n };\n TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter &&\n aSimple.filterTo === bSimple.filterTo &&\n aSimple.type === bSimple.type;\n };\n TextFilter.prototype.getInputs = function () {\n return [\n [this.eValueFrom1, this.eValueTo1],\n [this.eValueFrom2, this.eValueTo2],\n ];\n };\n TextFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n var value = makeNull(element.getValue());\n var cleanValue = (_this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value) || null;\n result.push(cleanValue);\n element.setValue(cleanValue, true); // ensure clean value is visible\n }\n });\n return result;\n };\n TextFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n \\n \\n
\";\n };\n TextFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n filter || null,\n filterTo || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n TextFilter.prototype.evaluateNullValue = function (filterType) {\n var filterTypesAllowNulls = [\n SimpleFilter.NOT_EQUAL, SimpleFilter.NOT_CONTAINS, SimpleFilter.BLANK,\n ];\n return filterType ? filterTypesAllowNulls.indexOf(filterType) >= 0 : false;\n };\n TextFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel, params) {\n var _this = this;\n var formattedValues = values.map(function (v) { return _this.formatter(v); }) || [];\n var cellValueFormatted = this.formatter(cellValue);\n var _a = this.textFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context, textFormatter = _a.textFormatter;\n if (filterModel.type === SimpleFilter.BLANK) {\n return this.isBlank(cellValue);\n }\n else if (filterModel.type === SimpleFilter.NOT_BLANK) {\n return !this.isBlank(cellValue);\n }\n var matcherParams = {\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n node: params.node,\n data: params.data,\n filterOption: filterModel.type,\n value: cellValueFormatted,\n textFormatter: textFormatter,\n };\n return formattedValues.some(function (v) { return _this.matcher(__assign$a(__assign$a({}, matcherParams), { filterText: v })); });\n };\n TextFilter.DEFAULT_FILTER_OPTIONS = [\n SimpleFilter.CONTAINS,\n SimpleFilter.NOT_CONTAINS,\n SimpleFilter.EQUALS,\n SimpleFilter.NOT_EQUAL,\n SimpleFilter.STARTS_WITH,\n SimpleFilter.ENDS_WITH,\n SimpleFilter.BLANK,\n SimpleFilter.NOT_BLANK,\n ];\n TextFilter.DEFAULT_FORMATTER = function (from) { return from; };\n TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };\n TextFilter.DEFAULT_MATCHER = function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n if (filterText == null) {\n return false;\n }\n switch (filterOption) {\n case TextFilter.CONTAINS:\n return value.indexOf(filterText) >= 0;\n case TextFilter.NOT_CONTAINS:\n return value.indexOf(filterText) < 0;\n case TextFilter.EQUALS:\n return value === filterText;\n case TextFilter.NOT_EQUAL:\n return value != filterText;\n case TextFilter.STARTS_WITH:\n return value.indexOf(filterText) === 0;\n case TextFilter.ENDS_WITH:\n var index = value.lastIndexOf(filterText);\n return index >= 0 && index === (value.length - filterText.length);\n default:\n return false;\n }\n };\n __decorate$2b([\n RefSelector('eValue-index0-1')\n ], TextFilter.prototype, \"eValueFrom1\", void 0);\n __decorate$2b([\n RefSelector('eValue-index1-1')\n ], TextFilter.prototype, \"eValueTo1\", void 0);\n __decorate$2b([\n RefSelector('eValue-index0-2')\n ], TextFilter.prototype, \"eValueFrom2\", void 0);\n __decorate$2b([\n RefSelector('eValue-index1-2')\n ], TextFilter.prototype, \"eValueTo2\", void 0);\n return TextFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextInputFloatingFilter = /** @class */ (function (_super) {\n __extends$2w(TextInputFloatingFilter, _super);\n function TextInputFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextInputFloatingFilter.prototype.postConstruct = function () {\n this.resetTemplate();\n };\n TextInputFloatingFilter.prototype.resetTemplate = function (paramsMap) {\n this.setTemplate(/* html */ \"\\n
\\n \\n
\\n \", paramsMap);\n };\n TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n if (this.isEventFromFloatingFilter(event)) {\n // if the floating filter triggered the change, it is already in sync\n return;\n }\n this.setLastTypeFromModel(model);\n this.eFloatingFilterInput.setValue(this.getTextFromModel(model));\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n };\n TextInputFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n var allowedCharPattern = this.params.filterParams.allowedCharPattern;\n if (allowedCharPattern != null) {\n this.resetTemplate({ eFloatingFilterInput: { allowedCharPattern: allowedCharPattern } });\n }\n if (!this.isReadOnly()) {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n var filterGui = this.eFloatingFilterInput.getGui();\n this.addManagedListener(filterGui, 'input', toDebounce);\n this.addManagedListener(filterGui, 'keypress', toDebounce);\n this.addManagedListener(filterGui, 'keydown', toDebounce);\n }\n var columnDef = params.column.getDefinition();\n if (this.isReadOnly() || (columnDef.filterParams &&\n columnDef.filterParams.filterOptions &&\n columnDef.filterParams.filterOptions.length === 1 &&\n columnDef.filterParams.filterOptions[0] === 'inRange')) {\n this.eFloatingFilterInput.setDisabled(true);\n }\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterInput.setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {\n var _this = this;\n var enterKeyPressed = e.key === KeyCode.ENTER;\n if (this.applyActive && !enterKeyPressed) {\n return;\n }\n var value = this.eFloatingFilterInput.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.eFloatingFilterInput.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, value || null);\n }\n });\n };\n TextInputFloatingFilter.prototype.conditionToString = function (condition, options) {\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return condition.filter + \"-\" + condition.filterTo;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return \"\" + condition.filter;\n }\n return \"\" + condition.type;\n };\n TextInputFloatingFilter.prototype.setEditable = function (editable) {\n this.eFloatingFilterInput.setDisabled(!editable);\n };\n __decorate$2a([\n Autowired('columnModel')\n ], TextInputFloatingFilter.prototype, \"columnModel\", void 0);\n __decorate$2a([\n RefSelector('eFloatingFilterInput')\n ], TextInputFloatingFilter.prototype, \"eFloatingFilterInput\", void 0);\n __decorate$2a([\n PostConstruct\n ], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n return TextInputFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberFloatingFilter = /** @class */ (function (_super) {\n __extends$2v(NumberFloatingFilter, _super);\n function NumberFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n return NumberFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TextFloatingFilter = /** @class */ (function (_super) {\n __extends$2u(TextFloatingFilter, _super);\n function TextFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n return TextFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar TouchListener = /** @class */ (function () {\n function TouchListener(eElement, preventMouseClick) {\n var _this = this;\n if (preventMouseClick === void 0) { preventMouseClick = false; }\n this.destroyFuncs = [];\n this.touching = false;\n this.eventService = new EventService();\n this.eElement = eElement;\n this.preventMouseClick = preventMouseClick;\n var startListener = this.onTouchStart.bind(this);\n var moveListener = this.onTouchMove.bind(this);\n var endListener = this.onTouchEnd.bind(this);\n this.eElement.addEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.addEventListener(\"touchmove\", moveListener, { passive: true });\n // we set passive=false, as we want to prevent default on this event\n this.eElement.addEventListener(\"touchend\", endListener, { passive: false });\n this.destroyFuncs.push(function () {\n _this.eElement.removeEventListener(\"touchstart\", startListener, { passive: true });\n _this.eElement.removeEventListener(\"touchmove\", moveListener, { passive: true });\n _this.eElement.removeEventListener(\"touchend\", endListener, { passive: false });\n });\n }\n TouchListener.prototype.getActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n var matches = touchList[i].identifier === this.touchStart.identifier;\n if (matches) {\n return touchList[i];\n }\n }\n return null;\n };\n TouchListener.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n TouchListener.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n TouchListener.prototype.onTouchStart = function (touchEvent) {\n var _this = this;\n // only looking at one touch point at any time\n if (this.touching) {\n return;\n }\n this.touchStart = touchEvent.touches[0];\n this.touching = true;\n this.moved = false;\n var touchStartCopy = this.touchStart;\n window.setTimeout(function () {\n var touchesMatch = _this.touchStart === touchStartCopy;\n if (_this.touching && touchesMatch && !_this.moved) {\n _this.moved = true;\n var event_1 = {\n type: TouchListener.EVENT_LONG_TAP,\n touchStart: _this.touchStart,\n touchEvent: touchEvent\n };\n _this.eventService.dispatchEvent(event_1);\n }\n }, 500);\n };\n TouchListener.prototype.onTouchMove = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n var touch = this.getActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n var eventIsFarAway = !areEventsNear(touch, this.touchStart, 4);\n if (eventIsFarAway) {\n this.moved = true;\n }\n };\n TouchListener.prototype.onTouchEnd = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n if (!this.moved) {\n var event_2 = {\n type: TouchListener.EVENT_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_2);\n this.checkForDoubleTap();\n }\n // stops the tap from also been processed as a mouse click\n if (this.preventMouseClick && touchEvent.cancelable) {\n touchEvent.preventDefault();\n }\n this.touching = false;\n };\n TouchListener.prototype.checkForDoubleTap = function () {\n var now = new Date().getTime();\n if (this.lastTapTime && this.lastTapTime > 0) {\n // if previous tap, see if duration is short enough to be considered double tap\n var interval = now - this.lastTapTime;\n if (interval > TouchListener.DOUBLE_TAP_MILLIS) {\n // dispatch double tap event\n var event_3 = {\n type: TouchListener.EVENT_DOUBLE_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_3);\n // this stops a tripple tap ending up as two double taps\n this.lastTapTime = null;\n }\n else {\n this.lastTapTime = now;\n }\n }\n else {\n this.lastTapTime = now;\n }\n };\n TouchListener.prototype.destroy = function () {\n this.destroyFuncs.forEach(function (func) { return func(); });\n };\n TouchListener.EVENT_TAP = \"tap\";\n TouchListener.EVENT_DOUBLE_TAP = \"doubleTap\";\n TouchListener.EVENT_LONG_TAP = \"longTap\";\n TouchListener.DOUBLE_TAP_MILLIS = 500;\n return TouchListener;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$29 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortIndicatorComp = /** @class */ (function (_super) {\n __extends$2t(SortIndicatorComp, _super);\n function SortIndicatorComp(skipTemplate) {\n var _this = _super.call(this) || this;\n if (!skipTemplate) {\n _this.setTemplate(SortIndicatorComp.TEMPLATE);\n }\n return _this;\n }\n SortIndicatorComp.prototype.attachCustomElements = function (eSortOrder, eSortAsc, eSortDesc, eSortMixed, eSortNone) {\n this.eSortOrder = eSortOrder;\n this.eSortAsc = eSortAsc;\n this.eSortDesc = eSortDesc;\n this.eSortMixed = eSortMixed;\n this.eSortNone = eSortNone;\n };\n SortIndicatorComp.prototype.setupSort = function (column, suppressOrder) {\n var _this = this;\n if (suppressOrder === void 0) { suppressOrder = false; }\n this.column = column;\n this.suppressOrder = suppressOrder;\n this.setupMultiSortIndicator();\n var canSort = !!this.column.getColDef().sortable;\n if (!canSort) {\n return;\n }\n this.addInIcon('sortAscending', this.eSortAsc, column);\n this.addInIcon('sortDescending', this.eSortDesc, column);\n this.addInIcon('sortUnSort', this.eSortNone, column);\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, function () { return _this.onSortChanged(); });\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.onSortChanged(); });\n this.onSortChanged();\n };\n SortIndicatorComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n SortIndicatorComp.prototype.onSortChanged = function () {\n this.updateIcons();\n if (!this.suppressOrder) {\n this.updateSortOrder();\n }\n };\n SortIndicatorComp.prototype.updateIcons = function () {\n var sortDirection = this.sortController.getDisplaySortForColumn(this.column);\n if (this.eSortAsc) {\n var isAscending = sortDirection === 'asc';\n this.eSortAsc.classList.toggle('ag-hidden', !isAscending);\n }\n if (this.eSortDesc) {\n var isDescending = sortDirection === 'desc';\n this.eSortDesc.classList.toggle('ag-hidden', !isDescending);\n }\n if (this.eSortNone) {\n var alwaysHideNoSort = !this.column.getColDef().unSortIcon && !this.gridOptionsWrapper.isUnSortIcon();\n var isNone = sortDirection === null || sortDirection === undefined;\n this.eSortNone.classList.toggle('ag-hidden', (alwaysHideNoSort || !isNone));\n }\n };\n SortIndicatorComp.prototype.setupMultiSortIndicator = function () {\n var _this = this;\n this.addInIcon('sortUnSort', this.eSortMixed, this.column);\n var isColumnShowingRowGroup = this.column.getColDef().showRowGroup;\n var areGroupsCoupled = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n if (areGroupsCoupled && isColumnShowingRowGroup) {\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, function () { return _this.updateMultiSortIndicator(); });\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.updateMultiSortIndicator(); });\n this.updateMultiSortIndicator();\n }\n };\n SortIndicatorComp.prototype.updateMultiSortIndicator = function () {\n if (this.eSortMixed) {\n var isMixedSort = this.sortController.getDisplaySortForColumn(this.column) === 'mixed';\n this.eSortMixed.classList.toggle('ag-hidden', !isMixedSort);\n }\n };\n // we listen here for global sort events, NOT column sort events, as we want to do this\n // when sorting has been set on all column (if we listened just for our col (where we\n // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.\n SortIndicatorComp.prototype.updateSortOrder = function () {\n var _this = this;\n var _a;\n if (!this.eSortOrder) {\n return;\n }\n var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();\n var indexThisCol = (_a = this.sortController.getDisplaySortIndexForColumn(this.column), (_a !== null && _a !== void 0 ? _a : -1));\n var moreThanOneColSorting = allColumnsWithSorting.some(function (col) { var _a; return _a = _this.sortController.getDisplaySortIndexForColumn(col), (_a !== null && _a !== void 0 ? _a : -1 >= 1); });\n var showIndex = indexThisCol >= 0 && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex);\n if (indexThisCol >= 0) {\n this.eSortOrder.innerHTML = (indexThisCol + 1).toString();\n }\n else {\n clearElement(this.eSortOrder);\n }\n };\n SortIndicatorComp.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$29([\n RefSelector('eSortOrder')\n ], SortIndicatorComp.prototype, \"eSortOrder\", void 0);\n __decorate$29([\n RefSelector('eSortAsc')\n ], SortIndicatorComp.prototype, \"eSortAsc\", void 0);\n __decorate$29([\n RefSelector('eSortDesc')\n ], SortIndicatorComp.prototype, \"eSortDesc\", void 0);\n __decorate$29([\n RefSelector('eSortMixed')\n ], SortIndicatorComp.prototype, \"eSortMixed\", void 0);\n __decorate$29([\n RefSelector('eSortNone')\n ], SortIndicatorComp.prototype, \"eSortNone\", void 0);\n __decorate$29([\n Autowired('columnModel')\n ], SortIndicatorComp.prototype, \"columnModel\", void 0);\n __decorate$29([\n Autowired('sortController')\n ], SortIndicatorComp.prototype, \"sortController\", void 0);\n return SortIndicatorComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$28 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderComp = /** @class */ (function (_super) {\n __extends$2s(HeaderComp, _super);\n function HeaderComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastMovingChanged = 0;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderComp.prototype.refresh = function (params) {\n this.params = params;\n // if template changed, then recreate the whole comp, the code required to manage\n // a changing template is to difficult for what it's worth.\n if (this.workOutTemplate() != this.currentTemplate) {\n return false;\n }\n if (this.workOutShowMenu() != this.currentShowMenu) {\n return false;\n }\n if (this.workOutSort() != this.currentSort) {\n return false;\n }\n this.setDisplayName(params);\n return true;\n };\n HeaderComp.prototype.workOutTemplate = function () {\n var template = firstExistingValue(this.params.template, HeaderComp.TEMPLATE);\n // take account of any newlines & whitespace before/after the actual template\n template = template && template.trim ? template.trim() : template;\n return template;\n };\n HeaderComp.prototype.init = function (params) {\n this.params = params;\n this.currentTemplate = this.workOutTemplate();\n this.setTemplate(this.currentTemplate);\n this.setupTap();\n this.setupIcons(params.column);\n this.setMenu();\n this.setupSort();\n this.setupFilterIcon();\n this.setDisplayName(params);\n };\n HeaderComp.prototype.setDisplayName = function (params) {\n if (this.currentDisplayName != params.displayName) {\n this.currentDisplayName = params.displayName;\n var displayNameSanitised = escapeString(this.currentDisplayName);\n if (this.eText) {\n this.eText.innerHTML = displayNameSanitised;\n }\n }\n };\n HeaderComp.prototype.setupIcons = function (column) {\n this.addInIcon('menu', this.eMenu, column);\n this.addInIcon('filter', this.eFilter, column);\n };\n HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n HeaderComp.prototype.setupTap = function () {\n var _this = this;\n var options = this.gridOptionsWrapper;\n if (options.isSuppressTouch()) {\n return;\n }\n var touchListener = new TouchListener(this.getGui(), true);\n var suppressMenuHide = options.isSuppressMenuHide();\n var tapMenuButton = suppressMenuHide && exists(this.eMenu);\n var menuTouchListener = tapMenuButton ? new TouchListener(this.eMenu, true) : touchListener;\n if (this.params.enableMenu) {\n var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';\n var showMenuFn = function (event) {\n options.getApi().showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);\n };\n this.addManagedListener(menuTouchListener, TouchListener[eventType], showMenuFn);\n }\n if (this.params.enableSorting) {\n var tapListener = function (event) {\n var target = event.touchStart.target;\n // When suppressMenuHide is true, a tap on the menu icon will bubble up\n // to the header container, in that case we should not sort\n if (suppressMenuHide && _this.eMenu.contains(target)) {\n return;\n }\n _this.sortController.progressSort(_this.params.column, false, \"uiColumnSorted\");\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, tapListener);\n }\n // if tapMenuButton is true `touchListener` and `menuTouchListener` are different\n // so we need to make sure to destroy both listeners here\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n if (tapMenuButton) {\n this.addDestroyFunc(function () { return menuTouchListener.destroy(); });\n }\n };\n HeaderComp.prototype.workOutShowMenu = function () {\n // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/\n // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok\n // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide\n // is false (default) user will need to use longpress to display the menu.\n var menuHides = !this.gridOptionsWrapper.isSuppressMenuHide();\n var onIpadAndMenuHides = isIOSUserAgent() && menuHides;\n var showMenu = this.params.enableMenu && !onIpadAndMenuHides;\n return showMenu;\n };\n HeaderComp.prototype.setMenu = function () {\n var _this = this;\n // if no menu provided in template, do nothing\n if (!this.eMenu) {\n return;\n }\n this.currentShowMenu = this.workOutShowMenu();\n if (!this.currentShowMenu) {\n removeFromParent(this.eMenu);\n return;\n }\n var suppressMenuHide = this.gridOptionsWrapper.isSuppressMenuHide();\n this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });\n this.eMenu.classList.toggle('ag-header-menu-always-show', suppressMenuHide);\n };\n HeaderComp.prototype.showMenu = function (eventSource) {\n if (!eventSource) {\n eventSource = this.eMenu;\n }\n this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource, 'columnMenu');\n };\n HeaderComp.prototype.workOutSort = function () {\n return this.params.enableSorting;\n };\n HeaderComp.prototype.setupSort = function () {\n var _this = this;\n this.currentSort = this.params.enableSorting;\n // eSortIndicator will not be present when customers provided custom header\n // templates, in that case, we need to look for provided sort elements and\n // manually create eSortIndicator.\n if (!this.eSortIndicator) {\n this.eSortIndicator = this.context.createBean(new SortIndicatorComp(true));\n this.eSortIndicator.attachCustomElements(this.eSortOrder, this.eSortAsc, this.eSortDesc, this.eSortMixed, this.eSortNone);\n }\n this.eSortIndicator.setupSort(this.params.column);\n // we set up the indicator prior to the check for whether this column is sortable, as it allows the indicator to\n // set up the multi sort indicator which can appear irrelevant of whether this column can itself be sorted.\n // this can occur in the case of a non-sortable group display column.\n if (!this.currentSort) {\n return;\n }\n var sortUsingCtrl = this.gridOptionsWrapper.isMultiSortKeyCtrl();\n // keep track of last time the moving changed flag was set\n this.addManagedListener(this.params.column, Column.EVENT_MOVING_CHANGED, function () {\n _this.lastMovingChanged = new Date().getTime();\n });\n // add the event on the header, so when clicked, we do sorting\n if (this.eLabel) {\n this.addManagedListener(this.eLabel, 'click', function (event) {\n // sometimes when moving a column via dragging, this was also firing a clicked event.\n // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076\n // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)\n var moving = _this.params.column.isMoving();\n var nowTime = new Date().getTime();\n // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn\n var movedRecently = (nowTime - _this.lastMovingChanged) < 50;\n var columnMoving = moving || movedRecently;\n if (!columnMoving) {\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.params.progressSort(multiSort);\n }\n });\n }\n var onSortingChanged = function () {\n var _a;\n _this.addOrRemoveCssClass('ag-header-cell-sorted-asc', _this.params.column.isSortAscending());\n _this.addOrRemoveCssClass('ag-header-cell-sorted-desc', _this.params.column.isSortDescending());\n _this.addOrRemoveCssClass('ag-header-cell-sorted-none', _this.params.column.isSortNone());\n if (_this.params.column.getColDef().showRowGroup) {\n var sourceColumns = _this.columnModel.getSourceColumnsForGroupColumn(_this.params.column);\n // this == is intentional, as it allows null and undefined to match, which are both unsorted states\n var sortDirectionsMatch = (_a = sourceColumns) === null || _a === void 0 ? void 0 : _a.every(function (sourceCol) { return _this.params.column.getSort() == sourceCol.getSort(); });\n var isMultiSorting = !sortDirectionsMatch;\n _this.addOrRemoveCssClass('ag-header-cell-sorted-mixed', isMultiSorting);\n }\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, onSortingChanged);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, onSortingChanged);\n };\n HeaderComp.prototype.setupFilterIcon = function () {\n if (!this.eFilter) {\n return;\n }\n this.addManagedListener(this.params.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.onFilterChanged();\n };\n HeaderComp.prototype.onFilterChanged = function () {\n var filterPresent = this.params.column.isFilterActive();\n this.eFilter.classList.toggle('ag-hidden', !filterPresent);\n };\n HeaderComp.TEMPLATE = \"
\\n \\n
\\n \\n \\n \\n
\\n
\";\n __decorate$28([\n Autowired('sortController')\n ], HeaderComp.prototype, \"sortController\", void 0);\n __decorate$28([\n Autowired('menuFactory')\n ], HeaderComp.prototype, \"menuFactory\", void 0);\n __decorate$28([\n Autowired('columnModel')\n ], HeaderComp.prototype, \"columnModel\", void 0);\n __decorate$28([\n RefSelector('eFilter')\n ], HeaderComp.prototype, \"eFilter\", void 0);\n __decorate$28([\n RefSelector('eSortIndicator')\n ], HeaderComp.prototype, \"eSortIndicator\", void 0);\n __decorate$28([\n RefSelector('eMenu')\n ], HeaderComp.prototype, \"eMenu\", void 0);\n __decorate$28([\n RefSelector('eLabel')\n ], HeaderComp.prototype, \"eLabel\", void 0);\n __decorate$28([\n RefSelector('eText')\n ], HeaderComp.prototype, \"eText\", void 0);\n __decorate$28([\n RefSelector('eSortOrder')\n ], HeaderComp.prototype, \"eSortOrder\", void 0);\n __decorate$28([\n RefSelector('eSortAsc')\n ], HeaderComp.prototype, \"eSortAsc\", void 0);\n __decorate$28([\n RefSelector('eSortDesc')\n ], HeaderComp.prototype, \"eSortDesc\", void 0);\n __decorate$28([\n RefSelector('eSortMixed')\n ], HeaderComp.prototype, \"eSortMixed\", void 0);\n __decorate$28([\n RefSelector('eSortNone')\n ], HeaderComp.prototype, \"eSortNone\", void 0);\n return HeaderComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$27 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupComp = /** @class */ (function (_super) {\n __extends$2r(HeaderGroupComp, _super);\n function HeaderGroupComp() {\n return _super.call(this, HeaderGroupComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderGroupComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderGroupComp.prototype.init = function (params) {\n this.params = params;\n this.checkWarnings();\n this.setupLabel();\n this.addGroupExpandIcon();\n this.setupExpandIcons();\n };\n HeaderGroupComp.prototype.checkWarnings = function () {\n var paramsAny = this.params;\n if (paramsAny.template) {\n var message_1 = \"AG Grid: A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)\";\n doOnce(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');\n }\n };\n HeaderGroupComp.prototype.setupExpandIcons = function () {\n var _this = this;\n this.addInIcon(\"columnGroupOpened\", \"agOpened\");\n this.addInIcon(\"columnGroupClosed\", \"agClosed\");\n var expandAction = function (event) {\n if (isStopPropagationForAgGrid(event)) {\n return;\n }\n var newExpandedValue = !_this.params.columnGroup.isExpanded();\n _this.columnModel.setColumnGroupOpened(_this.params.columnGroup.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n };\n this.addTouchAndClickListeners(this.eCloseIcon, expandAction);\n this.addTouchAndClickListeners(this.eOpenIcon, expandAction);\n var stopPropagationAction = function (event) {\n stopPropagationForAgGrid(event);\n };\n // adding stopPropagation to the double click for the icons prevents double click action happening\n // when the icons are clicked. if the icons are double clicked, then the groups should open and\n // then close again straight away. if we also listened to double click, then the group would open,\n // close, then open, which is not what we want. double click should only action if the user double\n // clicks outside of the icons.\n this.addManagedListener(this.eCloseIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.eOpenIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.getGui(), \"dblclick\", expandAction);\n this.updateIconVisibility();\n var providedColumnGroup = this.params.columnGroup.getProvidedColumnGroup();\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));\n };\n HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {\n var touchListener = new TouchListener(eElement, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, action);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n this.addManagedListener(eElement, \"click\", action);\n };\n HeaderGroupComp.prototype.updateIconVisibility = function () {\n var columnGroup = this.params.columnGroup;\n if (columnGroup.isExpandable()) {\n var expanded = this.params.columnGroup.isExpanded();\n setDisplayed(this.eOpenIcon, expanded);\n setDisplayed(this.eCloseIcon, !expanded);\n }\n else {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n }\n };\n HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, null);\n if (eIcon) {\n this.getRefElement(refName).appendChild(eIcon);\n }\n };\n HeaderGroupComp.prototype.addGroupExpandIcon = function () {\n if (!this.params.columnGroup.isExpandable()) {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n return;\n }\n };\n HeaderGroupComp.prototype.setupLabel = function () {\n // no renderer, default text render\n var displayName = this.params.displayName;\n if (exists(displayName)) {\n var displayNameSanitised = escapeString(displayName);\n this.getRefElement('agLabel').innerHTML = displayNameSanitised;\n }\n };\n HeaderGroupComp.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$27([\n Autowired(\"columnModel\")\n ], HeaderGroupComp.prototype, \"columnModel\", void 0);\n __decorate$27([\n RefSelector(\"agOpened\")\n ], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n __decorate$27([\n RefSelector(\"agClosed\")\n ], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n return HeaderGroupComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupComponent = /** @class */ (function (_super) {\n __extends$2q(PopupComponent, _super);\n function PopupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupComponent.prototype.isPopup = function () {\n return true;\n };\n PopupComponent.prototype.setParentComponent = function (container) {\n container.addCssClass('ag-has-popup');\n _super.prototype.setParentComponent.call(this, container);\n };\n PopupComponent.prototype.destroy = function () {\n var parentComp = this.parentComponent;\n var hasParent = parentComp && parentComp.isAlive();\n if (hasParent) {\n parentComp.getGui().classList.remove('ag-has-popup');\n }\n _super.prototype.destroy.call(this);\n };\n return PopupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$26 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LargeTextCellEditor = /** @class */ (function (_super) {\n __extends$2p(LargeTextCellEditor, _super);\n function LargeTextCellEditor() {\n return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;\n }\n LargeTextCellEditor.prototype.init = function (params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.eTextArea\n .setMaxLength(params.maxLength || 200)\n .setCols(params.cols || 60)\n .setRows(params.rows || 10);\n if (exists(params.value)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n };\n LargeTextCellEditor.prototype.onKeyDown = function (event) {\n var key = event.key;\n if (key === KeyCode.LEFT ||\n key === KeyCode.UP ||\n key === KeyCode.RIGHT ||\n key === KeyCode.DOWN ||\n (event.shiftKey && key === KeyCode.ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n };\n LargeTextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (this.focusAfterAttached) {\n this.eTextArea.getFocusableElement().focus();\n }\n };\n LargeTextCellEditor.prototype.getValue = function () {\n return this.params.parseValue(this.eTextArea.getValue());\n };\n LargeTextCellEditor.TEMPLATE = \"
\\n \\n
\";\n __decorate$26([\n RefSelector(\"eTextArea\")\n ], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n return LargeTextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$25 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectCellEditor = /** @class */ (function (_super) {\n __extends$2o(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, '
') || this;\n _this.startedByEnter = false;\n return _this;\n }\n SelectCellEditor.prototype.init = function (params) {\n var _this = this;\n this.focusAfterAttached = params.cellStartedEdit;\n if (missing(params.values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = params.eventKey != null ? params.eventKey === KeyCode.ENTER : false;\n var hasValue = false;\n params.values.forEach(function (value) {\n var option = { value: value };\n var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, value);\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : value;\n _this.eSelect.addOption(option);\n hasValue = hasValue || params.value === value;\n });\n if (hasValue) {\n this.eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n this.eSelect.setValue(params.values[0], true);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n this.eSelect.onValueChange(function () { return params.stopEditing(); });\n }\n };\n SelectCellEditor.prototype.afterGuiAttached = function () {\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n this.eSelect.showPicker();\n }\n };\n SelectCellEditor.prototype.focusIn = function () {\n this.eSelect.getFocusableElement().focus();\n };\n SelectCellEditor.prototype.getValue = function () {\n return this.eSelect.getValue();\n };\n SelectCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$25([\n Autowired('valueFormatterService')\n ], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n __decorate$25([\n RefSelector('eSelect')\n ], SelectCellEditor.prototype, \"eSelect\", void 0);\n return SelectCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupSelectCellEditor = /** @class */ (function (_super) {\n __extends$2n(PopupSelectCellEditor, _super);\n function PopupSelectCellEditor() {\n var _this = _super.call(this) || this;\n doOnce(function () { return console.warn('AG Grid: The PopupSelectCellEditor (agPopupSelectCellEditor) is deprecated. Instead use {cellEditor: \"agSelectCellEditor\", cellEditorPopup: true} '); }, 'PopupSelectCellEditor.deprecated');\n return _this;\n }\n PopupSelectCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupSelectCellEditor;\n}(SelectCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$24 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextCellEditor = /** @class */ (function (_super) {\n __extends$2m(TextCellEditor, _super);\n function TextCellEditor() {\n return _super.call(this, TextCellEditor.TEMPLATE) || this;\n }\n TextCellEditor.prototype.init = function (params) {\n this.params = params;\n var eInput = this.eInput;\n var startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n if (params.eventKey === KeyCode.BACKSPACE || params.eventKey === KeyCode.DELETE) {\n startValue = '';\n }\n else if (params.charPress) {\n startValue = params.charPress;\n }\n else {\n startValue = this.getStartValue(params);\n if (params.eventKey !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.getStartValue(params);\n }\n if (startValue != null) {\n eInput.setValue(startValue, true);\n }\n if (params.maxLength != null) {\n eInput.setMaxLength(params.maxLength);\n }\n this.addManagedListener(eInput.getGui(), 'keydown', function (event) {\n var key = event.key;\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n event.preventDefault();\n }\n });\n };\n TextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var eInput = this.eInput;\n eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (!this.focusAfterAttached) {\n return;\n }\n // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input\n // to be focused before setSelectionRange will work. But it triggers a bug in Safari where\n // explicitly focusing then blurring an empty field will cause the parent container to scroll.\n if (!isBrowserSafari()) {\n eInput.getFocusableElement().focus();\n }\n var inputEl = eInput.getInputElement();\n if (this.highlightAllOnFocus) {\n inputEl.select();\n }\n else {\n // when we started editing, we want the caret at the end, not the start.\n // this comes into play in two scenarios:\n // a) when user hits F2\n // b) when user hits a printable character\n var value = eInput.getValue();\n var len = (exists(value) && value.length) || 0;\n if (len) {\n inputEl.setSelectionRange(len, len);\n }\n }\n };\n // gets called when tabbing trough cells and in full row edit mode\n TextCellEditor.prototype.focusIn = function () {\n var eInput = this.eInput;\n var focusEl = eInput.getFocusableElement();\n var inputEl = eInput.getInputElement();\n focusEl.focus();\n inputEl.select();\n };\n TextCellEditor.prototype.getValue = function () {\n var eInput = this.eInput;\n return this.params.parseValue(eInput.getValue());\n };\n TextCellEditor.prototype.getStartValue = function (params) {\n var formatValue = params.useFormatter || params.column.getColDef().refData;\n return formatValue ? params.formatValue(params.value) : params.value;\n };\n TextCellEditor.prototype.isPopup = function () {\n return false;\n };\n TextCellEditor.TEMPLATE = \"
\\n \\n
\";\n __decorate$24([\n RefSelector('eInput')\n ], TextCellEditor.prototype, \"eInput\", void 0);\n return TextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupTextCellEditor = /** @class */ (function (_super) {\n __extends$2l(PopupTextCellEditor, _super);\n function PopupTextCellEditor() {\n var _this = _super.call(this) || this;\n doOnce(function () { return console.warn('AG Grid: The PopupTextCellEditor (agPopupTextCellEditor) is deprecated. Instead use {cellEditor: \"agTextCellEditor\", cellEditorPopup: true} '); }, 'PopupTextCellEditor.deprecated');\n return _this;\n }\n PopupTextCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupTextCellEditor;\n}(TextCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$23 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends$2k(AnimateShowChangeCellRenderer, _super);\n function AnimateShowChangeCellRenderer() {\n var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n return _this;\n }\n AnimateShowChangeCellRenderer.prototype.init = function (params) {\n // this.params = params;\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params);\n };\n AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {\n var absDelta = Math.abs(delta);\n var valueFormatted = params.formatValue(absDelta);\n var valueToUse = exists(valueFormatted) ? valueFormatted : absDelta;\n var deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.innerHTML = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.innerHTML = ARROW_DOWN + valueToUse;\n }\n this.eDelta.classList.toggle('ag-value-change-delta-up', deltaUp);\n this.eDelta.classList.toggle('ag-value-change-delta-down', !deltaUp);\n };\n AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {\n var _this = this;\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n var refreshCountCopy = this.refreshCount;\n window.setTimeout(function () {\n if (refreshCountCopy === _this.refreshCount) {\n _this.hideDeltaValue();\n }\n }, 2000);\n };\n AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {\n this.eValue.classList.remove('ag-value-change-value-highlight');\n clearElement(this.eDelta);\n };\n AnimateShowChangeCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (value === this.lastValue) {\n return false;\n }\n if (exists(params.valueFormatted)) {\n this.eValue.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eValue.innerHTML = value;\n }\n else {\n clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n var delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n this.eValue.classList.add('ag-value-change-value-highlight');\n }\n this.setTimerToRemoveDelta();\n this.lastValue = value;\n return true;\n };\n AnimateShowChangeCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '';\n __decorate$23([\n Autowired('filterManager')\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$22 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends$2j(AnimateSlideCellRenderer, _super);\n function AnimateSlideCellRenderer() {\n var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');\n return _this;\n }\n AnimateSlideCellRenderer.prototype.init = function (params) {\n this.refresh(params);\n };\n AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {\n var _this = this;\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n var refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n this.ePrevious = loadTemplate('');\n this.ePrevious.innerHTML = this.eCurrent.innerHTML;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.ePrevious.classList.add('ag-value-slide-out-end');\n }, 50);\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.getGui().removeChild(_this.ePrevious);\n _this.ePrevious = null;\n }, 3000);\n };\n AnimateSlideCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return false;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n this.addSlideAnimation();\n this.lastValue = value;\n if (exists(params.valueFormatted)) {\n this.eCurrent.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eCurrent.innerHTML = value;\n }\n else {\n clearElement(this.eCurrent);\n }\n return true;\n };\n AnimateSlideCellRenderer.TEMPLATE = \"\\n \\n \";\n __decorate$22([\n Autowired('filterManager')\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar RowHighlightPosition;\n(function (RowHighlightPosition) {\n RowHighlightPosition[RowHighlightPosition[\"Above\"] = 0] = \"Above\";\n RowHighlightPosition[RowHighlightPosition[\"Below\"] = 1] = \"Below\";\n})(RowHighlightPosition || (RowHighlightPosition = {}));\nvar RowNode = /** @class */ (function () {\n function RowNode(beans) {\n /** The current row index. If the row is filtered out or in a collapsed group, this value will be `null`. */\n this.rowIndex = null;\n /** The key for the group eg Ireland, UK, USA */\n this.key = null;\n /** Children mapped by the pivot columns. */\n this.childrenMapped = {};\n /**\n * This will be `true` if it has a rowIndex assigned, otherwise `false`.\n */\n this.displayed = false;\n /** The row top position in pixels. */\n this.rowTop = null;\n /** The top pixel for this row last time, makes sense if data set was ordered or filtered,\n * it is used so new rows can animate in from their old position. */\n this.oldRowTop = null;\n /** `true` by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** When one or more Columns are using autoHeight, this keeps track of height of each autoHeight Cell,\n * indexed by the Column ID. */\n this.__autoHeights = {};\n /** `true` when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.highlighted = null;\n this.selected = false;\n this.beans = beans;\n }\n /** Replaces the data on the `rowNode`. When complete, the grid will refresh the the entire rendered row if it is showing. */\n RowNode.prototype.setData = function (data) {\n this.setDataCommon(data, false);\n };\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n RowNode.prototype.updateData = function (data) {\n this.setDataCommon(data, true);\n };\n RowNode.prototype.setDataCommon = function (data, update) {\n var oldData = this.data;\n this.data = data;\n this.beans.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, update);\n this.dispatchLocalEvent(event);\n };\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n RowNode.prototype.updateDataOnDetailNode = function () {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n };\n RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n };\n RowNode.prototype.createLocalRowEvent = function (type) {\n return {\n type: type,\n node: this\n };\n };\n RowNode.prototype.getRowIndexString = function () {\n if (this.rowPinned === Constants.PINNED_TOP) {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === Constants.PINNED_BOTTOM) {\n return 'b-' + this.rowIndex;\n }\n return this.rowIndex.toString();\n };\n RowNode.prototype.createDaemonNode = function () {\n var oldNode = new RowNode(this.beans);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n };\n RowNode.prototype.setDataAndId = function (data, id) {\n var oldNode = exists(this.id) ? this.createDaemonNode() : null;\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.beans.selectionService.syncInRowNode(this, oldNode);\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.beans.gridOptionsWrapper.getIsRowSelectableFunc();\n this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);\n };\n RowNode.prototype.setRowSelectable = function (newVal) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n var isGroupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n if (isGroupSelectsChildren) {\n var selected = this.calculateSelectedFromChildren();\n this.setSelected((selected !== null && selected !== void 0 ? selected : false));\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowIdFunc = this.beans.gridOptionsWrapper.getRowIdFunc();\n if (getRowIdFunc) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n // we pass 'true' as we skip this level when generating keys,\n // as we don't always have the key for this level (eg when updating\n // data via transaction on SSRM, we are getting key to look up the\n // RowNode, don't have the RowNode yet, thus no way to get the current key)\n var parentKeys = this.getGroupKeys(true);\n this.id = getRowIdFunc({\n data: this.data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: this.level\n });\n // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that\n // it has 'startsWith' in case the user provided a number.\n if (this.id !== null && typeof this.id === 'string' && this.id.startsWith(RowNode.ID_PREFIX_ROW_GROUP)) {\n console.error(\"AG Grid: Row IDs cannot start with \" + RowNode.ID_PREFIX_ROW_GROUP + \", this is a reserved prefix for AG Grid's row grouping feature.\");\n }\n // force id to be a string\n if (this.id !== null && typeof this.id !== 'string') {\n this.id = '' + this.id;\n }\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n };\n RowNode.prototype.getGroupKeys = function (excludeSelf) {\n if (excludeSelf === void 0) { excludeSelf = false; }\n var keys = [];\n var pointer = this;\n if (excludeSelf) {\n pointer = pointer.parent;\n }\n while (pointer && pointer.level >= 0) {\n keys.push(pointer.key);\n pointer = pointer.parent;\n }\n keys.reverse();\n return keys;\n };\n RowNode.prototype.isPixelInRange = function (pixel) {\n if (!exists(this.rowTop) || !exists(this.rowHeight)) {\n return false;\n }\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n };\n RowNode.prototype.setFirstChild = function (firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setLastChild = function (lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setChildIndex = function (childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setRowTop = function (rowTop) {\n this.oldRowTop = this.rowTop;\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n this.setDisplayed(rowTop !== null);\n };\n RowNode.prototype.clearRowTopAndRowIndex = function () {\n this.oldRowTop = null;\n this.setRowTop(null);\n this.setRowIndex(null);\n };\n RowNode.prototype.setDisplayed = function (displayed) {\n if (this.displayed === displayed) {\n return;\n }\n this.displayed = displayed;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));\n }\n };\n RowNode.prototype.setDragging = function (dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n };\n RowNode.prototype.setHighlighted = function (highlighted) {\n if (highlighted === this.highlighted) {\n return;\n }\n this.highlighted = highlighted;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));\n }\n };\n RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n };\n RowNode.prototype.setMaster = function (master) {\n if (this.master === master) {\n return;\n }\n // if changing AWAY from master, then unexpand, otherwise\n // next time it's shown it is expanded again\n if (this.master && !master) {\n this.expanded = false;\n }\n this.master = master;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));\n }\n };\n RowNode.prototype.setGroup = function (group) {\n if (this.group === group) {\n return;\n }\n // if we used to be a group, and no longer, then close the node\n if (this.group && !group) {\n this.expanded = false;\n }\n this.group = group;\n this.updateHasChildren();\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_GROUP_CHANGED));\n }\n };\n /**\n * Sets the row height.\n * Call if you want to change the height initially assigned to the row.\n * After calling, you must call `api.onRowHeightChanged()` so the grid knows it needs to work out the placement of the rows. */\n RowNode.prototype.setRowHeight = function (rowHeight, estimated) {\n if (estimated === void 0) { estimated = false; }\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n };\n RowNode.prototype.setRowAutoHeight = function (cellHeight, column) {\n if (!this.__autoHeights) {\n this.__autoHeights = {};\n }\n var autoHeights = this.__autoHeights;\n autoHeights[column.getId()] = cellHeight;\n if (cellHeight != null) {\n if (this.checkAutoHeightsDebounced == null) {\n this.checkAutoHeightsDebounced = debounce(this.checkAutoHeights.bind(this), 1);\n }\n this.checkAutoHeightsDebounced();\n }\n };\n RowNode.prototype.checkAutoHeights = function () {\n var notAllPresent = false;\n var nonePresent = true;\n var newRowHeight = 0;\n var autoHeights = this.__autoHeights;\n if (autoHeights == null) {\n return;\n }\n var displayedAutoHeightCols = this.beans.columnModel.getAllDisplayedAutoHeightCols();\n displayedAutoHeightCols.forEach(function (col) {\n var cellHeight = autoHeights[col.getId()];\n if (cellHeight == null) {\n notAllPresent = true;\n return;\n }\n nonePresent = false;\n if (cellHeight > newRowHeight) {\n newRowHeight = cellHeight;\n }\n });\n if (notAllPresent) {\n return;\n }\n // we take min of 10, so we don't adjust for empty rows. if <10, we put to default.\n // this prevents the row starting very small when waiting for async components,\n // which would then mean the grid squashes in far to many rows (as small heights\n // means more rows fit in) which looks crap. so best ignore small values and assume\n // we are still waiting for values to render.\n if (nonePresent || newRowHeight < 10) {\n newRowHeight = this.beans.gridOptionsWrapper.getRowHeightForNode(this).height;\n }\n if (newRowHeight == this.rowHeight) {\n return;\n }\n this.setRowHeight(newRowHeight);\n var rowModel = this.beans.rowModel;\n if (rowModel.onRowHeightChangedDebounced) {\n rowModel.onRowHeightChangedDebounced();\n }\n };\n RowNode.prototype.setRowIndex = function (rowIndex) {\n if (this.rowIndex === rowIndex) {\n return;\n }\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setUiLevel = function (uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n };\n /**\n * Set the expanded state of this rowNode. Pass `true` to expand and `false` to collapse.\n */\n RowNode.prototype.setExpanded = function (expanded, e) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n var event = Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_GROUP_OPENED), {\n expanded: expanded,\n event: e || null\n });\n this.beans.rowNodeEventThrottle.dispatchExpanded(event);\n // when using footers we need to refresh the group row, as the aggregation\n // values jump between group and footer\n if (this.beans.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.beans.rowRenderer.refreshCells({ rowNodes: [this] });\n }\n };\n RowNode.prototype.createGlobalRowEvent = function (type) {\n return {\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi()\n };\n };\n RowNode.prototype.dispatchLocalEvent = function (event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n };\n /**\n * Replaces the value on the `rowNode` for the specified column. When complete,\n * the grid will refresh the rendered cell on the required row only.\n *\n * @param colKey The column where the value should be updated\n * @param newValue The new value\n * @param eventSource The source of the event\n * @returns `True` if the value was changed, otherwise `False`.\n */\n RowNode.prototype.setDataValue = function (colKey, newValue, eventSource) {\n // When it is done via the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n var column = this.beans.columnModel.getPrimaryColumn(colKey);\n var oldValue = this.beans.valueService.getValue(column, this);\n var valueChanged = this.beans.valueService.setValue(this, column, newValue, eventSource);\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n this.checkRowSelectable();\n return valueChanged;\n };\n RowNode.prototype.setGroupValue = function (colKey, newValue) {\n var column = this.beans.columnModel.getGridColumn(colKey);\n if (missing(this.groupData)) {\n this.groupData = {};\n }\n var columnId = column.getColId();\n var oldValue = this.groupData[columnId];\n if (oldValue === newValue) {\n return;\n }\n this.groupData[columnId] = newValue;\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n };\n // sets the data for an aggregation\n RowNode.prototype.setAggData = function (newAggData) {\n var _this = this;\n // find out all keys that could potentially change\n var colIds = getAllKeysInObjects([this.aggData, newAggData]);\n var oldAggData = this.aggData;\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n colIds.forEach(function (colId) {\n var column = _this.beans.columnModel.getGridColumn(colId);\n var value = _this.aggData ? _this.aggData[colId] : undefined;\n var oldValue = oldAggData ? oldAggData[colId] : undefined;\n _this.dispatchCellChangedEvent(column, value, oldValue);\n });\n }\n };\n RowNode.prototype.updateHasChildren = function () {\n // we need to return true when this.group=true, as this is used by server side row model\n // (as children are lazy loaded and stored in a cache anyway). otherwise we return true\n // if children exist.\n var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n if (newValue !== this.__hasChildren) {\n this.__hasChildren = !!newValue;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));\n }\n }\n };\n RowNode.prototype.hasChildren = function () {\n if (this.__hasChildren == null) {\n this.updateHasChildren();\n }\n return this.__hasChildren;\n };\n RowNode.prototype.isEmptyRowGroupNode = function () {\n return this.group && missingOrEmpty(this.childrenAfterGroup);\n };\n RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {\n var cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue,\n oldValue: oldValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n };\n /**\n * The first time `quickFilter` runs, the grid creates a one-off string representation of the row.\n * This string is then used for the quick filter instead of hitting each column separately.\n * When you edit, using grid editing, this string gets cleared down.\n * However if you edit without using grid editing, you will need to clear this string down for the row to be updated with the new values.\n * Otherwise new values will not work with the `quickFilter`. */\n RowNode.prototype.resetQuickFilterAggregateText = function () {\n this.quickFilterAggregateText = null;\n };\n RowNode.prototype.isExpandable = function () {\n return (this.hasChildren() && !this.footer) || this.master ? true : false;\n };\n /** Returns:\n * - `true` if node is selected,\n * - `false` if the node isn't selected\n * - `undefined` if it's partially selected (group where not all children are selected). */\n RowNode.prototype.isSelected = function () {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n };\n /** Perform a depth-first search of this node and its children. */\n RowNode.prototype.depthFirstSearch = function (callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });\n }\n callback(this);\n };\n // + selectionController.calculatedSelectedForAllGroupNodes()\n RowNode.prototype.calculateSelectedFromChildren = function () {\n var _a;\n var atLeastOneSelected = false;\n var atLeastOneDeSelected = false;\n var atLeastOneMixed = false;\n if (!((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n return this.selectable ? this.selected : null;\n }\n for (var i = 0; i < this.childrenAfterGroup.length; i++) {\n var child = this.childrenAfterGroup[i];\n var childState = child.isSelected();\n // non-selectable nodes must be calculated from their children, or ignored if no value results.\n if (!child.selectable) {\n var selectable = child.calculateSelectedFromChildren();\n if (selectable === null) {\n continue;\n }\n childState = selectable;\n }\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n if (atLeastOneMixed || (atLeastOneSelected && atLeastOneDeSelected)) {\n return undefined;\n }\n else if (atLeastOneSelected) {\n return true;\n }\n else if (atLeastOneDeSelected) {\n return false;\n }\n else if (!this.selectable) {\n return null;\n }\n else {\n return this.selected;\n }\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n /**\n * Select (or deselect) the node.\n * @param newValue -`true` for selection, `false` for deselection.\n * @param clearSelection - If selecting, then passing `true` will select the node exclusively (i.e. NOT do multi select). If doing deselection, `clearSelection` has no impact.\n * @param suppressFinishActions - Pass `true` to prevent the `selectionChanged` from being fired. Note that the `rowSelected` event will still be fired.\n */\n RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (suppressFinishActions === void 0) { suppressFinishActions = false; }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n suppressFinishActions: suppressFinishActions,\n rangeSelect: false\n });\n };\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === Constants.PINNED_TOP || this.rowPinned === Constants.PINNED_BOTTOM;\n };\n // to make calling code more readable, this is the same method as setSelected except it takes names parameters\n RowNode.prototype.setSelectedParams = function (params) {\n var _a;\n var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n var newValue = params.newValue === true;\n var clearSelection = params.clearSelection === true;\n var suppressFinishActions = params.suppressFinishActions === true;\n var rangeSelect = params.rangeSelect === true;\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n // if we are a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n if (this.footer) {\n return this.sibling.setSelectedParams(params);\n }\n if (rangeSelect && this.beans.selectionService.getLastSelectedNode()) {\n var newRowClicked = this.beans.selectionService.getLastSelectedNode() !== this;\n var allowMultiSelect = this.beans.gridOptionsWrapper.isRowSelectionMulti();\n if (newRowClicked && allowMultiSelect) {\n var nodesChanged = this.doRowRangeSelection(params.newValue);\n this.beans.selectionService.setLastSelectedNode(this);\n return nodesChanged;\n }\n }\n var updatedCount = 0;\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n var skipThisNode = groupSelectsFiltered && this.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = this.selectThisNode(newValue, params.event);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (groupSelectsChildren && ((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.beans.gridOptionsWrapper.isRowSelectionMulti());\n if (clearOtherNodes) {\n updatedCount += this.beans.selectionService.clearOtherNodes(this);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.beans.selectionService.updateGroupsFromChildrenSelections();\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED\n };\n this.beans.eventService.dispatchEvent(event_1);\n }\n // so if user next does shift-select, we know where to start the selection from\n if (newValue) {\n this.beans.selectionService.setLastSelectedNode(this);\n }\n }\n return updatedCount;\n };\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n RowNode.prototype.doRowRangeSelection = function (value) {\n var _this = this;\n if (value === void 0) { value = true; }\n var groupsSelectChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n var lastSelectedNode = this.beans.selectionService.getLastSelectedNode();\n var nodesToSelect = this.beans.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);\n var updatedCount = 0;\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && groupsSelectChildren || (value === false && _this === rowNode)) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(value);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.beans.selectionService.updateGroupsFromChildrenSelections();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED\n };\n this.beans.eventService.dispatchEvent(event);\n return updatedCount;\n };\n RowNode.prototype.isParentOfNode = function (potentialParent) {\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n };\n RowNode.prototype.selectThisNode = function (newValue, e) {\n // we only check selectable when newValue=true (ie selecting) to allow unselecting values,\n // as selectable is dynamic, need a way to unselect rows when selectable becomes false.\n var selectionNotAllowed = !this.selectable && newValue;\n var selectionNotChanged = this.selected === newValue;\n if (selectionNotAllowed || selectionNotChanged) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n var event = Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED), {\n event: e || null\n });\n this.beans.eventService.dispatchEvent(event);\n return true;\n };\n RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {\n var children = groupSelectsFiltered ? this.childrenAfterAggFilter : this.childrenAfterGroup;\n if (missing(children)) {\n return 0;\n }\n var updatedCount = 0;\n for (var i = 0; i < children.length; i++) {\n updatedCount += children[i].setSelectedParams({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n return updatedCount;\n };\n /** Add an event listener. */\n RowNode.prototype.addEventListener = function (eventType, listener) {\n if (!this.eventService) {\n this.eventService = new EventService();\n }\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener. */\n RowNode.prototype.removeEventListener = function (eventType, listener) {\n if (!this.eventService) {\n return;\n }\n this.eventService.removeEventListener(eventType, listener);\n if (this.eventService.noRegisteredListenersExist()) {\n this.eventService = null;\n }\n };\n RowNode.prototype.onMouseEnter = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n };\n RowNode.prototype.onMouseLeave = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n };\n RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {\n var currentRowNode = this;\n var isCandidate = true;\n var foundFirstChildPath = false;\n var nodeToSwapIn = null;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n while (isCandidate && !foundFirstChildPath) {\n var parentRowNode = currentRowNode.parent;\n var firstChild = exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n };\n RowNode.prototype.isFullWidthCell = function () {\n var isFullWidthCellFunc = this.beans.gridOptionsWrapper.getIsFullWidthCellFunc();\n return isFullWidthCellFunc ? isFullWidthCellFunc({ rowNode: this }) : false;\n };\n /**\n * Returns the route of the row node. If the Row Node is a group, it returns the route to that Row Node.\n * If the Row Node is not a group, it returns `undefined`.\n */\n RowNode.prototype.getRoute = function () {\n if (this.key == null) {\n return;\n }\n var res = [];\n var pointer = this;\n while (pointer.key != null) {\n res.push(pointer.key);\n pointer = pointer.parent;\n }\n return res.reverse();\n };\n RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';\n RowNode.ID_PREFIX_TOP_PINNED = 't-';\n RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';\n RowNode.OBJECT_ID_SEQUENCE = 0;\n RowNode.EVENT_ROW_SELECTED = 'rowSelected';\n RowNode.EVENT_DATA_CHANGED = 'dataChanged';\n RowNode.EVENT_CELL_CHANGED = 'cellChanged';\n RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\n RowNode.EVENT_MASTER_CHANGED = 'masterChanged';\n RowNode.EVENT_GROUP_CHANGED = 'groupChanged';\n RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\n RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\n RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\n RowNode.EVENT_TOP_CHANGED = 'topChanged';\n RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\n RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\n RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\n RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\n RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';\n RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\n RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\n RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';\n RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n return RowNode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar __decorate$21 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CheckboxSelectionComponent = /** @class */ (function (_super) {\n __extends$2i(CheckboxSelectionComponent, _super);\n function CheckboxSelectionComponent() {\n return _super.call(this, /* html*/ \"\\n
\\n \\n
\") || this;\n }\n CheckboxSelectionComponent.prototype.postConstruct = function () {\n this.eCheckbox.setPassive(true);\n };\n CheckboxSelectionComponent.prototype.getCheckboxId = function () {\n return this.eCheckbox.getInputElement().id;\n };\n CheckboxSelectionComponent.prototype.onDataChanged = function () {\n // when rows are loaded for the second time, this can impact the selection, as a row\n // could be loaded as already selected (if user scrolls down, and then up again).\n this.onSelectionChanged();\n };\n CheckboxSelectionComponent.prototype.onSelectableChanged = function () {\n this.showOrHideSelect();\n };\n CheckboxSelectionComponent.prototype.onSelectionChanged = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var state = this.rowNode.isSelected();\n var stateName = state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\n var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');\n this.eCheckbox.setValue(state, true);\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.init = function (params) {\n var _this = this;\n this.rowNode = params.rowNode;\n this.column = params.column;\n this.overrides = params.overrides;\n this.onSelectionChanged();\n // we don't want double click on this icon to open a group\n this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', function (event) {\n stopPropagationForAgGrid(event);\n });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row\n // would possibly get selected twice\n stopPropagationForAgGrid(event);\n var isSelected = _this.eCheckbox.getValue();\n var previousValue = _this.eCheckbox.getPreviousValue();\n if (previousValue === undefined || isSelected === undefined) {\n // Indeterminate state - try toggling children to determine action.\n var result = _this.onUncheckedClicked(event || {});\n if (result === 0) {\n _this.onCheckedClicked(event);\n }\n }\n else if (isSelected) {\n _this.onCheckedClicked(event);\n }\n else {\n _this.onUncheckedClicked(event || {});\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));\n var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n var checkboxVisibleIsDynamic = isRowSelectableFunc || typeof this.getIsVisible() === 'function';\n if (checkboxVisibleIsDynamic) {\n var showOrHideSelectListener = this.showOrHideSelect.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, showOrHideSelectListener);\n this.showOrHideSelect();\n }\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n };\n CheckboxSelectionComponent.prototype.showOrHideSelect = function () {\n var _a, _b, _c, _d;\n // if the isRowSelectable() is not provided the row node is selectable by default\n var selectable = this.rowNode.selectable;\n // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.\n // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need\n // to call the colDef callback.\n var isVisible = this.getIsVisible();\n if (selectable) {\n if (typeof isVisible === 'function') {\n var extraParams = (_a = this.overrides) === null || _a === void 0 ? void 0 : _a.callbackParams;\n var params = (_b = this.column) === null || _b === void 0 ? void 0 : _b.createColumnFunctionCallbackParams(this.rowNode);\n selectable = params ? isVisible(__assign$9(__assign$9({}, extraParams), params)) : false;\n }\n else {\n selectable = (isVisible !== null && isVisible !== void 0 ? isVisible : false);\n }\n }\n var disableInsteadOfHide = (_c = this.column) === null || _c === void 0 ? void 0 : _c.getColDef().showDisabledCheckboxes;\n if (disableInsteadOfHide) {\n this.eCheckbox.setDisabled(!selectable);\n this.setVisible(true);\n this.setDisplayed(true);\n return;\n }\n if ((_d = this.overrides) === null || _d === void 0 ? void 0 : _d.removeHidden) {\n this.setDisplayed(selectable);\n return;\n }\n this.setVisible(selectable);\n };\n CheckboxSelectionComponent.prototype.getIsVisible = function () {\n var _a, _b;\n if (this.overrides) {\n return this.overrides.isVisible;\n }\n // column will be missing if groupUseEntireRow=true\n return (_b = (_a = this.column) === null || _a === void 0 ? void 0 : _a.getColDef()) === null || _b === void 0 ? void 0 : _b.checkboxSelection;\n };\n __decorate$21([\n RefSelector('eCheckbox')\n ], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n __decorate$21([\n PostConstruct\n ], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n return CheckboxSelectionComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$20 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DragSourceType;\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n DragSourceType[DragSourceType[\"ChartPanel\"] = 3] = \"ChartPanel\";\n})(DragSourceType || (DragSourceType = {}));\nvar VerticalDirection;\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"Up\"] = 0] = \"Up\";\n VerticalDirection[VerticalDirection[\"Down\"] = 1] = \"Down\";\n})(VerticalDirection || (VerticalDirection = {}));\nvar HorizontalDirection;\n(function (HorizontalDirection) {\n HorizontalDirection[HorizontalDirection[\"Left\"] = 0] = \"Left\";\n HorizontalDirection[HorizontalDirection[\"Right\"] = 1] = \"Right\";\n})(HorizontalDirection || (HorizontalDirection = {}));\nvar DragAndDropService = /** @class */ (function (_super) {\n __extends$2h(DragAndDropService, _super);\n function DragAndDropService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragSourceAndParamsList = [];\n _this.dropTargets = [];\n return _this;\n }\n DragAndDropService_1 = DragAndDropService;\n DragAndDropService.prototype.init = function () {\n this.ePinnedIcon = createIcon('columnMovePin', this.gridOptionsWrapper, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsWrapper, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsWrapper, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsWrapper, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsWrapper, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsWrapper, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsWrapper, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsWrapper, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsWrapper, null);\n };\n DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {\n if (allowTouch === void 0) { allowTouch = false; }\n var params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this)\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params, allowTouch);\n };\n DragAndDropService.prototype.removeDragSource = function (dragSource) {\n var sourceAndParams = this.dragSourceAndParamsList.find(function (item) { return item.dragSource === dragSource; });\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n };\n DragAndDropService.prototype.clearDragSourceParamsList = function () {\n var _this = this;\n this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });\n this.dragSourceAndParamsList.length = 0;\n };\n DragAndDropService.prototype.nudge = function () {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n };\n DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.getDragItem();\n this.lastDropTarget = this.dragSource.dragSourceDropTarget;\n if (this.dragSource.onDragStarted) {\n this.dragSource.onDragStarted();\n }\n this.createGhost();\n };\n DragAndDropService.prototype.onDragStop = function (mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.onDragStopped) {\n this.dragSource.onDragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n };\n DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {\n var _this = this;\n var _a, _b, _c, _d;\n var hDirection = this.getHorizontalDirection(mouseEvent);\n var vDirection = this.getVerticalDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });\n var dropTarget = this.findCurrentDropTarget(mouseEvent, validDropTargets);\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n if (this.lastDropTarget !== null && dropTarget === null) {\n (_b = (_a = this.dragSource).onGridExit) === null || _b === void 0 ? void 0 : _b.call(_a, this.dragItem);\n }\n if (this.lastDropTarget === null && dropTarget !== null) {\n (_d = (_c = this.dragSource).onGridEnter) === null || _d === void 0 ? void 0 : _d.call(_c, this.dragItem);\n }\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget && dropTarget.onDragging) {\n var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n };\n DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {\n var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n var containers = [[dropTarget.getContainer()]];\n return secondaryContainers ? containers.concat(secondaryContainers) : containers;\n };\n DragAndDropService.prototype.allContainersIntersect = function (mouseEvent, containers) {\n var e_1, _a;\n try {\n for (var containers_1 = __values$3(containers), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {\n var container = containers_1_1.value;\n var rect = container.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return false;\n }\n var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;\n var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;\n if (!horizontalFit || !verticalFit) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {\n var e_2, _a;\n var allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);\n var mouseOverTarget = false;\n try {\n for (var allContainersFromDropTarget_1 = __values$3(allContainersFromDropTarget), allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next(); !allContainersFromDropTarget_1_1.done; allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next()) {\n var currentContainers = allContainersFromDropTarget_1_1.value;\n if (this.allContainersIntersect(mouseEvent, currentContainers)) {\n mouseOverTarget = true;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (allContainersFromDropTarget_1_1 && !allContainersFromDropTarget_1_1.done && (_a = allContainersFromDropTarget_1.return)) _a.call(allContainersFromDropTarget_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(this.dragSource.eElement)) {\n return false;\n }\n return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type, this.dragSource.eElement);\n };\n DragAndDropService.prototype.findCurrentDropTarget = function (mouseEvent, validDropTargets) {\n var e_3, _a, e_4, _b;\n var len = validDropTargets.length;\n if (len === 0) {\n return null;\n }\n if (len === 1) {\n return validDropTargets[0];\n }\n var eDocument = this.gridOptionsWrapper.getDocument();\n // elementsFromPoint return a list of elements under\n // the mouseEvent sorted from topMost to bottomMost\n var elementStack = eDocument.elementsFromPoint(mouseEvent.clientX, mouseEvent.clientY);\n try {\n // loop over the sorted elementStack to find which dropTarget comes first\n for (var elementStack_1 = __values$3(elementStack), elementStack_1_1 = elementStack_1.next(); !elementStack_1_1.done; elementStack_1_1 = elementStack_1.next()) {\n var el = elementStack_1_1.value;\n try {\n for (var validDropTargets_1 = (e_4 = void 0, __values$3(validDropTargets)), validDropTargets_1_1 = validDropTargets_1.next(); !validDropTargets_1_1.done; validDropTargets_1_1 = validDropTargets_1.next()) {\n var dropTarget = validDropTargets_1_1.value;\n var containers = flatten(this.getAllContainersFromDropTarget(dropTarget));\n if (containers.indexOf(el) !== -1) {\n return dropTarget;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (validDropTargets_1_1 && !validDropTargets_1_1.done && (_b = validDropTargets_1.return)) _b.call(validDropTargets_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (elementStack_1_1 && !elementStack_1_1.done && (_a = elementStack_1.return)) _a.call(elementStack_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n // we should never hit this point of the code because only\n // valid dropTargets should be provided to this method.\n return null;\n };\n DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n if (dropTarget.onDragEnter) {\n var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n }\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n };\n DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n if (this.lastDropTarget.onDragLeave) {\n var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n }\n this.setGhostIcon(null);\n };\n DragAndDropService.prototype.addDropTarget = function (dropTarget) {\n this.dropTargets.push(dropTarget);\n };\n DragAndDropService.prototype.removeDropTarget = function (dropTarget) {\n this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });\n };\n DragAndDropService.prototype.hasExternalDropZones = function () {\n return this.dropTargets.some(function (zones) { return zones.external; });\n };\n DragAndDropService.prototype.findExternalZone = function (params) {\n var externalTargets = this.dropTargets.filter(function (target) { return target.external; });\n return externalTargets.find(function (zone) { return zone.getContainer() === params.getContainer(); }) || null;\n };\n DragAndDropService.prototype.getHorizontalDirection = function (event) {\n var clientX = this.eventLastTime && this.eventLastTime.clientX;\n var eClientX = event.clientX;\n if (clientX === eClientX) {\n return null;\n }\n return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;\n };\n DragAndDropService.prototype.getVerticalDirection = function (event) {\n var clientY = this.eventLastTime && this.eventLastTime.clientY;\n var eClientY = event.clientY;\n if (clientY === eClientY) {\n return null;\n }\n return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;\n };\n DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target\n var dropZoneTarget = dropTarget.getContainer();\n var rect = dropZoneTarget.getBoundingClientRect();\n var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;\n var x = event.clientX - rect.left;\n var y = event.clientY - rect.top;\n return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };\n };\n DragAndDropService.prototype.positionGhost = function (event) {\n var ghost = this.eGhost;\n if (!ghost) {\n return;\n }\n var ghostRect = ghost.getBoundingClientRect();\n var ghostHeight = ghostRect.height;\n // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which\n // then brought in scrollbars to the browser. no idea why, but putting in -2 here\n // works around it which is good enough for me.\n var browserWidth = getBodyWidth() - 2;\n var browserHeight = getBodyHeight() - 2;\n var top = event.pageY - (ghostHeight / 2);\n var left = event.pageX - 10;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n var windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;\n var windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {\n left = browserWidth + windowScrollX - ghost.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {\n top = browserHeight + windowScrollY - ghost.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n ghost.style.left = left + \"px\";\n ghost.style.top = top + \"px\";\n };\n DragAndDropService.prototype.removeGhost = function () {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n };\n DragAndDropService.prototype.createGhost = function () {\n this.eGhost = loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(this.eGhost);\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.eGhost.classList.add(theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n var dragItemName = this.dragSource.dragItemName;\n if (isFunction(dragItemName)) {\n dragItemName = dragItemName();\n }\n eText.innerHTML = escapeString(dragItemName) || '';\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n var eDocument = this.gridOptionsWrapper.getDocument();\n var targetEl = null;\n try {\n targetEl = eDocument.fullscreenElement;\n }\n catch (e) {\n // some environments like SalesForce will throw errors\n // simply by trying to read the fullscreenElement property\n }\n finally {\n if (!targetEl) {\n targetEl = eDocument.querySelector('body');\n }\n }\n this.eGhostParent = targetEl;\n if (!this.eGhostParent) {\n console.warn('AG Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n };\n DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {\n if (shake === void 0) { shake = false; }\n clearElement(this.eGhostIcon);\n var eIcon = null;\n if (!iconName) {\n iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;\n }\n switch (iconName) {\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n case DragAndDropService_1.ICON_HIDE:\n eIcon = this.eHideIcon;\n break;\n }\n this.eGhostIcon.classList.toggle('ag-shake-left-to-right', shake);\n if (eIcon === this.eHideIcon && this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns()) {\n return;\n }\n if (eIcon) {\n this.eGhostIcon.appendChild(eIcon);\n }\n };\n var DragAndDropService_1;\n DragAndDropService.ICON_PINNED = 'pinned';\n DragAndDropService.ICON_MOVE = 'move';\n DragAndDropService.ICON_LEFT = 'left';\n DragAndDropService.ICON_RIGHT = 'right';\n DragAndDropService.ICON_GROUP = 'group';\n DragAndDropService.ICON_AGGREGATE = 'aggregate';\n DragAndDropService.ICON_PIVOT = 'pivot';\n DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\n DragAndDropService.ICON_HIDE = 'hide';\n DragAndDropService.GHOST_TEMPLATE = \"
\\n \\n
\\n
\";\n __decorate$20([\n Autowired('dragService')\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate$20([\n Autowired('mouseEventService')\n ], DragAndDropService.prototype, \"mouseEventService\", void 0);\n __decorate$20([\n Autowired('environment')\n ], DragAndDropService.prototype, \"environment\", void 0);\n __decorate$20([\n Autowired('columnApi')\n ], DragAndDropService.prototype, \"columnApi\", void 0);\n __decorate$20([\n Autowired('gridApi')\n ], DragAndDropService.prototype, \"gridApi\", void 0);\n __decorate$20([\n PostConstruct\n ], DragAndDropService.prototype, \"init\", null);\n __decorate$20([\n PreDestroy\n ], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\n DragAndDropService = DragAndDropService_1 = __decorate$20([\n Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowDragComp = /** @class */ (function (_super) {\n __extends$2g(RowDragComp, _super);\n function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels, suppressVisibilityChange) {\n var _this = _super.call(this) || this;\n _this.cellValueFn = cellValueFn;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.customGui = customGui;\n _this.dragStartPixels = dragStartPixels;\n _this.suppressVisibilityChange = suppressVisibilityChange;\n _this.dragSource = null;\n return _this;\n }\n RowDragComp.prototype.isCustomGui = function () {\n return this.customGui != null;\n };\n RowDragComp.prototype.postConstruct = function () {\n if (!this.customGui) {\n this.setTemplate(/* html */ \"
\");\n this.getGui().appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n this.addDragSource();\n }\n else {\n this.setDragElement(this.customGui, this.dragStartPixels);\n }\n this.checkCompatibility();\n if (!this.suppressVisibilityChange) {\n var strategy = this.beans.gridOptionsWrapper.isRowDragManaged() ?\n new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :\n new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);\n this.createManagedBean(strategy, this.beans.context);\n }\n };\n RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {\n this.setTemplateFromElement(dragElement);\n this.addDragSource(dragStartPixels);\n };\n RowDragComp.prototype.getSelectedNodes = function () {\n var isRowDragMultiRow = this.beans.gridOptionsWrapper.isRowDragMultiRow();\n if (!isRowDragMultiRow) {\n return [this.rowNode];\n }\n var selection = this.beans.selectionService.getSelectedNodes();\n return selection.indexOf(this.rowNode) !== -1 ? selection : [this.rowNode];\n };\n // returns true if all compatibility items work out\n RowDragComp.prototype.checkCompatibility = function () {\n var managed = this.beans.gridOptionsWrapper.isRowDragManaged();\n var treeData = this.beans.gridOptionsWrapper.isTreeData();\n if (treeData && managed) {\n doOnce(function () {\n return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');\n }, 'RowDragComp.managedAndTreeData');\n }\n };\n RowDragComp.prototype.getDragItem = function () {\n return {\n rowNode: this.rowNode,\n rowNodes: this.getSelectedNodes(),\n columns: this.column ? [this.column] : undefined,\n defaultTextValue: this.cellValueFn(),\n };\n };\n RowDragComp.prototype.addDragSource = function (dragStartPixels) {\n var _this = this;\n if (dragStartPixels === void 0) { dragStartPixels = 4; }\n // if this is changing the drag element, delete the previous dragSource\n if (this.dragSource) {\n this.removeDragSource();\n }\n var rowDragText = this.gridOptionsWrapper.getRowDragText(this.column);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.dragSource = {\n type: DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: function () {\n var _a;\n var dragItem = _this.getDragItem();\n var dragItemCount = ((_a = dragItem.rowNodes) === null || _a === void 0 ? void 0 : _a.length) || 1;\n if (rowDragText) {\n return rowDragText(dragItem, dragItemCount);\n }\n return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + \" \" + translate('rowDragRows', 'rows');\n },\n getDragItem: function () { return _this.getDragItem(); },\n dragStartPixels: dragStartPixels,\n dragSourceDomDataKey: this.beans.gridOptionsWrapper.getDomDataKey()\n };\n this.beans.dragAndDropService.addDragSource(this.dragSource, true);\n };\n RowDragComp.prototype.removeDragSource = function () {\n if (this.dragSource) {\n this.beans.dragAndDropService.removeDragSource(this.dragSource);\n }\n this.dragSource = null;\n };\n __decorate$1$([\n Autowired('beans')\n ], RowDragComp.prototype, \"beans\", void 0);\n __decorate$1$([\n PostConstruct\n ], RowDragComp.prototype, \"postConstruct\", null);\n __decorate$1$([\n PreDestroy\n ], RowDragComp.prototype, \"removeDragSource\", null);\n return RowDragComp;\n}(Component));\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends$2g(VisibilityStrategy, _super);\n function VisibilityStrategy(parent, rowNode, column) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.rowNode = rowNode;\n _this.column = column;\n return _this;\n }\n VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {\n if (neverDisplayed) {\n this.parent.setDisplayed(false);\n }\n else {\n var shown = true;\n var isShownSometimes = false;\n if (this.column) {\n shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui();\n isShownSometimes = isFunction(this.column.getColDef().rowDrag);\n }\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setDisplayed(true);\n this.parent.setVisible(shown);\n }\n else {\n this.parent.setDisplayed(shown);\n this.parent.setVisible(true);\n }\n }\n };\n return VisibilityStrategy;\n}(BeanStub));\n// when non managed, the visibility depends on suppressRowDrag property only\nvar NonManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$2g(NonManagedVisibilityStrategy, _super);\n function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n NonManagedVisibilityStrategy.prototype.postConstruct = function () {\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$1$([\n PostConstruct\n ], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return NonManagedVisibilityStrategy;\n}(VisibilityStrategy));\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nvar ManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$2g(ManagedVisibilityStrategy, _super);\n function ManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n ManagedVisibilityStrategy.prototype.postConstruct = function () {\n // we do not show the component if sort, filter or grouping is active\n this.addManagedListener(this.beans.eventService, Events.EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var rowDragFeature = gridBodyCon.getRowDragFeature();\n var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();\n var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$1$([\n PostConstruct\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRendererCtrl = /** @class */ (function (_super) {\n __extends$2f(GroupCellRendererCtrl, _super);\n function GroupCellRendererCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupCellRendererCtrl.prototype.init = function (comp, eGui, eCheckbox, eExpanded, eContracted, compClass, params) {\n this.params = params;\n this.eGui = eGui;\n this.eCheckbox = eCheckbox;\n this.eExpanded = eExpanded;\n this.eContracted = eContracted;\n this.comp = comp;\n this.compClass = compClass;\n var topLevelFooter = this.isTopLevelFooter();\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n // This allows for empty strings to appear as groups since\n // it will only return for null or undefined.\n var nullValue = params.value == null;\n var skipCell = false;\n // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true\n // we should only display the groupCellRenderer if the current column is the rowGroupedColumn\n if (this.gridOptionsWrapper.isGroupIncludeFooter() && this.gridOptionsWrapper.isGroupHideOpenParents()) {\n var node = params.node;\n if (node.footer) {\n var showRowGroup = params.colDef && params.colDef.showRowGroup;\n var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\n skipCell = showRowGroup !== rowGroupColumnId;\n }\n }\n this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || nullValue || skipCell);\n if (this.cellIsBlank) {\n return;\n }\n this.setupShowingValueForOpenedParent();\n this.findDisplayedGroupNode();\n this.addFullWidthRowDraggerIfNeeded();\n this.addExpandAndContract();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // property cleanup to avoid memory leaks\n this.expandListener = null;\n };\n GroupCellRendererCtrl.prototype.refreshAriaExpanded = function () {\n var _a = this.params, node = _a.node, eParentOfValue = _a.eParentOfValue;\n if (this.expandListener) {\n this.expandListener = this.expandListener();\n }\n if (!this.isExpandable()) {\n removeAriaExpanded(eParentOfValue);\n return;\n }\n var listener = function () {\n // for react, we don't use JSX, as setting attributes via jsx is slower\n setAriaExpanded(eParentOfValue, !!node.expanded);\n };\n this.expandListener = this.addManagedListener(node, RowNode.EVENT_EXPANDED_CHANGED, listener) || null;\n listener();\n };\n GroupCellRendererCtrl.prototype.isTopLevelFooter = function () {\n if (!this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {\n return false;\n }\n if (this.params.value != null || this.params.node.level != -1) {\n return false;\n }\n // at this point, we know it's the root node and there is no value present, so it's a footer cell.\n // the only thing to work out is if we are displaying groups across multiple\n // columns (groupMultiAutoColumn=true), we only want 'total' to appear in the first column.\n var colDef = this.params.colDef;\n var doingFullWidth = colDef == null;\n if (doingFullWidth) {\n return true;\n }\n if (colDef.showRowGroup === true) {\n return true;\n }\n var rowGroupCols = this.columnModel.getRowGroupColumns();\n // this is a sanity check, rowGroupCols should always be present\n if (!rowGroupCols || rowGroupCols.length === 0) {\n return true;\n }\n var firstRowGroupCol = rowGroupCols[0];\n return firstRowGroupCol.getId() === colDef.showRowGroup;\n };\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n GroupCellRendererCtrl.prototype.isEmbeddedRowMismatch = function () {\n if (!this.params.fullWidth || !this.gridOptionsWrapper.isEmbedFullWidthRows()) {\n return false;\n }\n var pinnedLeftCell = this.params.pinned === Constants.PINNED_LEFT;\n var pinnedRightCell = this.params.pinned === Constants.PINNED_RIGHT;\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (this.columnModel.isPinningLeft()) {\n return !pinnedRightCell;\n }\n return !bodyCell;\n }\n if (this.columnModel.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n return !bodyCell;\n };\n GroupCellRendererCtrl.prototype.findDisplayedGroupNode = function () {\n var column = this.params.column;\n var rowNode = this.params.node;\n if (this.showingValueForOpenedParent) {\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroupNode = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (missing(this.displayedGroupNode)) {\n this.displayedGroupNode = rowNode;\n }\n };\n GroupCellRendererCtrl.prototype.setupShowingValueForOpenedParent = function () {\n // note - this code depends on sortService.updateGroupDataForHiddenOpenParents, where group data\n // is updated to reflect the dragged down parents\n var rowNode = this.params.node;\n var column = this.params.column;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // hideOpenParents means rowNode.groupData can have data for the group this column is displaying, even though\n // this rowNode isn't grouping by the column we are displaying\n // if no groupData at all, we are not showing a parent value\n if (!rowNode.groupData) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // this is the normal case, in that we are showing a group for which this column is configured. note that\n // this means the Row Group is closed (if it was open, we would not be displaying it)\n var showingGroupNode = rowNode.rowGroupColumn != null;\n if (showingGroupNode) {\n var keyOfGroupingColumn = rowNode.rowGroupColumn.getId();\n var configuredToShowThisGroupLevel = column.isRowGroupDisplayed(keyOfGroupingColumn);\n // if showing group as normal, we didn't take group info from parent\n if (configuredToShowThisGroupLevel) {\n this.showingValueForOpenedParent = false;\n return;\n }\n }\n // see if we are showing a Group Value for the Displayed Group. if we are showing a group value, and this Row Node\n // is not grouping by this Displayed Group, we must of gotten the value from a parent node\n var valPresent = rowNode.groupData[column.getId()] != null;\n this.showingValueForOpenedParent = valPresent;\n };\n GroupCellRendererCtrl.prototype.addValueElement = function () {\n if (this.displayedGroupNode.footer) {\n this.addFooterValue();\n }\n else {\n this.addGroupValue();\n this.addChildCount();\n }\n };\n GroupCellRendererCtrl.prototype.addGroupValue = function () {\n // we try and use the cellRenderer of the column used for the grouping if we can\n var paramsAdjusted = this.adjustParamsWithDetailsFromRelatedColumn();\n var innerCompDetails = this.getInnerCompDetails(paramsAdjusted);\n var valueFormatted = paramsAdjusted.valueFormatted, value = paramsAdjusted.value;\n var valueWhenNoRenderer = valueFormatted != null ? valueFormatted : value;\n this.comp.setInnerRenderer(innerCompDetails, valueWhenNoRenderer);\n };\n GroupCellRendererCtrl.prototype.adjustParamsWithDetailsFromRelatedColumn = function () {\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var column = this.params.column;\n if (!relatedColumn) {\n return this.params;\n }\n var notFullWidth = column != null;\n if (notFullWidth) {\n var showingThisRowGroup = column.isRowGroupDisplayed(relatedColumn.getId());\n if (!showingThisRowGroup) {\n return this.params;\n }\n }\n var params = this.params;\n var _a = this.params, value = _a.value, node = _a.node;\n var valueFormatted = this.valueFormatterService.formatValue(relatedColumn, node, value);\n // we don't update the original params, as they could of come through React,\n // as react has RowGroupCellRenderer, which means the params could be props which\n // would be read only\n var paramsAdjusted = __assign$8(__assign$8({}, params), { valueFormatted: valueFormatted });\n return paramsAdjusted;\n };\n GroupCellRendererCtrl.prototype.addFooterValue = function () {\n var footerValueGetter = this.params.footerValueGetter;\n var footerValue = '';\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n var paramsClone = cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');\n }\n var innerCompDetails = this.getInnerCompDetails(this.params);\n this.comp.setInnerRenderer(innerCompDetails, footerValue);\n };\n GroupCellRendererCtrl.prototype.getInnerCompDetails = function (params) {\n var _this = this;\n // for full width rows, we don't do any of the below\n if (params.fullWidth) {\n return this.userComponentFactory.getFullWidthGroupRowInnerCellRenderer(this.gridOptions.groupRowRendererParams, params);\n }\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n var innerCompDetails = this.userComponentFactory\n .getInnerRendererDetails(params, params);\n // avoid using GroupCellRenderer again, otherwise stack overflow, as we insert same renderer again and again.\n // this covers off chance user is grouping by a column that is also configured with GroupCellRenderer\n var isGroupRowRenderer = function (details) { return details && details.componentClass == _this.compClass; };\n if (innerCompDetails && !isGroupRowRenderer(innerCompDetails)) {\n // use the renderer defined in cellRendererParams.innerRenderer\n return innerCompDetails;\n }\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var relatedColDef = relatedColumn ? relatedColumn.getColDef() : undefined;\n if (!relatedColDef) {\n return;\n }\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n var relatedCompDetails = this.userComponentFactory\n .getCellRendererDetails(relatedColDef, params);\n if (relatedCompDetails && !isGroupRowRenderer(relatedCompDetails)) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n return relatedCompDetails;\n }\n if (isGroupRowRenderer(relatedCompDetails) &&\n relatedColDef.cellRendererParams &&\n relatedColDef.cellRendererParams.innerRenderer) {\n // edge case - this comes from a column which has been grouped dynamically, that has a renderer 'group'\n // and has an inner cell renderer\n var res = this.userComponentFactory.getInnerRendererDetails(relatedColDef.cellRendererParams, params);\n return res;\n }\n };\n GroupCellRendererCtrl.prototype.addChildCount = function () {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n };\n GroupCellRendererCtrl.prototype.updateChildCount = function () {\n var allChildrenCount = this.displayedGroupNode.allChildrenCount;\n var showingGroupForThisNode = this.isShowRowGroupForThisRow();\n var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;\n var countString = showCount ? \"(\" + allChildrenCount + \")\" : \"\";\n this.comp.setChildCount(countString);\n };\n GroupCellRendererCtrl.prototype.isShowRowGroupForThisRow = function () {\n if (this.gridOptionsWrapper.isTreeData()) {\n return true;\n }\n var rowGroupColumn = this.displayedGroupNode.rowGroupColumn;\n if (!rowGroupColumn) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());\n return thisColumnIsInterested;\n };\n GroupCellRendererCtrl.prototype.addExpandAndContract = function () {\n var params = this.params;\n var eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsWrapper, null);\n var eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsWrapper, null);\n if (eExpandedIcon) {\n this.eExpanded.appendChild(eExpandedIcon);\n }\n if (eContractedIcon) {\n this.eContracted.appendChild(eContractedIcon);\n }\n var eGroupCell = params.eGridCell;\n // if editing groups, then double click is to start editing\n if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(params.node, RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_MASTER_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_GROUP_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);\n };\n GroupCellRendererCtrl.prototype.onExpandClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract(mouseEvent);\n };\n GroupCellRendererCtrl.prototype.onExpandOrContract = function (e) {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n var rowNode = this.displayedGroupNode;\n var nextExpandState = !rowNode.expanded;\n if (!nextExpandState && rowNode.sticky) {\n this.scrollToStickyNode(rowNode);\n }\n rowNode.setExpanded(nextExpandState, e);\n };\n GroupCellRendererCtrl.prototype.scrollToStickyNode = function (rowNode) {\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var scrollFeature = gridBodyCtrl.getScrollFeature();\n scrollFeature.setVerticalScrollPosition(rowNode.rowTop - rowNode.stickyRowTop);\n };\n GroupCellRendererCtrl.prototype.isExpandable = function () {\n if (this.showingValueForOpenedParent) {\n return true;\n }\n var rowNode = this.displayedGroupNode;\n var reducedLeafNode = this.columnModel.isPivotMode() && rowNode.leafGroup;\n var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;\n if (!expandableGroup) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';\n if (displayingForOneColumnOnly) {\n var showing = this.isShowRowGroupForThisRow();\n return showing;\n }\n return true;\n };\n GroupCellRendererCtrl.prototype.showExpandAndContractIcons = function () {\n var _a = this, params = _a.params, displayedGroup = _a.displayedGroupNode, columnModel = _a.columnModel;\n var node = params.node;\n var isExpandable = this.isExpandable();\n if (isExpandable) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n var expanded = this.showingValueForOpenedParent ? true : node.expanded;\n this.comp.setExpandedDisplayed(expanded);\n this.comp.setContractedDisplayed(!expanded);\n }\n else {\n // it not expandable, show neither\n this.comp.setExpandedDisplayed(false);\n this.comp.setContractedDisplayed(false);\n }\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n var pivotMode = columnModel.isPivotMode();\n var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;\n var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;\n var isTotalFooterNode = node.footer && node.level === -1;\n this.comp.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);\n this.comp.addOrRemoveCssClass('ag-row-group', addExpandableCss);\n if (pivotMode) {\n this.comp.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);\n }\n else if (!isTotalFooterNode) {\n this.comp.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);\n }\n };\n GroupCellRendererCtrl.prototype.onRowNodeIsExpandableChanged = function () {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.setupIndent = function () {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n var node = this.params.node;\n var suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addManagedListener(node, RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n };\n GroupCellRendererCtrl.prototype.setIndent = function () {\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n var params = this.params;\n var rowNode = params.node;\n // if we are only showing one group column, we don't want to be indenting based on level\n var fullWithRow = !!params.colDef;\n var treeData = this.gridOptionsWrapper.isTreeData();\n var manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;\n var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\n var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;\n if (userProvidedPaddingPixelsTheDeprecatedWay) {\n doOnce(function () { return console.warn('AG Grid: cellRendererParams.padding no longer works, it was deprecated in since v14.2 and removed in v26, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the AG Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');\n }\n if (this.indentClass) {\n this.comp.addOrRemoveCssClass(this.indentClass, false);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.comp.addOrRemoveCssClass(this.indentClass, true);\n };\n GroupCellRendererCtrl.prototype.addFullWidthRowDraggerIfNeeded = function () {\n var _this = this;\n if (!this.params.fullWidth || !this.params.rowDrag) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return _this.params.value; }, this.params.node);\n this.createManagedBean(rowDragComp, this.context);\n this.eGui.insertAdjacentElement('afterbegin', rowDragComp.getGui());\n };\n GroupCellRendererCtrl.prototype.isUserWantsSelected = function () {\n var paramsCheckbox = this.params.checkbox;\n // if a function, we always return true as change detection can show or hide the checkbox.\n return typeof paramsCheckbox === 'function' || paramsCheckbox === true;\n };\n GroupCellRendererCtrl.prototype.addCheckboxIfNeeded = function () {\n var _this = this;\n var rowNode = this.displayedGroupNode;\n var checkboxNeeded = this.isUserWantsSelected() &&\n // footers cannot be selected\n !rowNode.footer &&\n // pinned rows cannot be selected\n !rowNode.rowPinned &&\n // details cannot be selected\n !rowNode.detail;\n if (checkboxNeeded) {\n var cbSelectionComponent_1 = new CheckboxSelectionComponent();\n this.getContext().createBean(cbSelectionComponent_1);\n cbSelectionComponent_1.init({\n rowNode: rowNode,\n column: this.params.column,\n overrides: {\n isVisible: this.params.checkbox,\n callbackParams: this.params,\n removeHidden: true,\n },\n });\n this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());\n this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });\n }\n this.comp.setCheckboxVisible(checkboxNeeded);\n };\n GroupCellRendererCtrl.prototype.onKeyDown = function (event) {\n var enterKeyPressed = event.key === KeyCode.ENTER;\n if (!enterKeyPressed || this.params.suppressEnterExpand) {\n return;\n }\n var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n this.onExpandOrContract(event);\n };\n GroupCellRendererCtrl.prototype.onCellDblClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n var targetIsExpandIcon = isElementInEventPath(this.eExpanded, mouseEvent)\n || isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract(mouseEvent);\n }\n };\n __decorate$1_([\n Autowired('expressionService')\n ], GroupCellRendererCtrl.prototype, \"expressionService\", void 0);\n __decorate$1_([\n Autowired('valueFormatterService')\n ], GroupCellRendererCtrl.prototype, \"valueFormatterService\", void 0);\n __decorate$1_([\n Autowired('columnModel')\n ], GroupCellRendererCtrl.prototype, \"columnModel\", void 0);\n __decorate$1_([\n Autowired('userComponentFactory')\n ], GroupCellRendererCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$1_([\n Autowired('gridOptions')\n ], GroupCellRendererCtrl.prototype, \"gridOptions\", void 0);\n __decorate$1_([\n Autowired(\"ctrlsService\")\n ], GroupCellRendererCtrl.prototype, \"ctrlsService\", void 0);\n return GroupCellRendererCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRenderer = /** @class */ (function (_super) {\n __extends$2e(GroupCellRenderer, _super);\n function GroupCellRenderer() {\n return _super.call(this, GroupCellRenderer.TEMPLATE) || this;\n }\n GroupCellRenderer.prototype.init = function (params) {\n var _this = this;\n var compProxy = {\n setInnerRenderer: function (compDetails, valueToDisplay) { return _this.setRenderDetails(compDetails, valueToDisplay); },\n setChildCount: function (count) { return _this.eChildCount.innerHTML = count; },\n addOrRemoveCssClass: function (cssClass, value) { return _this.addOrRemoveCssClass(cssClass, value); },\n setContractedDisplayed: function (expanded) { return setDisplayed(_this.eContracted, expanded); },\n setExpandedDisplayed: function (expanded) { return setDisplayed(_this.eExpanded, expanded); },\n setCheckboxVisible: function (visible) { return _this.eCheckbox.classList.toggle('ag-invisible', !visible); }\n };\n var ctrl = this.createManagedBean(new GroupCellRendererCtrl());\n var fullWidth = !params.colDef;\n var eGui = this.getGui();\n ctrl.init(compProxy, eGui, this.eCheckbox, this.eExpanded, this.eContracted, this.constructor, params);\n if (fullWidth) {\n setAriaRole(eGui, 'gridcell');\n }\n };\n GroupCellRenderer.prototype.setRenderDetails = function (compDetails, valueToDisplay) {\n var _this = this;\n if (compDetails) {\n var componentPromise = compDetails.newAgStackInstance();\n if (!componentPromise) {\n return;\n }\n componentPromise.then(function (comp) {\n if (!comp) {\n return;\n }\n var destroyComp = function () { return _this.context.destroyBean(comp); };\n if (_this.isAlive()) {\n _this.eValue.appendChild(comp.getGui());\n _this.addDestroyFunc(destroyComp);\n }\n else {\n destroyComp();\n }\n });\n }\n else {\n this.eValue.innerText = valueToDisplay;\n }\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to have public here instead of private or protected\n GroupCellRenderer.prototype.destroy = function () {\n this.getContext().destroyBean(this.innerCellRenderer);\n _super.prototype.destroy.call(this);\n };\n GroupCellRenderer.prototype.refresh = function () {\n return false;\n };\n GroupCellRenderer.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$1Z([\n RefSelector('eExpanded')\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate$1Z([\n RefSelector('eContracted')\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate$1Z([\n RefSelector('eCheckbox')\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate$1Z([\n RefSelector('eValue')\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate$1Z([\n RefSelector('eChildCount')\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingCellRenderer = /** @class */ (function (_super) {\n __extends$2d(LoadingCellRenderer, _super);\n function LoadingCellRenderer() {\n return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;\n }\n LoadingCellRenderer.prototype.init = function (params) {\n params.node.failedLoad ? this.setupFailed() : this.setupLoading();\n };\n LoadingCellRenderer.prototype.setupFailed = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingError', 'ERR');\n };\n LoadingCellRenderer.prototype.setupLoading = function () {\n var eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsWrapper, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n };\n LoadingCellRenderer.prototype.refresh = function (params) {\n return false;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingCellRenderer.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$1Y([\n RefSelector('eLoadingIcon')\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate$1Y([\n RefSelector('eLoadingText')\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LoadingOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$2c(LoadingOverlayComponent, _super);\n function LoadingOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?\n this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));\n this.setTemplate(localisedTemplate);\n };\n LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '[LOADING...]';\n return LoadingOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NoRowsOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$2b(NoRowsOverlayComponent, _super);\n function NoRowsOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n NoRowsOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NoRowsOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?\n this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));\n this.setTemplate(localisedTemplate);\n };\n NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '[NO_ROWS_TO_SHOW]';\n return NoRowsOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipComponent$1 = /** @class */ (function (_super) {\n __extends$2a(TooltipComponent, _super);\n function TooltipComponent() {\n return _super.call(this, /* html */ \"
\") || this;\n }\n // will need to type params\n TooltipComponent.prototype.init = function (params) {\n var value = params.value;\n this.getGui().innerHTML = escapeString(value);\n };\n return TooltipComponent;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UserComponentRegistry = /** @class */ (function (_super) {\n __extends$29(UserComponentRegistry, _super);\n function UserComponentRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.agGridDefaults = {\n //date\n agDateInput: DefaultDateComponent,\n //header\n agColumnHeader: HeaderComp,\n agColumnGroupHeader: HeaderGroupComp,\n agSortIndicator: SortIndicatorComp,\n //floating filters\n agTextColumnFloatingFilter: TextFloatingFilter,\n agNumberColumnFloatingFilter: NumberFloatingFilter,\n agDateColumnFloatingFilter: DateFloatingFilter,\n agReadOnlyFloatingFilter: ReadOnlyFloatingFilter,\n // renderers\n agAnimateShowChangeCellRenderer: AnimateShowChangeCellRenderer,\n agAnimateSlideCellRenderer: AnimateSlideCellRenderer,\n agGroupCellRenderer: GroupCellRenderer,\n agGroupRowRenderer: GroupCellRenderer,\n agLoadingCellRenderer: LoadingCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agPopupTextCellEditor: PopupTextCellEditor,\n agPopupSelectCellEditor: PopupSelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n //filter\n agTextColumnFilter: TextFilter,\n agNumberColumnFilter: NumberFilter,\n agDateColumnFilter: DateFilter,\n //overlays\n agLoadingOverlay: LoadingOverlayComponent$1,\n agNoRowsOverlay: NoRowsOverlayComponent$1,\n // tooltips\n agTooltipComponent: TooltipComponent$1\n };\n _this.agDeprecatedNames = {\n set: {\n newComponentName: 'agSetColumnFilter',\n propertyHolder: 'filter'\n },\n text: {\n newComponentName: 'agTextColumnFilter',\n propertyHolder: 'filter'\n },\n number: {\n newComponentName: 'agNumberColumnFilter',\n propertyHolder: 'filter'\n },\n date: {\n newComponentName: 'agDateColumnFilter',\n propertyHolder: 'filter'\n },\n group: {\n newComponentName: 'agGroupCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateShowChange: {\n newComponentName: 'agAnimateShowChangeCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateSlide: {\n newComponentName: 'agAnimateSlideCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n select: {\n newComponentName: 'agSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n largeText: {\n newComponentName: 'agLargeTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupSelect: {\n newComponentName: 'agPopupSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupText: {\n newComponentName: 'agPopupTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n richSelect: {\n newComponentName: 'agRichSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n headerComponent: {\n newComponentName: 'agColumnHeader',\n propertyHolder: 'headerComponent'\n }\n };\n _this.jsComps = {};\n _this.fwComps = {};\n return _this;\n }\n UserComponentRegistry.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.components != null) {\n iterateObject(this.gridOptions.components, function (key, component) { return _this.registerJsComponent(key, component); });\n }\n if (this.gridOptions.frameworkComponents != null) {\n iterateObject(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });\n }\n };\n UserComponentRegistry.prototype.registerDefaultComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.agGridDefaults[name]) {\n console.error(\"Trying to overwrite a default component. You should call registerComponent\");\n return;\n }\n this.agGridDefaults[name] = component;\n };\n UserComponentRegistry.prototype.registerJsComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.fwComps[name]) {\n console.error(\"Trying to register a component that you have already registered for frameworks: \" + name);\n return;\n }\n this.jsComps[name] = component;\n };\n /**\n * B the business interface (ie IHeader)\n * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid\n */\n UserComponentRegistry.prototype.registerFwComponent = function (rawName, component) {\n var warningMessage = \"AG Grid: As of v27, registering components via grid property frameworkComponents is deprecated. Instead register both JavaScript AND Framework Components via the components property.\";\n doOnce(function () { return console.warn(warningMessage); }, \"UserComponentRegistry.frameworkComponentsDeprecated\");\n var name = this.translateIfDeprecated(rawName);\n this.fwComps[name] = component;\n };\n UserComponentRegistry.prototype.retrieve = function (rawName) {\n var name = this.translateIfDeprecated(rawName);\n var createResult = function (component, componentFromFramework) { return ({ componentFromFramework: componentFromFramework, component: component }); };\n // FrameworkOverrides.frameworkComponent() is used in two locations:\n // 1) for Vue, user provided components get registered via a framework specific way.\n // 2) for React, it's how the React UI provides alternative default components (eg GroupCellRenderer and DetailCellRenderer)\n var registeredViaFrameworkComp = this.getFrameworkOverrides().frameworkComponent(name, this.gridOptions.components);\n if (registeredViaFrameworkComp != null) {\n return createResult(registeredViaFrameworkComp, true);\n }\n var frameworkComponent = this.fwComps[name];\n if (frameworkComponent) {\n return createResult(frameworkComponent, true);\n }\n var jsComponent = this.jsComps[name];\n if (jsComponent) {\n var isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(jsComponent);\n return createResult(jsComponent, isFwkComp);\n }\n var defaultComponent = this.agGridDefaults[name];\n if (defaultComponent) {\n return createResult(defaultComponent, false);\n }\n if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {\n console.warn(\"AG Grid: Looking for component [\" + name + \"] but it wasn't found.\");\n }\n return null;\n };\n UserComponentRegistry.prototype.translateIfDeprecated = function (raw) {\n var deprecatedInfo = this.agDeprecatedNames[raw];\n if (deprecatedInfo != null) {\n doOnce(function () {\n console.warn(\"ag-grid. Since v15.0 component names have been renamed to be namespaced. You should rename \" + deprecatedInfo.propertyHolder + \":\" + raw + \" to \" + deprecatedInfo.propertyHolder + \":\" + deprecatedInfo.newComponentName);\n }, 'DEPRECATE_COMPONENT_' + raw);\n return deprecatedInfo.newComponentName;\n }\n return raw;\n };\n __decorate$1X([\n Autowired('gridOptions')\n ], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n __decorate$1X([\n Autowired('agComponentUtils')\n ], UserComponentRegistry.prototype, \"agComponentUtils\", void 0);\n __decorate$1X([\n PostConstruct\n ], UserComponentRegistry.prototype, \"init\", null);\n UserComponentRegistry = __decorate$1X([\n Bean('userComponentRegistry')\n ], UserComponentRegistry);\n return UserComponentRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DateComponent = {\n propertyName: 'dateComponent',\n cellRenderer: false\n};\nvar HeaderComponent = {\n propertyName: 'headerComponent',\n cellRenderer: false\n};\nvar HeaderGroupComponent = {\n propertyName: 'headerGroupComponent',\n cellRenderer: false\n};\nvar CellRendererComponent = {\n propertyName: 'cellRenderer',\n cellRenderer: true\n};\nvar CellEditorComponent = {\n propertyName: 'cellEditor',\n cellRenderer: false\n};\nvar InnerRendererComponent = {\n propertyName: 'innerRenderer',\n cellRenderer: true\n};\nvar LoadingOverlayComponent = {\n propertyName: 'loadingOverlayComponent',\n cellRenderer: false\n};\nvar NoRowsOverlayComponent = {\n propertyName: 'noRowsOverlayComponent',\n cellRenderer: false\n};\nvar TooltipComponent = {\n propertyName: 'tooltipComponent',\n cellRenderer: false\n};\nvar FilterComponent = {\n propertyName: 'filter',\n cellRenderer: false\n};\nvar FloatingFilterComponent = {\n propertyName: 'floatingFilterComponent',\n cellRenderer: false\n};\nvar ToolPanelComponent = {\n propertyName: 'toolPanel',\n cellRenderer: false\n};\nvar StatusPanelComponent = {\n propertyName: 'statusPanel',\n cellRenderer: false\n};\nvar FullWidth = {\n propertyName: 'fullWidthCellRenderer',\n cellRenderer: true\n};\nvar FullWidthLoading = {\n propertyName: 'loadingCellRenderer',\n cellRenderer: true\n};\nvar FullWidthGroup = {\n propertyName: 'groupRowRenderer',\n cellRenderer: true\n};\nvar FullWidthDetail = {\n propertyName: 'detailCellRenderer',\n cellRenderer: true\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar FloatingFilterMapper = /** @class */ (function () {\n function FloatingFilterMapper() {\n }\n FloatingFilterMapper.getFloatingFilterType = function (filterType) {\n return this.filterToFloatingFilterMapping[filterType];\n };\n FloatingFilterMapper.filterToFloatingFilterMapping = {\n set: 'agSetColumnFloatingFilter',\n agSetColumnFilter: 'agSetColumnFloatingFilter',\n multi: 'agMultiColumnFloatingFilter',\n agMultiColumnFilter: 'agMultiColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n };\n return FloatingFilterMapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UserComponentFactory = /** @class */ (function (_super) {\n __extends$28(UserComponentFactory, _super);\n function UserComponentFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n UserComponentFactory.prototype.getHeaderCompDetails = function (colDef, params) {\n return this.getCompDetails(colDef, HeaderComponent, 'agColumnHeader', params);\n };\n UserComponentFactory.prototype.getHeaderGroupCompDetails = function (params) {\n var colGroupDef = params.columnGroup.getColGroupDef();\n return this.getCompDetails(colGroupDef, HeaderGroupComponent, 'agColumnGroupHeader', params);\n };\n // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.\n // so we have to pass the type in.\n UserComponentFactory.prototype.getFullWidthCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidth, null, params, true);\n };\n UserComponentFactory.prototype.getFullWidthLoadingCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthLoading, 'agLoadingCellRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthGroupCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthGroup, 'agGroupRowRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthDetailCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthDetail, 'agDetailCellRenderer', params, true);\n };\n // CELL RENDERER\n UserComponentFactory.prototype.getInnerRendererDetails = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFullWidthGroupRowInnerCellRenderer = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n // CELL EDITOR\n UserComponentFactory.prototype.getCellEditorDetails = function (def, params) {\n return this.getCompDetails(def, CellEditorComponent, 'agCellEditor', params, true);\n };\n // FILTER\n UserComponentFactory.prototype.getFilterDetails = function (def, params, defaultFilter) {\n return this.getCompDetails(def, FilterComponent, defaultFilter, params, true);\n };\n UserComponentFactory.prototype.getDateCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, DateComponent, 'agDateInput', params, true);\n };\n UserComponentFactory.prototype.getLoadingOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, LoadingOverlayComponent, 'agLoadingOverlay', params, true);\n };\n UserComponentFactory.prototype.getNoRowsOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, NoRowsOverlayComponent, 'agNoRowsOverlay', params, true);\n };\n UserComponentFactory.prototype.getTooltipCompDetails = function (params) {\n return this.getCompDetails(params.colDef, TooltipComponent, 'agTooltipComponent', params, true);\n };\n UserComponentFactory.prototype.getSetFilterCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFloatingFilterCompDetails = function (def, params, defaultFloatingFilter) {\n return this.getCompDetails(def, FloatingFilterComponent, defaultFloatingFilter, params);\n };\n UserComponentFactory.prototype.getToolPanelCompDetails = function (toolPanelDef, params) {\n return this.getCompDetails(toolPanelDef, ToolPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getStatusPanelCompDetails = function (def, params) {\n return this.getCompDetails(def, StatusPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getCompDetails = function (defObject, type, defaultName, params, mandatory) {\n var _this = this;\n if (mandatory === void 0) { mandatory = false; }\n var propertyName = type.propertyName, cellRenderer = type.cellRenderer;\n var _a = this.getCompKeys(defObject, type, params), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp, paramsFromSelector = _a.paramsFromSelector, popupFromSelector = _a.popupFromSelector, popupPositionFromSelector = _a.popupPositionFromSelector;\n var lookupFromRegistry = function (key) {\n var item = _this.userComponentRegistry.retrieve(key);\n if (item) {\n jsComp = !item.componentFromFramework ? item.component : undefined;\n fwComp = item.componentFromFramework ? item.component : undefined;\n }\n };\n // if compOption is a string, means we need to look the item up\n if (compName != null) {\n lookupFromRegistry(compName);\n }\n // if lookup brought nothing back, and we have a default, lookup the default\n if (jsComp == null && fwComp == null && defaultName != null) {\n lookupFromRegistry(defaultName);\n }\n // if we have a comp option, and it's a function, replace it with an object equivalent adaptor\n if (jsComp && cellRenderer && !this.agComponentUtils.doesImplementIComponent(jsComp)) {\n jsComp = this.agComponentUtils.adaptFunction(propertyName, jsComp);\n }\n if (!jsComp && !fwComp) {\n if (mandatory) {\n console.error(\"Could not find component \" + compName + \", did you forget to configure this component?\");\n }\n return;\n }\n var paramsMerged = this.mergeParamsWithApplicationProvidedParams(defObject, type, params, paramsFromSelector);\n var componentFromFramework = jsComp == null;\n var componentClass = jsComp ? jsComp : fwComp;\n return {\n componentFromFramework: componentFromFramework,\n componentClass: componentClass,\n params: paramsMerged,\n type: type,\n popupFromSelector: popupFromSelector,\n popupPositionFromSelector: popupPositionFromSelector,\n newAgStackInstance: function () { return _this.newAgStackInstance(componentClass, componentFromFramework, paramsMerged, type); }\n };\n };\n UserComponentFactory.prototype.getCompKeys = function (defObject, type, params) {\n var _this = this;\n var propertyName = type.propertyName;\n var compName;\n var jsComp;\n var fwComp;\n var paramsFromSelector;\n var popupFromSelector;\n var popupPositionFromSelector;\n // there are two types of js comps, class based and func based. we can only check for\n // class based, by checking if getGui() exists. no way to differentiate js func based vs eg react func based\n // const isJsClassComp = (comp: any) => this.agComponentUtils.doesImplementIComponent(comp);\n // const fwActive = this.frameworkComponentWrapper != null;\n // pull from defObject if available\n if (defObject) {\n var defObjectAny = defObject;\n // if selector, use this\n var selectorFunc = defObjectAny[propertyName + 'Selector'];\n var selectorRes = selectorFunc ? selectorFunc(params) : null;\n var assignComp = function (providedJsComp, providedFwComp) {\n var xxxFrameworkDeprecatedWarn = function () {\n var warningMessage = \"AG Grid: As of v27, the property \" + propertyName + \"Framework is deprecated. The property \" + propertyName + \" can now be used for JavaScript AND Framework Components.\";\n doOnce(function () { return console.warn(warningMessage); }, \"UserComponentFactory.\" + propertyName + \"FrameworkDeprecated\");\n };\n if (typeof providedJsComp === 'string') {\n compName = providedJsComp;\n }\n else if (typeof providedFwComp === 'string') {\n xxxFrameworkDeprecatedWarn();\n compName = providedFwComp;\n // comp===true for filters, which means use the default comp\n }\n else if (providedJsComp != null && providedJsComp !== true) {\n var isFwkComp = _this.getFrameworkOverrides().isFrameworkComponent(providedJsComp);\n if (isFwkComp) {\n fwComp = providedJsComp;\n }\n else {\n jsComp = providedJsComp;\n }\n }\n else if (providedFwComp != null) {\n xxxFrameworkDeprecatedWarn();\n fwComp = providedFwComp;\n }\n };\n if (selectorRes) {\n if (selectorRes.frameworkComponent != null) {\n var warningMessage_1 = \"AG Grid: As of v27, the return for \" + propertyName + \"Selector has attributes [component, params] only. The attribute frameworkComponent is deprecated. You should now return back Framework Components using the 'component' attribute and the grid works out if it's a framework component or not.\";\n doOnce(function () { return console.warn(warningMessage_1); }, \"UserComponentFactory.\" + propertyName + \"FrameworkSelectorDeprecated\");\n assignComp(selectorRes.frameworkComponent, undefined);\n }\n else {\n assignComp(selectorRes.component, undefined);\n }\n paramsFromSelector = selectorRes.params;\n popupFromSelector = selectorRes.popup;\n popupPositionFromSelector = selectorRes.popupPosition;\n }\n else {\n // if no selector, or result of selector is empty, take from defObject\n assignComp(defObjectAny[propertyName], defObjectAny[propertyName + 'Framework']);\n }\n }\n return { compName: compName, jsComp: jsComp, fwComp: fwComp, paramsFromSelector: paramsFromSelector, popupFromSelector: popupFromSelector, popupPositionFromSelector: popupPositionFromSelector };\n };\n UserComponentFactory.prototype.newAgStackInstance = function (ComponentClass, componentFromFramework, params, type) {\n var propertyName = type.propertyName;\n var jsComponent = !componentFromFramework;\n // using javascript component\n var instance;\n if (jsComponent) {\n instance = new ComponentClass();\n }\n else {\n // Using framework component\n var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);\n instance = this.frameworkComponentWrapper.wrap(ComponentClass, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, type);\n }\n var deferredInit = this.initComponent(instance, params);\n if (deferredInit == null) {\n return AgPromise.resolve(instance);\n }\n return deferredInit.then(function () { return instance; });\n };\n // used by Floating Filter\n UserComponentFactory.prototype.mergeParamsWithApplicationProvidedParams = function (defObject, type, paramsFromGrid, paramsFromSelector) {\n if (paramsFromSelector === void 0) { paramsFromSelector = null; }\n var params = {\n context: this.gridOptionsWrapper.getContext(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n api: this.gridOptionsWrapper.getApi()\n };\n mergeDeep(params, paramsFromGrid);\n // pull user params from either the old prop name and new prop name\n // eg either cellRendererParams and cellCompParams\n var defObjectAny = defObject;\n var userParams = defObjectAny && defObjectAny[type.propertyName + 'Params'];\n if (typeof userParams === 'function') {\n var userParamsFromFunc = userParams(paramsFromGrid);\n mergeDeep(params, userParamsFromFunc);\n }\n else if (typeof userParams === 'object') {\n mergeDeep(params, userParams);\n }\n mergeDeep(params, paramsFromSelector);\n return params;\n };\n UserComponentFactory.prototype.initComponent = function (component, params) {\n this.context.createBean(component);\n if (component.init == null) {\n return;\n }\n return component.init(params);\n };\n UserComponentFactory.prototype.getDefaultFloatingFilterType = function (def) {\n if (def == null) {\n return null;\n }\n var defaultFloatingFilterType = null;\n var _a = this.getCompKeys(def, FilterComponent), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp;\n if (compName) {\n // will be undefined if not in the map\n defaultFloatingFilterType = FloatingFilterMapper.getFloatingFilterType(compName);\n }\n else {\n var usingDefaultFilter = (jsComp == null && fwComp == null) && (def.filter === true);\n if (usingDefaultFilter) {\n var setFilterModuleLoaded = ModuleRegistry.isRegistered(ModuleNames.SetFilterModule);\n defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';\n }\n }\n return defaultFloatingFilterType;\n };\n __decorate$1W([\n Autowired('gridOptions')\n ], UserComponentFactory.prototype, \"gridOptions\", void 0);\n __decorate$1W([\n Autowired('agComponentUtils')\n ], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n __decorate$1W([\n Autowired('componentMetadataProvider')\n ], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n __decorate$1W([\n Autowired('userComponentRegistry')\n ], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n __decorate$1W([\n Optional('frameworkComponentWrapper')\n ], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\n UserComponentFactory = __decorate$1W([\n Bean('userComponentFactory')\n ], UserComponentFactory);\n return UserComponentFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// Excel Export\nvar ExcelFactoryMode;\n(function (ExcelFactoryMode) {\n ExcelFactoryMode[ExcelFactoryMode[\"SINGLE_SHEET\"] = 0] = \"SINGLE_SHEET\";\n ExcelFactoryMode[ExcelFactoryMode[\"MULTI_SHEET\"] = 1] = \"MULTI_SHEET\";\n})(ExcelFactoryMode || (ExcelFactoryMode = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nvar DragService = /** @class */ (function (_super) {\n __extends$27(DragService, _super);\n function DragService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragEndFunctions = [];\n _this.dragSources = [];\n return _this;\n }\n DragService.prototype.init = function () {\n this.logger = this.loggerFactory.create('DragService');\n };\n DragService.prototype.removeAllListeners = function () {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n };\n DragService.prototype.removeListener = function (dragSourceAndListener) {\n var element = dragSourceAndListener.dragSource.eElement;\n var mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n var touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n };\n DragService.prototype.removeDragSource = function (params) {\n var dragSourceAndListener = this.dragSources.find(function (item) { return item.dragSource === params; });\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n removeFromArray(this.dragSources, dragSourceAndListener);\n };\n DragService.prototype.isDragging = function () {\n return this.dragging;\n };\n DragService.prototype.addDragSource = function (params, includeTouch) {\n var _this = this;\n if (includeTouch === void 0) { includeTouch = false; }\n var mouseListener = this.onMouseDown.bind(this, params);\n params.eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();\n if (includeTouch && !suppressTouch) {\n touchListener = function (touchEvent) {\n if (isFocusableFormField(touchEvent.target)) {\n return;\n }\n if (touchEvent.cancelable) {\n touchEvent.preventDefault();\n }\n _this.onTouchStart(params, touchEvent);\n };\n // we set passive=false, as we want to prevent default on this event\n params.eElement.addEventListener('touchstart', touchListener, { passive: false });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: includeTouch\n });\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onTouchStart = function (params, touchEvent) {\n var _this = this;\n this.currentDragParams = params;\n this.dragging = false;\n var touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };\n var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };\n var documentTouchMove = function (e) { if (e.cancelable) {\n e.preventDefault();\n } };\n var target = touchEvent.target;\n var events = [\n // Prevents the page document from moving while we are dragging items around.\n // preventDefault needs to be called in the touchmove listener and never inside the\n // touchstart, because using touchstart causes the click event to be cancelled on touch devices.\n { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },\n { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },\n { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },\n { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart, params.eElement);\n }\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onMouseDown = function (params, mouseEvent) {\n var _this = this;\n var e = mouseEvent;\n if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {\n return;\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (e._alreadyProcessedByDragService) {\n return;\n }\n e._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };\n var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };\n var contextEvent = function (event) { return event.preventDefault(); };\n var target = eDocument;\n var events = [\n { target: target, type: 'mousemove', listener: mouseMoveEvent },\n { target: target, type: 'mouseup', listener: mouseUpEvent },\n { target: target, type: 'contextmenu', listener: contextEvent }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent, params.eElement);\n }\n };\n DragService.prototype.addTemporaryEvents = function (events) {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.addEventListener(type, listener, options);\n });\n this.dragEndFunctions.push(function () {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.removeEventListener(type, listener, options);\n });\n });\n };\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n var dragStartPixels = this.currentDragParams.dragStartPixels;\n var requiredPixelDiff = exists(dragStartPixels) ? dragStartPixels : 4;\n return areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n };\n DragService.prototype.getFirstActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n };\n DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n var event_1 = {\n type: Events.EVENT_DRAG_STARTED,\n target: el\n };\n this.eventService.dispatchEvent(event_1);\n this.currentDragParams.onDragStart(startEvent);\n // we need ONE drag action at the startEvent, so that we are guaranteed the drop target\n // at the start gets notified. this is because the drag can start outside of the element\n // that started it, as the mouse is allowed drag away from the mouse down before it's\n // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then\n // it would be possible to click a column by the edge, then drag outside of the drop zone\n // in less than 4 pixels and the drag officially starts outside of the header but the header\n // wouldn't be notified of the dragging.\n this.currentDragParams.onDragging(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n };\n DragService.prototype.onTouchMove = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n this.onCommonMove(touch, this.touchStart, el);\n };\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n DragService.prototype.onMouseMove = function (mouseEvent, el) {\n // when `isEnableCellTextSelect` is `true`, we need to preventDefault on mouseMove\n // to avoid the grid text being selected while dragging components.\n // Note: Safari also has an issue, where `user-select: none` is not being respected.\n if ((this.gridOptionsWrapper.isEnableCellTextSelect() || isBrowserSafari()) &&\n // The event type can be `mousedown` when `dragStartPixels=0`\n // we should only preventDefault on `mousemove`.\n mouseEvent.type === 'mousemove' &&\n mouseEvent.cancelable &&\n this.mouseEventService.isEventFromThisGrid(mouseEvent) &&\n // we should not prevent mouseMove when above a form field\n // as that would prevent the text in the field from being selected\n !this.isOverFormFieldElement(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n };\n DragService.prototype.isOverFormFieldElement = function (mouseEvent) {\n var _a, _b;\n var el = mouseEvent.target;\n var tagName = (_a = el) === null || _a === void 0 ? void 0 : _a.tagName.toLocaleLowerCase();\n return !!((_b = tagName) === null || _b === void 0 ? void 0 : _b.match('^a$|textarea|input|select|button'));\n };\n DragService.prototype.onTouchUp = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch, el);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n };\n DragService.prototype.onMouseUp = function (mouseEvent, el) {\n this.onUpCommon(mouseEvent, el);\n };\n DragService.prototype.onUpCommon = function (eventOrTouch, el) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n var event_2 = {\n type: Events.EVENT_DRAG_STOPPED,\n target: el\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.mouseStartEvent = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(function (func) { return func(); });\n this.dragEndFunctions.length = 0;\n };\n __decorate$1V([\n Autowired('loggerFactory')\n ], DragService.prototype, \"loggerFactory\", void 0);\n __decorate$1V([\n Autowired('mouseEventService')\n ], DragService.prototype, \"mouseEventService\", void 0);\n __decorate$1V([\n PostConstruct\n ], DragService.prototype, \"init\", null);\n __decorate$1V([\n PreDestroy\n ], DragService.prototype, \"removeAllListeners\", null);\n DragService = __decorate$1V([\n Bean('dragService')\n ], DragService);\n return DragService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterManager = /** @class */ (function (_super) {\n __extends$26(FilterManager, _super);\n function FilterManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allColumnFilters = new Map();\n _this.activeAggregateFilters = [];\n _this.activeColumnFilters = [];\n _this.quickFilter = null;\n _this.quickFilterParts = null;\n // this is true when the grid is processing the filter change. this is used by the cell comps, so that they\n // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the\n // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where\n // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)\n // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.\n _this.processingFilterChange = false;\n return _this;\n }\n FilterManager_1 = FilterManager;\n FilterManager.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.quickFilter = this.parseQuickFilter(this.gridOptionsWrapper.getQuickFilterText());\n this.setQuickFilterParts();\n this.allowShowChangeAfterFilter = this.gridOptionsWrapper.isAllowShowChangeAfterFilter();\n this.externalFilterPresent = this.gridOptionsWrapper.isExternalFilterPresent();\n };\n FilterManager.prototype.setQuickFilterParts = function () {\n this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;\n };\n FilterManager.prototype.setFilterModel = function (model) {\n var _this = this;\n var allPromises = [];\n var previousModel = this.getFilterModel();\n if (model) {\n // mark the filters as we set them, so any active filters left over we stop\n var modelKeys_1 = convertToSet(Object.keys(model));\n this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var newModel = model[colId];\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));\n modelKeys_1.delete(colId);\n });\n // at this point, processedFields contains data for which we don't have a filter working yet\n modelKeys_1.forEach(function (colId) {\n var column = _this.columnModel.getPrimaryColumn(colId) || _this.columnModel.getGridColumn(colId);\n if (!column) {\n console.warn('AG Grid: setFilterModel() - no column found for colId: ' + colId);\n return;\n }\n if (!column.isFilterAllowed()) {\n console.warn('AG Grid: setFilterModel() - unable to fully apply model, filtering disabled for colId: ' + colId);\n return;\n }\n var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');\n if (!filterWrapper) {\n console.warn('AG-Grid: setFilterModel() - unable to fully apply model, unable to create filter for colId: ' + colId);\n return;\n }\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));\n });\n }\n else {\n this.allColumnFilters.forEach(function (filterWrapper) {\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));\n });\n }\n AgPromise.all(allPromises).then(function () {\n var currentModel = _this.getFilterModel();\n var columns = [];\n _this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var before = previousModel ? previousModel[colId] : null;\n var after = currentModel ? currentModel[colId] : null;\n if (!_.jsonEquals(before, after)) {\n columns.push(filterWrapper.column);\n }\n });\n if (columns.length > 0) {\n _this.onFilterChanged({ columns: columns });\n }\n });\n };\n FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {\n return new AgPromise(function (resolve) {\n filterPromise.then(function (filter) {\n if (typeof filter.setModel !== 'function') {\n console.warn('AG Grid: filter missing setModel method, which is needed for setFilterModel');\n resolve();\n }\n (filter.setModel(newModel) || AgPromise.resolve()).then(function () { return resolve(); });\n });\n });\n };\n FilterManager.prototype.getFilterModel = function () {\n var result = {};\n this.allColumnFilters.forEach(function (filterWrapper, key) {\n // because user can provide filters, we provide useful error checking and messages\n var filterPromise = filterWrapper.filterPromise;\n var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });\n if (filter == null) {\n return null;\n }\n if (typeof filter.getModel !== 'function') {\n console.warn('AG Grid: filter API missing getModel method, which is needed for getFilterModel');\n return;\n }\n var model = filter.getModel();\n if (exists(model)) {\n result[key] = model;\n }\n });\n return result;\n };\n FilterManager.prototype.isColumnFilterPresent = function () {\n return this.activeColumnFilters.length > 0;\n };\n FilterManager.prototype.isAggregateFilterPresent = function () {\n return !!this.activeAggregateFilters.length;\n };\n FilterManager.prototype.isExternalFilterPresent = function () {\n return this.externalFilterPresent;\n };\n FilterManager.prototype.doAggregateFiltersPass = function (node, filterToSkip) {\n return this.doColumnFiltersPass(node, filterToSkip, true);\n };\n // called by:\n // 1) onFilterChanged()\n // 2) onNewRowsLoaded()\n FilterManager.prototype.updateActiveFilters = function () {\n var _this = this;\n this.activeColumnFilters.length = 0;\n this.activeAggregateFilters.length = 0;\n var isFilterActive = function (filter) {\n if (!filter) {\n return false;\n } // this never happens, including to avoid compile error\n if (!filter.isFilterActive) {\n console.warn('AG Grid: Filter is missing isFilterActive() method');\n return false;\n }\n return filter.isFilterActive();\n };\n var groupFilterEnabled = !!this.gridOptionsWrapper.getGroupAggFiltering();\n var isAggFilter = function (column) {\n var isSecondary = !column.isPrimary();\n // the only filters that can appear on secondary columns are groupAgg filters\n if (isSecondary) {\n return true;\n }\n var isShowingPrimaryColumns = !_this.columnModel.isPivotActive();\n var isValueActive = column.isValueActive();\n // primary columns are only ever groupAgg filters if a) value is active and b) showing primary columns\n if (!isValueActive || !isShowingPrimaryColumns) {\n return false;\n }\n // from here on we know: isPrimary=true, isValueActive=true, isShowingPrimaryColumns=true\n if (_this.columnModel.isPivotMode()) {\n // primary column is pretending to be a pivot column, ie pivotMode=true, but we are\n // still showing primary columns\n return true;\n }\n else {\n // we are not pivoting, so we groupFilter when it's an agg column\n return groupFilterEnabled;\n }\n };\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (filterWrapper.filterPromise.resolveNow(false, isFilterActive)) {\n var filterComp = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });\n if (isAggFilter(filterWrapper.column)) {\n _this.activeAggregateFilters.push(filterComp);\n }\n else {\n _this.activeColumnFilters.push(filterComp);\n }\n }\n });\n };\n FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);\n });\n };\n FilterManager.prototype.isAnyFilterPresent = function () {\n return this.isQuickFilterPresent() || this.isColumnFilterPresent() || this.isAggregateFilterPresent() || this.isExternalFilterPresent();\n };\n FilterManager.prototype.doColumnFiltersPass = function (node, filterToSkip, targetAggregates) {\n var data = node.data, aggData = node.aggData;\n var targetedFilters = targetAggregates ? this.activeAggregateFilters : this.activeColumnFilters;\n var targetedData = targetAggregates ? aggData : data;\n for (var i = 0; i < targetedFilters.length; i++) {\n var filter = targetedFilters[i];\n if (filter == null || filter === filterToSkip) {\n continue;\n }\n if (typeof filter.doesFilterPass !== 'function') {\n // because users can do custom filters, give nice error message\n throw new Error('Filter is missing method doesFilterPass');\n }\n if (!filter.doesFilterPass({ node: node, data: targetedData })) {\n return false;\n }\n }\n return true;\n };\n FilterManager.prototype.parseQuickFilter = function (newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsWrapper.isRowModelDefault()) {\n console.warn('AG Grid - Quick filtering only works with the Client-Side Row Model');\n return null;\n }\n return newFilter.toUpperCase();\n };\n FilterManager.prototype.setQuickFilter = function (newFilter) {\n if (newFilter != null && typeof newFilter !== 'string') {\n console.warn(\"AG Grid - setQuickFilter() only supports string inputs, received: \" + typeof newFilter);\n return;\n }\n var parsedFilter = this.parseQuickFilter(newFilter);\n if (this.quickFilter !== parsedFilter) {\n this.quickFilter = parsedFilter;\n this.setQuickFilterParts();\n this.onFilterChanged();\n }\n };\n FilterManager.prototype.refreshFiltersForAggregations = function () {\n var isAggFiltering = this.gridOptionsWrapper.getGroupAggFiltering();\n if (isAggFiltering) {\n this.onFilterChanged();\n }\n };\n // sometimes (especially in React) the filter can call onFilterChanged when we are in the middle\n // of a render cycle. this would be bad, so we wait for render cycle to complete when this happens.\n // this happens in react when we change React State in the grid (eg setting RowCtrl's in RowContainer)\n // which results in React State getting applied in the main application, triggering a useEffect() to\n // be kicked off adn then the application calling the grid's API. in AG-6554, the custom filter was\n // getting it's useEffect() triggered in this way.\n FilterManager.prototype.callOnFilterChangedOutsideRenderCycle = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var action = function () { return _this.onFilterChanged(params); };\n if (this.rowRenderer.isRefreshInProgress()) {\n setTimeout(action, 0);\n }\n else {\n action();\n }\n };\n FilterManager.prototype.onFilterChanged = function (params) {\n if (params === void 0) { params = {}; }\n var filterInstance = params.filterInstance, additionalEventAttributes = params.additionalEventAttributes, columns = params.columns;\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.externalFilterPresent = this.gridOptionsWrapper.isExternalFilterPresent();\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (!filterWrapper.filterPromise) {\n return;\n }\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter !== filterInstance && filter.onAnyFilterChanged) {\n filter.onAnyFilterChanged();\n }\n });\n });\n var filterChangedEvent = {\n type: Events.EVENT_FILTER_CHANGED,\n columns: columns || [],\n };\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n // because internal events are not async in ag-grid, when the dispatchEvent\n // method comes back, we know all listeners have finished executing.\n this.processingFilterChange = true;\n this.eventService.dispatchEvent(filterChangedEvent);\n this.processingFilterChange = false;\n };\n FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {\n // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing\n // changes when filtering\n return !this.allowShowChangeAfterFilter && this.processingFilterChange;\n };\n FilterManager.prototype.isQuickFilterPresent = function () {\n return this.quickFilter !== null;\n };\n FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n };\n FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {\n var _this = this;\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n return columns.some(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n return exists(part) && part.indexOf(filterPart) >= 0;\n });\n };\n FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {\n if (!node.quickFilterAggregateText) {\n this.aggregateRowForQuickFilter(node);\n }\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n };\n FilterManager.prototype.doesRowPassQuickFilter = function (node) {\n var _this = this;\n var usingCache = this.gridOptionsWrapper.isCacheQuickFilter();\n // each part must pass, if any fails, then the whole filter fails\n return this.quickFilterParts.every(function (part) {\n return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);\n });\n };\n FilterManager.prototype.doesRowPassAggregateFilters = function (params) {\n if (this.isAggregateFilterPresent() && !this.doAggregateFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.doesRowPassFilter = function (params) {\n // the row must pass ALL of the filters, so if any of them fail,\n // we return true. that means if a row passes the quick filter,\n // but fails the column filter, it fails overall\n // first up, check quick filter\n if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.isExternalFilterPresent() && !this.gridOptionsWrapper.doesExternalFilterPass(params.rowNode)) {\n return false;\n }\n // lastly, check column filter\n if (this.isColumnFilterPresent() && !this.doColumnFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {\n var value = this.valueService.getValue(column, node, true);\n var colDef = column.getColDef();\n if (colDef.getQuickFilterText) {\n var params = {\n value: value,\n node: node,\n data: node.data,\n column: column,\n colDef: colDef,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n };\n FilterManager.prototype.aggregateRowForQuickFilter = function (node) {\n var _this = this;\n var stringParts = [];\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n columns.forEach(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n if (exists(part)) {\n stringParts.push(part);\n }\n });\n node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);\n };\n FilterManager.prototype.onNewRowsLoaded = function (source) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n filterWrapper.filterPromise.then(function (filter) {\n if (filter.onNewRowsLoaded) {\n filter.onNewRowsLoaded();\n }\n });\n });\n this.updateFilterFlagInColumns(source);\n this.updateActiveFilters();\n };\n FilterManager.prototype.createValueGetter = function (column) {\n var _this = this;\n return function (_a) {\n var node = _a.node;\n return _this.valueService.getValue(column, node, true);\n };\n };\n FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n var _a;\n if (createIfDoesNotExist) {\n return ((_a = this.getOrCreateFilterWrapper(column, source)) === null || _a === void 0 ? void 0 : _a.filterPromise) || null;\n }\n var filterWrapper = this.cachedFilter(column);\n return filterWrapper ? filterWrapper.filterPromise : null;\n };\n FilterManager.prototype.isFilterActive = function (column) {\n var filterWrapper = this.cachedFilter(column);\n return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n };\n FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {\n if (!column.isFilterAllowed()) {\n return null;\n }\n var filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n this.allColumnFilters.set(column.getColId(), filterWrapper);\n }\n else if (source !== 'NO_UI') {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.cachedFilter = function (column) {\n return this.allColumnFilters.get(column.getColId());\n };\n FilterManager.prototype.createFilterInstance = function (column) {\n var _this = this;\n var defaultFilter = ModuleRegistry.isRegistered(ModuleNames.SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';\n var colDef = column.getColDef();\n var filterInstance;\n var params = __assign$7(__assign$7({}, this.createFilterParams(column, colDef)), { filterModifiedCallback: function () {\n var event = {\n type: Events.EVENT_FILTER_MODIFIED,\n column: column,\n filterInstance: filterInstance\n };\n _this.eventService.dispatchEvent(event);\n }, filterChangedCallback: function (additionalEventAttributes) {\n var params = { filterInstance: filterInstance, additionalEventAttributes: additionalEventAttributes, columns: [column] };\n _this.callOnFilterChangedOutsideRenderCycle(params);\n }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });\n var compDetails = this.userComponentFactory.getFilterDetails(colDef, params, defaultFilter);\n if (!compDetails) {\n return null;\n }\n var componentPromise = compDetails.newAgStackInstance();\n if (componentPromise) {\n componentPromise.then(function (r) { return filterInstance = r; });\n }\n return componentPromise;\n };\n FilterManager.prototype.createFilterParams = function (column, colDef) {\n var params = {\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n column: column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: function () { },\n filterModifiedCallback: function () { },\n valueGetter: this.createValueGetter(column),\n context: this.gridOptionsWrapper.getContext(),\n doesRowPassOtherFilter: function () { return true; },\n };\n return params;\n };\n FilterManager.prototype.createFilterWrapper = function (column, source) {\n var filterWrapper = {\n column: column,\n filterPromise: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null)\n };\n filterWrapper.filterPromise = this.createFilterInstance(column);\n if (filterWrapper.filterPromise) {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.putIntoGui = function (filterWrapper, source) {\n var _this = this;\n var eFilterGui = document.createElement('div');\n eFilterGui.className = 'ag-filter';\n filterWrapper.guiPromise = new AgPromise(function (resolve) {\n filterWrapper.filterPromise.then(function (filter) {\n var guiFromFilter = filter.getGui();\n if (!exists(guiFromFilter)) {\n console.warn(\"AG Grid: getGui method from filter returned \" + guiFromFilter + \", it should be a DOM element or an HTML template string.\");\n }\n // for backwards compatibility with Angular 1 - we\n // used to allow providing back HTML from getGui().\n // once we move away from supporting Angular 1\n // directly, we can change this.\n if (typeof guiFromFilter === 'string') {\n guiFromFilter = loadTemplate(guiFromFilter);\n }\n eFilterGui.appendChild(guiFromFilter);\n resolve(eFilterGui);\n var event = {\n type: Events.EVENT_FILTER_OPENED,\n column: filterWrapper.column,\n source: source,\n eGui: eFilterGui\n };\n _this.eventService.dispatchEvent(event);\n });\n });\n };\n FilterManager.prototype.onColumnsChanged = function () {\n var _this = this;\n var columns = [];\n this.allColumnFilters.forEach(function (wrapper, colId) {\n var currentColumn;\n if (wrapper.column.isPrimary()) {\n currentColumn = _this.columnModel.getPrimaryColumn(colId);\n }\n else {\n currentColumn = _this.columnModel.getGridColumn(colId);\n }\n if (currentColumn) {\n return;\n }\n columns.push(wrapper.column);\n _this.disposeFilterWrapper(wrapper, 'filterDestroyed');\n });\n if (columns.length > 0) {\n this.onFilterChanged({ columns: columns });\n }\n };\n // destroys the filter, so it not longer takes part\n FilterManager.prototype.destroyFilter = function (column, source) {\n if (source === void 0) { source = 'api'; }\n var filterWrapper = this.allColumnFilters.get(column.getColId());\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged({ columns: [column] });\n }\n };\n FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {\n var _this = this;\n filterWrapper.filterPromise.then(function (filter) {\n (filter.setModel(null) || AgPromise.resolve()).then(function () {\n _this.getContext().destroyBean(filter);\n filterWrapper.column.setFilterActive(false, source);\n _this.allColumnFilters.delete(filterWrapper.column.getColId());\n });\n });\n };\n FilterManager.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed'); });\n };\n var FilterManager_1;\n FilterManager.QUICK_FILTER_SEPARATOR = '\\n';\n __decorate$1U([\n Autowired('valueService')\n ], FilterManager.prototype, \"valueService\", void 0);\n __decorate$1U([\n Autowired('columnModel')\n ], FilterManager.prototype, \"columnModel\", void 0);\n __decorate$1U([\n Autowired('rowModel')\n ], FilterManager.prototype, \"rowModel\", void 0);\n __decorate$1U([\n Autowired('userComponentFactory')\n ], FilterManager.prototype, \"userComponentFactory\", void 0);\n __decorate$1U([\n Autowired('rowRenderer')\n ], FilterManager.prototype, \"rowRenderer\", void 0);\n __decorate$1U([\n PostConstruct\n ], FilterManager.prototype, \"init\", null);\n __decorate$1U([\n PreDestroy\n ], FilterManager.prototype, \"destroy\", null);\n FilterManager = FilterManager_1 = __decorate$1U([\n Bean('filterManager')\n ], FilterManager);\n return FilterManager;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AbstractHeaderCellComp = /** @class */ (function (_super) {\n __extends$25(AbstractHeaderCellComp, _super);\n function AbstractHeaderCellComp(template, ctrl) {\n var _this = _super.call(this, template) || this;\n _this.ctrl = ctrl;\n return _this;\n }\n AbstractHeaderCellComp.prototype.getCtrl = function () {\n return this.ctrl;\n };\n return AbstractHeaderCellComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellComp = /** @class */ (function (_super) {\n __extends$24(HeaderFilterCellComp, _super);\n function HeaderFilterCellComp(ctrl) {\n return _super.call(this, HeaderFilterCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderFilterCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveBodyCssClass: function (cssClassName, on) { return _this.eFloatingFilterBody.classList.toggle(cssClassName, on); },\n addOrRemoveButtonWrapperCssClass: function (cssClassName, on) { return _this.eButtonWrapper.classList.toggle(cssClassName, on); },\n setCompDetails: function (compDetails) { return _this.setCompDetails(compDetails); },\n getFloatingFilterComp: function () { return _this.compPromise; },\n setWidth: function (width) { return eGui.style.width = width; },\n setMenuIcon: function (eIcon) { return _this.eButtonShowMainFilter.appendChild(eIcon); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eButtonShowMainFilter, this.eFloatingFilterBody);\n };\n HeaderFilterCellComp.prototype.setCompDetails = function (compDetails) {\n var _this = this;\n // because we are providing defaultFloatingFilterType, we know it will never be undefined;\n this.compPromise = compDetails.newAgStackInstance();\n this.compPromise.then(function (comp) { return _this.afterCompCreated(comp); });\n };\n HeaderFilterCellComp.prototype.afterCompCreated = function (comp) {\n var _this = this;\n if (!comp) {\n return;\n }\n this.addDestroyFunc(function () { return _this.context.destroyBean(comp); });\n if (!this.isAlive()) {\n return;\n }\n this.eFloatingFilterBody.appendChild(comp.getGui());\n if (comp.afterGuiAttached) {\n comp.afterGuiAttached();\n }\n };\n HeaderFilterCellComp.TEMPLATE = \"
\\n
\\n
\\n \\n
\\n
\";\n __decorate$1T([\n RefSelector('eFloatingFilterBody')\n ], HeaderFilterCellComp.prototype, \"eFloatingFilterBody\", void 0);\n __decorate$1T([\n RefSelector('eButtonWrapper')\n ], HeaderFilterCellComp.prototype, \"eButtonWrapper\", void 0);\n __decorate$1T([\n RefSelector('eButtonShowMainFilter')\n ], HeaderFilterCellComp.prototype, \"eButtonShowMainFilter\", void 0);\n __decorate$1T([\n PostConstruct\n ], HeaderFilterCellComp.prototype, \"postConstruct\", null);\n return HeaderFilterCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LayoutCssClasses;\n(function (LayoutCssClasses) {\n LayoutCssClasses[\"AUTO_HEIGHT\"] = \"ag-layout-auto-height\";\n LayoutCssClasses[\"NORMAL\"] = \"ag-layout-normal\";\n LayoutCssClasses[\"PRINT\"] = \"ag-layout-print\";\n})(LayoutCssClasses || (LayoutCssClasses = {}));\nvar LayoutFeature = /** @class */ (function (_super) {\n __extends$23(LayoutFeature, _super);\n function LayoutFeature(view) {\n var _this = _super.call(this) || this;\n _this.view = view;\n return _this;\n }\n LayoutFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n };\n LayoutFeature.prototype.updateLayoutClasses = function () {\n var domLayout = this.gridOptionsWrapper.getDomLayout();\n var params = {\n autoHeight: domLayout === Constants.DOM_LAYOUT_AUTO_HEIGHT,\n normal: domLayout === Constants.DOM_LAYOUT_NORMAL,\n print: domLayout === Constants.DOM_LAYOUT_PRINT\n };\n var cssClass = params.autoHeight ? LayoutCssClasses.AUTO_HEIGHT :\n params.print ? LayoutCssClasses.PRINT : LayoutCssClasses.NORMAL;\n this.view.updateLayoutClasses(cssClass, params);\n };\n __decorate$1S([\n Autowired('gridOptionsWrapper')\n ], LayoutFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1S([\n PostConstruct\n ], LayoutFeature.prototype, \"postConstruct\", null);\n return LayoutFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridBodyScrollFeature = /** @class */ (function (_super) {\n __extends$22(GridBodyScrollFeature, _super);\n function GridBodyScrollFeature(eBodyViewport) {\n var _this = _super.call(this) || this;\n _this.scrollLeft = -1;\n _this.nextScrollTop = -1;\n _this.scrollTop = -1;\n _this.eBodyViewport = eBodyViewport;\n _this.resetLastHorizontalScrollElementDebounced = debounce(_this.resetLastHorizontalScrollElement.bind(_this), 500);\n return _this;\n }\n GridBodyScrollFeature.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n _this.onDisplayedColumnsWidthChanged();\n _this.addScrollListener();\n });\n };\n GridBodyScrollFeature.prototype.addScrollListener = function () {\n var fakeHScroll = this.ctrlsService.getFakeHScrollCtrl();\n this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onCenterViewportScroll.bind(this));\n this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHorizontalScroll.bind(this));\n var onVerticalScroll = this.gridOptionsWrapper.isDebounceVerticalScrollbar() ?\n debounce(this.onVerticalScroll.bind(this), 100)\n : this.onVerticalScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVerticalScroll);\n };\n GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n };\n GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {\n // when doing RTL, this method gets called once prematurely\n var notYetInitialised = this.centerRowContainerCtrl == null;\n if (notYetInitialised) {\n return;\n }\n if (scrollLeft === undefined) {\n scrollLeft = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n }\n var offset = this.enableRtl ? scrollLeft : -scrollLeft;\n var topCenterContainer = this.ctrlsService.getTopCenterRowContainerCtrl();\n var stickyTopCenterContainer = this.ctrlsService.getStickyTopCenterRowContainerCtrl();\n var bottomCenterContainer = this.ctrlsService.getBottomCenterRowContainerCtrl();\n var fakeHScroll = this.ctrlsService.getFakeHScrollCtrl();\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n centerHeaderContainer.setHorizontalScroll(offset);\n bottomCenterContainer.setContainerTranslateX(offset);\n topCenterContainer.setContainerTranslateX(offset);\n stickyTopCenterContainer.setContainerTranslateX(offset);\n var centerViewport = this.centerRowContainerCtrl.getViewportElement();\n var isCenterViewportLastHorizontal = this.lastHorizontalScrollElement === centerViewport;\n var partner = isCenterViewportLastHorizontal ?\n fakeHScroll.getViewport() :\n this.centerRowContainerCtrl.getViewportElement();\n setScrollLeft(partner, Math.abs(scrollLeft), this.enableRtl);\n };\n GridBodyScrollFeature.prototype.isControllingScroll = function (eDiv) {\n if (!this.lastHorizontalScrollElement) {\n this.lastHorizontalScrollElement = eDiv;\n return true;\n }\n return eDiv === this.lastHorizontalScrollElement;\n };\n GridBodyScrollFeature.prototype.onFakeHorizontalScroll = function () {\n var fakeHScrollViewport = this.ctrlsService.getFakeHScrollCtrl().getViewport();\n if (!this.isControllingScroll(fakeHScrollViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(fakeHScrollViewport);\n };\n GridBodyScrollFeature.prototype.onCenterViewportScroll = function () {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n if (!this.isControllingScroll(centerContainerViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(centerContainerViewport);\n };\n GridBodyScrollFeature.prototype.onBodyHorizontalScroll = function (eSource) {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n var scrollLeft = centerContainerViewport.scrollLeft;\n if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {\n return;\n }\n // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.\n // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200\n // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.\n // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,\n // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause\n // scroll to 200px, the next to 199px, then the first back to 198px and so on).\n this.doHorizontalScroll(Math.round(getScrollLeft(eSource, this.enableRtl)));\n this.resetLastHorizontalScrollElementDebounced();\n };\n GridBodyScrollFeature.prototype.onVerticalScroll = function () {\n var scrollTop = this.eBodyViewport.scrollTop;\n if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n else {\n this.animationFrameService.schedule();\n }\n };\n GridBodyScrollFeature.prototype.resetLastHorizontalScrollElement = function () {\n this.lastHorizontalScrollElement = null;\n };\n GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {\n var fakeHScrollViewport = this.ctrlsService.getFakeHScrollCtrl().getViewport();\n var fakeScrollLeft = getScrollLeft(fakeHScrollViewport, this.enableRtl);\n if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {\n return;\n }\n this.scrollLeft = scrollLeft;\n this.fireScrollEvent('horizontal');\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.onHorizontalViewportChanged();\n };\n GridBodyScrollFeature.prototype.fireScrollEvent = function (direction) {\n var _this = this;\n var bodyScrollEvent = {\n type: Events.EVENT_BODY_SCROLL,\n direction: direction,\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(bodyScrollEvent);\n window.clearTimeout(this.scrollTimer);\n this.scrollTimer = undefined;\n this.scrollTimer = window.setTimeout(function () {\n var bodyScrollEndEvent = Object.assign({}, bodyScrollEvent, {\n type: Events.EVENT_BODY_SCROLL_END\n });\n _this.eventService.dispatchEvent(bodyScrollEndEvent);\n }, 100);\n };\n GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n if (touchOnly === void 0) { touchOnly = false; }\n // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to\n // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event\n // could be 10px before the max position, and then current scroll event could be 20px after the max position).\n // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in\n // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.\n if (touchOnly && !isIOSUserAgent()) {\n return false;\n }\n if (direction === 'vertical') {\n var clientHeight = getInnerHeight(this.eBodyViewport);\n var scrollHeight = this.eBodyViewport.scrollHeight;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n }\n if (direction === 'horizontal') {\n var clientWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollWidth = this.centerRowContainerCtrl.getViewportElement().scrollWidth;\n if (this.enableRtl && isRtlNegativeScroll()) {\n if (scrollTo > 0) {\n return true;\n }\n }\n else if (scrollTo < 0) {\n return true;\n }\n if (Math.abs(scrollTo) + clientWidth > scrollWidth) {\n return true;\n }\n }\n return false;\n };\n GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {\n this.fireScrollEvent('vertical');\n };\n GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n };\n // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.\n // (which happens with some implementations of tabbing). this can result in horizontal scroll getting\n // reset back to the left, however no scroll event is fired. so we need to get header to also scroll\n // back to the left to be kept in sync.\n // adding and removing the grid from the DOM both resets the scroll position and\n // triggers a resize event, so notify listeners if the scroll position has changed\n GridBodyScrollFeature.prototype.checkScrollLeft = function () {\n if (this.scrollLeft !== this.centerRowContainerCtrl.getCenterViewportScrollLeft()) {\n this.onBodyHorizontalScroll(this.centerRowContainerCtrl.getViewportElement());\n }\n };\n GridBodyScrollFeature.prototype.executeAnimationFrameScroll = function () {\n var frameNeeded = this.scrollTop != this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n };\n // called by scrollHorizontally method and alignedGridsService\n GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {\n var minScrollLeft = 0;\n var maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();\n if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {\n if (this.enableRtl && isRtlNegativeScroll()) {\n hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;\n }\n else {\n hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);\n }\n }\n setScrollLeft(this.centerRowContainerCtrl.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n };\n GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n };\n GridBodyScrollFeature.prototype.getVScrollPosition = function () {\n var result = {\n top: this.eBodyViewport.scrollTop,\n bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight\n };\n return result;\n };\n GridBodyScrollFeature.prototype.getHScrollPosition = function () {\n return this.centerRowContainerCtrl.getHScrollPosition();\n };\n GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerRowContainerCtrl.isHorizontalScrollShowing();\n };\n // called by the headerRootComp and moveColumnController\n GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {\n var oldScrollPosition = this.centerRowContainerCtrl.getViewportElement().scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.centerRowContainerCtrl.getViewportElement().scrollLeft - oldScrollPosition;\n };\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n GridBodyScrollFeature.prototype.scrollToTop = function () {\n this.eBodyViewport.scrollTop = 0;\n };\n // Valid values for position are bottom, middle and top\n GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n // look for the node index we want to display\n var rowCount = this.rowModel.getRowCount();\n var indexToSelect = -1;\n // go through all the nodes, find the one we want to show\n for (var i = 0; i < rowCount; i++) {\n var node = this.rowModel.getRow(i);\n if (typeof comparator === 'function') {\n // Have to assert type here, as type could be TData & Function\n var predicate = comparator;\n if (node && predicate(node)) {\n indexToSelect = i;\n break;\n }\n }\n else {\n // check object equality against node and data\n if (comparator === node || comparator === node.data) {\n indexToSelect = i;\n break;\n }\n }\n }\n if (indexToSelect >= 0) {\n this.ensureIndexVisible(indexToSelect, position);\n }\n };\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {\n // if for print or auto height, everything is always visible\n if (this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.paginationProxy.goToPageWithIndex(index);\n }\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var stickyTopHeight = gridBodyCtrl.getStickyTopHeight();\n var rowNode = this.paginationProxy.getRow(index);\n var rowGotShiftedDuringOperation;\n do {\n var startingRowTop = rowNode.rowTop;\n var startingRowHeight = rowNode.rowHeight;\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var rowTopPixel = rowNode.rowTop - paginationOffset;\n var rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n var scrollPosition = this.getVScrollPosition();\n var heightOffset = this.heightScaler.getDivStretchOffset();\n var vScrollTop = scrollPosition.top + heightOffset;\n var vScrollBottom = scrollPosition.bottom + heightOffset;\n var viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n var rowAboveViewport = (vScrollTop + stickyTopHeight) > rowTopPixel;\n var rowBelowViewport = vScrollBottom < rowBottomPixel;\n var newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowAboveViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop - stickyTopHeight;\n }\n else if (rowBelowViewport) {\n // if row is after, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.eBodyViewport.scrollTop = newScrollPosition;\n this.rowRenderer.redrawAfterScroll();\n }\n // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n var column = this.columnModel.getGridColumn(key);\n if (!column) {\n return;\n }\n // calling ensureColumnVisible on a pinned column doesn't make sense\n if (column.isPinned()) {\n return;\n }\n // defensive\n if (!this.columnModel.isColumnDisplayed(column)) {\n return;\n }\n var newHorizontalScroll = this.getPositionedHorizontalScroll(column, position);\n if (newHorizontalScroll !== null) {\n this.centerRowContainerCtrl.setCenterViewportScrollLeft(newHorizontalScroll);\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within AG Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.getPositionedHorizontalScroll = function (column, position) {\n var _a = this.isColumnOutsideViewport(column), columnBeforeStart = _a.columnBeforeStart, columnAfterEnd = _a.columnAfterEnd;\n var viewportTooSmallForColumn = this.centerRowContainerCtrl.getCenterWidth() < column.getActualWidth();\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var isRtl = this.enableRtl;\n var alignColToStart = (isRtl ? columnBeforeStart : columnAfterEnd) || viewportTooSmallForColumn;\n var alignColToEnd = isRtl ? columnAfterEnd : columnBeforeStart;\n if (position !== 'auto') {\n alignColToStart = position === 'start';\n alignColToEnd = position === 'end';\n }\n var isMiddle = position === 'middle';\n if (alignColToStart || alignColToEnd || isMiddle) {\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colMiddle = _b.colMiddle, colRight = _b.colRight;\n if (isMiddle) {\n return colMiddle - viewportWidth / 2;\n }\n if (alignColToStart) {\n return isRtl ? colRight : colLeft;\n }\n return isRtl ? (colLeft - viewportWidth) : (colRight - viewportWidth);\n }\n return null;\n };\n GridBodyScrollFeature.prototype.isColumnOutsideViewport = function (column) {\n var _a = this.getViewportBounds(), viewportStart = _a.start, viewportEnd = _a.end;\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colRight = _b.colRight;\n var isRtl = this.enableRtl;\n var columnBeforeStart = isRtl ? (viewportStart > colRight) : (viewportEnd < colRight);\n var columnAfterEnd = isRtl ? (viewportEnd < colLeft) : (viewportStart > colLeft);\n return { columnBeforeStart: columnBeforeStart, columnAfterEnd: columnAfterEnd };\n };\n GridBodyScrollFeature.prototype.getColumnBounds = function (column) {\n var isRtl = this.enableRtl;\n var bodyWidth = this.columnModel.getBodyContainerWidth();\n var colWidth = column.getActualWidth();\n var colLeft = column.getLeft();\n var multiplier = isRtl ? -1 : 1;\n var colLeftPixel = isRtl ? (bodyWidth - colLeft) : colLeft;\n var colRightPixel = colLeftPixel + colWidth * multiplier;\n var colMidPixel = colLeftPixel + colWidth / 2 * multiplier;\n return { colLeft: colLeftPixel, colMiddle: colMidPixel, colRight: colRightPixel };\n };\n GridBodyScrollFeature.prototype.getViewportBounds = function () {\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n var viewportStartPixel = scrollPosition;\n var viewportEndPixel = viewportWidth + scrollPosition;\n return { start: viewportStartPixel, end: viewportEndPixel, width: viewportWidth };\n };\n __decorate$1R([\n Autowired('ctrlsService')\n ], GridBodyScrollFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1R([\n Autowired('animationFrameService')\n ], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n __decorate$1R([\n Autowired('paginationProxy')\n ], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1R([\n Autowired('rowModel')\n ], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n __decorate$1R([\n Autowired('rowContainerHeightService')\n ], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n __decorate$1R([\n Autowired('rowRenderer')\n ], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n __decorate$1R([\n Autowired('columnModel')\n ], GridBodyScrollFeature.prototype, \"columnModel\", void 0);\n __decorate$1R([\n PostConstruct\n ], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n return GridBodyScrollFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar AutoScrollService = /** @class */ (function () {\n function AutoScrollService(params) {\n this.tickingInterval = null;\n this.onScrollCallback = null;\n this.scrollContainer = params.scrollContainer;\n this.scrollHorizontally = params.scrollAxis.indexOf('x') !== -1;\n this.scrollVertically = params.scrollAxis.indexOf('y') !== -1;\n this.scrollByTick = params.scrollByTick != null ? params.scrollByTick : 20;\n if (params.onScrollCallback) {\n this.onScrollCallback = params.onScrollCallback;\n }\n if (this.scrollVertically) {\n this.getVerticalPosition = params.getVerticalPosition;\n this.setVerticalPosition = params.setVerticalPosition;\n }\n if (this.scrollHorizontally) {\n this.getHorizontalPosition = params.getHorizontalPosition;\n this.setHorizontalPosition = params.setHorizontalPosition;\n }\n this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (function () { return false; });\n this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (function () { return false; });\n }\n AutoScrollService.prototype.check = function (mouseEvent, forceSkipVerticalScroll) {\n if (forceSkipVerticalScroll === void 0) { forceSkipVerticalScroll = false; }\n var skipVerticalScroll = forceSkipVerticalScroll || this.shouldSkipVerticalScroll();\n if (skipVerticalScroll && this.shouldSkipHorizontalScroll()) {\n return;\n }\n var rect = this.scrollContainer.getBoundingClientRect();\n var scrollTick = this.scrollByTick;\n this.tickLeft = mouseEvent.clientX < (rect.left + scrollTick);\n this.tickRight = mouseEvent.clientX > (rect.right - scrollTick);\n this.tickUp = mouseEvent.clientY < (rect.top + scrollTick) && !skipVerticalScroll;\n this.tickDown = mouseEvent.clientY > (rect.bottom - scrollTick) && !skipVerticalScroll;\n if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {\n this.ensureTickingStarted();\n }\n else {\n this.ensureCleared();\n }\n };\n AutoScrollService.prototype.ensureTickingStarted = function () {\n if (this.tickingInterval === null) {\n this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);\n this.tickCount = 0;\n }\n };\n AutoScrollService.prototype.doTick = function () {\n this.tickCount++;\n var tickAmount;\n tickAmount = this.tickCount > 20 ? 200 : (this.tickCount > 10 ? 80 : 40);\n if (this.scrollVertically) {\n var vScrollPosition = this.getVerticalPosition();\n if (this.tickUp) {\n this.setVerticalPosition(vScrollPosition - tickAmount);\n }\n if (this.tickDown) {\n this.setVerticalPosition(vScrollPosition + tickAmount);\n }\n }\n if (this.scrollHorizontally) {\n var hScrollPosition = this.getHorizontalPosition();\n if (this.tickLeft) {\n this.setHorizontalPosition(hScrollPosition - tickAmount);\n }\n if (this.tickRight) {\n this.setHorizontalPosition(hScrollPosition + tickAmount);\n }\n }\n if (this.onScrollCallback) {\n this.onScrollCallback();\n }\n };\n AutoScrollService.prototype.ensureCleared = function () {\n if (this.tickingInterval) {\n window.clearInterval(this.tickingInterval);\n this.tickingInterval = null;\n }\n };\n return AutoScrollService;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$e = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$i(arguments[i]));\n return ar;\n};\nvar RowDragFeature = /** @class */ (function (_super) {\n __extends$21(RowDragFeature, _super);\n function RowDragFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.isMultiRowDrag = false;\n _this.isGridSorted = false;\n _this.isGridFiltered = false;\n _this.isRowGroupActive = false;\n _this.eContainer = eContainer;\n return _this;\n }\n RowDragFeature.prototype.postConstruct = function () {\n var _this = this;\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n var refreshStatus = function () {\n _this.onSortChanged();\n _this.onFilterChanged();\n _this.onRowGroupChanged();\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function () {\n refreshStatus();\n });\n refreshStatus();\n this.ctrlsService.whenReady(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCon.getBodyViewportElement(),\n scrollAxis: 'y',\n getVerticalPosition: function () { return gridBodyCon.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCon.getScrollFeature().setVerticalScrollPosition(position); },\n onScrollCallback: function () { _this.onDragging(_this.lastDraggingEvent); }\n });\n });\n };\n RowDragFeature.prototype.onSortChanged = function () {\n this.isGridSorted = this.sortController.isSortActive();\n };\n RowDragFeature.prototype.onFilterChanged = function () {\n this.isGridFiltered = this.filterManager.isAnyFilterPresent();\n };\n RowDragFeature.prototype.onRowGroupChanged = function () {\n var rowGroups = this.columnModel.getRowGroupColumns();\n this.isRowGroupActive = !missingOrEmpty(rowGroups);\n };\n RowDragFeature.prototype.getContainer = function () {\n return this.eContainer;\n };\n RowDragFeature.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.RowDrag;\n };\n RowDragFeature.prototype.getIconName = function () {\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag && this.shouldPreventRowMove()) {\n return DragAndDropService.ICON_NOT_ALLOWED;\n }\n return DragAndDropService.ICON_MOVE;\n };\n RowDragFeature.prototype.shouldPreventRowMove = function () {\n return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;\n };\n RowDragFeature.prototype.getRowNodes = function (draggingEvent) {\n var _this = this;\n if (!this.isFromThisGrid(draggingEvent)) {\n return draggingEvent.dragItem.rowNodes || [];\n }\n var isRowDragMultiRow = this.gridOptionsWrapper.isRowDragMultiRow();\n var selectedNodes = __spread$e(this.selectionService.getSelectedNodes()).sort(function (a, b) {\n if (a.rowIndex == null || b.rowIndex == null) {\n return 0;\n }\n return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b);\n });\n var currentNode = draggingEvent.dragItem.rowNode;\n if (isRowDragMultiRow && selectedNodes.indexOf(currentNode) !== -1) {\n this.isMultiRowDrag = true;\n return selectedNodes;\n }\n this.isMultiRowDrag = false;\n return [currentNode];\n };\n RowDragFeature.prototype.onDragEnter = function (draggingEvent) {\n // builds a lits of all rows being dragged before firing events\n draggingEvent.dragItem.rowNodes = this.getRowNodes(draggingEvent);\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(true);\n });\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragging = function (draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {\n var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;\n return dragSourceDomDataKey === this.gridOptionsWrapper.getDomDataKey();\n };\n RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var gridGui = gridBodyCon.getGui();\n var dropZoneTarget = draggingEvent.dropZoneTarget;\n return !gridGui.contains(dropZoneTarget);\n };\n RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {\n // this event is fired for enter and move\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.autoScrollService.check(draggingEvent.event);\n };\n RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {\n var isFromThisGrid = this.isFromThisGrid(draggingEvent);\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n var rowNodes = draggingEvent.dragItem.rowNodes;\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !isFromThisGrid) {\n if (!this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);\n }\n }\n else {\n this.moveRows(rowNodes, pixel);\n }\n };\n RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {\n return parseInt(last(rowNode.getRowIndexString().split('-')), 10);\n };\n RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {\n var _this = this;\n var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();\n var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === RowHighlightPosition.Below;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var rowNodes = draggingEvent.dragItem.rowNodes;\n var increment = isBelow ? 1 : 0;\n if (this.isFromThisGrid(draggingEvent)) {\n rowNodes.forEach(function (rowNode) {\n if (rowNode.rowTop < pixel) {\n increment -= 1;\n }\n });\n this.moveRows(rowNodes, pixel, increment);\n }\n else {\n var getRowIdFunc_1 = this.gridOptionsWrapper.getRowIdFunc();\n var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;\n if (this.clientSideRowModel.getHighlightPosition(pixel) === RowHighlightPosition.Above) {\n addIndex--;\n }\n this.clientSideRowModel.updateRowData({\n add: rowNodes\n .map(function (node) { return node.data; })\n .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowIdFunc_1 ? getRowIdFunc_1({ data: data, level: 0 }) : data.id); }),\n addIndex: addIndex\n });\n }\n this.clearRowHighlight();\n };\n RowDragFeature.prototype.clearRowHighlight = function () {\n this.clientSideRowModel.highlightRowAtPixel(null);\n };\n RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {\n if (increment === void 0) { increment = 0; }\n var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);\n if (rowWasMoved) {\n this.focusService.clearFocusedCell();\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n }\n };\n RowDragFeature.prototype.addRowDropZone = function (params) {\n var _this = this;\n if (!params.getContainer()) {\n doOnce(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');\n return;\n }\n if (this.dragAndDropService.findExternalZone(params)) {\n console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');\n return;\n }\n var processedParams = {\n getContainer: params.getContainer\n };\n if (params.fromGrid) {\n params.fromGrid = undefined;\n processedParams = params;\n }\n else {\n if (params.onDragEnter) {\n processedParams.onDragEnter = function (e) {\n params.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n };\n }\n if (params.onDragLeave) {\n processedParams.onDragLeave = function (e) {\n params.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n };\n }\n if (params.onDragging) {\n processedParams.onDragging = function (e) {\n params.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n };\n }\n if (params.onDragStop) {\n processedParams.onDragStop = function (e) {\n params.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n };\n }\n }\n this.dragAndDropService.addDropTarget(__assign$6({ isInterestedIn: function (type) { return type === DragSourceType.RowDrag; }, getIconName: function () { return DragAndDropService.ICON_MOVE; }, external: true }, processedParams));\n };\n RowDragFeature.prototype.getRowDropZone = function (events) {\n var _this = this;\n var getContainer = this.getContainer.bind(this);\n var onDragEnter = this.onDragEnter.bind(this);\n var onDragLeave = this.onDragLeave.bind(this);\n var onDragging = this.onDragging.bind(this);\n var onDragStop = this.onDragStop.bind(this);\n if (!events) {\n return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };\n }\n return {\n getContainer: getContainer,\n onDragEnter: events.onDragEnter\n ? (function (e) {\n onDragEnter(e);\n events.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n })\n : onDragEnter,\n onDragLeave: events.onDragLeave\n ? (function (e) {\n onDragLeave(e);\n events.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n })\n : onDragLeave,\n onDragging: events.onDragging\n ? (function (e) {\n onDragging(e);\n events.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n })\n : onDragging,\n onDragStop: events.onDragStop\n ? (function (e) {\n onDragStop(e);\n events.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n })\n : onDragStop,\n fromGrid: true /* @private */\n };\n };\n RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {\n var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();\n var overIndex = -1;\n var overNode;\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n var vDirectionString;\n switch (draggingEvent.vDirection) {\n case VerticalDirection.Down:\n vDirectionString = 'down';\n break;\n case VerticalDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n var event = {\n type: type,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n nodes: draggingEvent.dragItem.rowNodes,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n };\n return event;\n };\n RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {\n var event = this.draggingToRowDragEvent(type, draggingEvent);\n this.eventService.dispatchEvent(event);\n };\n RowDragFeature.prototype.onDragLeave = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged()) {\n this.clearRowHighlight();\n }\n if (this.isFromThisGrid(draggingEvent)) {\n this.isMultiRowDrag = false;\n }\n };\n RowDragFeature.prototype.onDragStop = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged() &&\n (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !this.isFromThisGrid(draggingEvent)) &&\n !this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.moveRowAndClearHighlight(draggingEvent);\n }\n };\n RowDragFeature.prototype.stopDragging = function (draggingEvent) {\n this.autoScrollService.ensureCleared();\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(false);\n });\n };\n __decorate$1Q([\n Autowired('dragAndDropService')\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1Q([\n Autowired('rowModel')\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate$1Q([\n Autowired('paginationProxy')\n ], RowDragFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1Q([\n Autowired('columnModel')\n ], RowDragFeature.prototype, \"columnModel\", void 0);\n __decorate$1Q([\n Autowired('focusService')\n ], RowDragFeature.prototype, \"focusService\", void 0);\n __decorate$1Q([\n Autowired('sortController')\n ], RowDragFeature.prototype, \"sortController\", void 0);\n __decorate$1Q([\n Autowired('filterManager')\n ], RowDragFeature.prototype, \"filterManager\", void 0);\n __decorate$1Q([\n Autowired('selectionService')\n ], RowDragFeature.prototype, \"selectionService\", void 0);\n __decorate$1Q([\n Autowired('mouseEventService')\n ], RowDragFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1Q([\n Autowired('ctrlsService')\n ], RowDragFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1Q([\n Optional('rangeService')\n ], RowDragFeature.prototype, \"rangeService\", void 0);\n __decorate$1Q([\n PostConstruct\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowAnimationCssClasses;\n(function (RowAnimationCssClasses) {\n RowAnimationCssClasses[\"ANIMATION_ON\"] = \"ag-row-animation\";\n RowAnimationCssClasses[\"ANIMATION_OFF\"] = \"ag-row-no-animation\";\n})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));\nvar CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nvar CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nvar CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nvar GridBodyCtrl = /** @class */ (function (_super) {\n __extends$20(GridBodyCtrl, _super);\n function GridBodyCtrl() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.stickyTopHeight = 0;\n return _this;\n }\n GridBodyCtrl.prototype.getScrollFeature = function () {\n return this.bodyScrollFeature;\n };\n GridBodyCtrl.prototype.getBodyViewportElement = function () {\n return this.eBodyViewport;\n };\n GridBodyCtrl.prototype.setComp = function (comp, eGridBody, eBodyViewport, eTop, eBottom, eStickyTop) {\n this.comp = comp;\n this.eGridBody = eGridBody;\n this.eBodyViewport = eBodyViewport;\n this.eTop = eTop;\n this.eBottom = eBottom;\n this.eStickyTop = eStickyTop;\n this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());\n this.createManagedBean(new LayoutFeature(this.comp));\n this.bodyScrollFeature = this.createManagedBean(new GridBodyScrollFeature(this.eBodyViewport));\n this.addRowDragListener();\n this.setupRowAnimationCssClass();\n this.addEventListeners();\n this.addFocusListeners([eTop, eBodyViewport, eBottom, eStickyTop]);\n this.onGridColumnsChanged();\n this.addBodyViewportListener();\n this.setFloatingHeights();\n this.disableBrowserDragging();\n this.addStopEditingWhenGridLosesFocus();\n this.ctrlsService.registerGridBodyCtrl(this);\n };\n GridBodyCtrl.prototype.getComp = function () {\n return this.comp;\n };\n GridBodyCtrl.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n };\n GridBodyCtrl.prototype.addFocusListeners = function (elements) {\n var _this = this;\n elements.forEach(function (element) {\n _this.addManagedListener(element, 'focusin', function (e) {\n var target = e.target;\n // element being focused is nested?\n var isFocusedElementNested = isElementChildOfClass(target, 'ag-root', element);\n element.classList.toggle('ag-has-focus', !isFocusedElementNested);\n });\n _this.addManagedListener(element, 'focusout', function (e) {\n var target = e.target, relatedTarget = e.relatedTarget;\n var gridContainRelatedTarget = element.contains(relatedTarget);\n var isNestedRelatedTarget = isElementChildOfClass(relatedTarget, 'ag-root', element);\n var isNestedTarget = isElementChildOfClass(target, 'ag-root', element);\n // element losing focus belongs to a nested grid,\n // it should not be handled here.\n if (isNestedTarget) {\n return;\n }\n // the grid does not contain, or the focus element is within\n // a nested grid\n if (!gridContainRelatedTarget || isNestedRelatedTarget) {\n element.classList.remove('ag-has-focus');\n }\n });\n });\n };\n // used by ColumnAnimationService\n GridBodyCtrl.prototype.setColumnMovingCss = function (moving) {\n this.comp.setColumnMovingCss(moving ? CSS_CLASS_COLUMN_MOVING : null, moving);\n };\n GridBodyCtrl.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n var cssClass = selectable ? CSS_CLASS_CELL_SELECTABLE : null;\n this.comp.setCellSelectableCss(cssClass, selectable);\n };\n GridBodyCtrl.prototype.onScrollVisibilityChanged = function () {\n var visible = this.scrollVisibleService.isVerticalScrollShowing();\n this.setVerticalScrollPaddingVisible(visible);\n this.setStickyTopWidth(visible);\n };\n GridBodyCtrl.prototype.onGridColumnsChanged = function () {\n var columns = this.columnModel.getAllGridColumns();\n this.comp.setColumnCount(columns ? columns.length : 0);\n };\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n GridBodyCtrl.prototype.disableBrowserDragging = function () {\n this.addManagedListener(this.eGridBody, 'dragstart', function (event) {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n };\n GridBodyCtrl.prototype.addStopEditingWhenGridLosesFocus = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus()) {\n return;\n }\n var focusOutListener = function (event) {\n // this is the element the focus is moving to\n var elementWithFocus = event.relatedTarget;\n if (getTabIndex(elementWithFocus) === null) {\n _this.rowRenderer.stopEditing();\n return;\n }\n var clickInsideGrid = \n // see if click came from inside the viewports\n viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })\n // and also that it's not from a detail grid\n && _this.mouseEventService.isElementInThisGrid(elementWithFocus);\n if (!clickInsideGrid) {\n var popupService = _this.popupService;\n clickInsideGrid =\n popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||\n popupService.isElementWithinCustomPopup(elementWithFocus);\n }\n if (!clickInsideGrid) {\n _this.rowRenderer.stopEditing();\n }\n };\n var viewports = [this.eBodyViewport, this.eBottom, this.eTop, this.eStickyTop];\n viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });\n };\n GridBodyCtrl.prototype.updateRowCount = function () {\n var headerCount = this.headerNavigationService.getHeaderRowCount();\n var rowCount = this.rowModel.isLastRowIndexKnown() ? this.rowModel.getRowCount() : -1;\n var total = rowCount === -1 ? -1 : (headerCount + rowCount);\n this.comp.setRowCount(total);\n };\n GridBodyCtrl.prototype.registerBodyViewportResizeListener = function (listener) {\n this.comp.registerBodyViewportResizeListener(listener);\n };\n GridBodyCtrl.prototype.setVerticalScrollPaddingVisible = function (visible) {\n var overflowY = visible ? 'scroll' : 'hidden';\n this.comp.setPinnedTopBottomOverflowY(overflowY);\n };\n GridBodyCtrl.prototype.isVerticalScrollShowing = function () {\n var show = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();\n var cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;\n var allowVerticalScroll = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n this.comp.setAlwaysVerticalScrollClass(cssClass, show);\n return show || (allowVerticalScroll && isVerticalScrollShowing(this.eBodyViewport));\n };\n GridBodyCtrl.prototype.setupRowAnimationCssClass = function () {\n var _this = this;\n var listener = function () {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.rowContainerHeightService.isStretching();\n var animateRowsCssClass = animateRows ? RowAnimationCssClasses.ANIMATION_ON : RowAnimationCssClasses.ANIMATION_OFF;\n _this.comp.setRowAnimationCssOnBodyViewport(animateRowsCssClass, animateRows);\n };\n listener();\n this.addManagedListener(this.eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n };\n GridBodyCtrl.prototype.getGridBodyElement = function () {\n return this.eGridBody;\n };\n GridBodyCtrl.prototype.addBodyViewportListener = function () {\n var _this = this;\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n var listener = function (mouseEvent, touch, touchEvent) {\n if (!mouseEvent && !touchEvent) {\n return;\n }\n if (_this.gridOptionsWrapper.isPreventDefaultOnContextMenu()) {\n var event_1 = (mouseEvent || touchEvent);\n event_1.preventDefault();\n }\n var target = (mouseEvent || touch).target;\n if (target === _this.eBodyViewport || target === _this.ctrlsService.getCenterRowContainerCtrl().getViewportElement()) {\n // show it\n if (_this.contextMenuFactory) {\n if (mouseEvent) {\n _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);\n }\n else if (touchEvent) {\n _this.contextMenuFactory.onContextMenu(null, touchEvent, null, null, null, _this.eGridBody);\n }\n }\n }\n };\n this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);\n this.mockContextMenuForIPad(listener);\n this.addManagedListener(this.eBodyViewport, 'wheel', this.onBodyViewportWheel.bind(this));\n this.addManagedListener(this.eStickyTop, 'wheel', this.onStickyTopWheel.bind(this));\n };\n GridBodyCtrl.prototype.mockContextMenuForIPad = function (listener) {\n // we do NOT want this when not in iPad\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.eBodyViewport);\n var longTapListener = function (event) {\n listener(undefined, event.touchStart, event.touchEvent);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n GridBodyCtrl.prototype.onBodyViewportWheel = function (e) {\n if (!this.gridOptionsWrapper.isSuppressScrollWhenPopupsAreOpen()) {\n return;\n }\n if (this.popupService.hasAnchoredPopup()) {\n e.preventDefault();\n }\n };\n GridBodyCtrl.prototype.onStickyTopWheel = function (e) {\n e.preventDefault();\n if (e.offsetY) {\n this.scrollVertically(e.deltaY);\n }\n };\n GridBodyCtrl.prototype.getGui = function () {\n return this.eGridBody;\n };\n // called by rowDragFeature\n GridBodyCtrl.prototype.scrollVertically = function (pixels) {\n var oldScrollPosition = this.eBodyViewport.scrollTop;\n this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n };\n GridBodyCtrl.prototype.addRowDragListener = function () {\n this.rowDragFeature = this.createManagedBean(new RowDragFeature(this.eBodyViewport));\n this.dragAndDropService.addDropTarget(this.rowDragFeature);\n };\n GridBodyCtrl.prototype.getRowDragFeature = function () {\n return this.rowDragFeature;\n };\n GridBodyCtrl.prototype.onPinnedRowDataChanged = function () {\n this.setFloatingHeights();\n };\n GridBodyCtrl.prototype.setFloatingHeights = function () {\n var pinnedRowModel = this.pinnedRowModel;\n var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n if (floatingTopHeight) {\n // adding 1px for cell bottom border\n floatingTopHeight += 1;\n }\n var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n if (floatingBottomHeight) {\n // adding 1px for cell bottom border\n floatingBottomHeight += 1;\n }\n this.comp.setTopHeight(floatingTopHeight);\n this.comp.setBottomHeight(floatingBottomHeight);\n this.comp.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');\n this.comp.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');\n this.setStickyTopOffsetTop();\n };\n GridBodyCtrl.prototype.setStickyTopHeight = function (height) {\n if (height === void 0) { height = 0; }\n // console.log('setting sticky top height ' + height);\n this.comp.setStickyTopHeight(height + \"px\");\n this.stickyTopHeight = height;\n };\n GridBodyCtrl.prototype.getStickyTopHeight = function () {\n return this.stickyTopHeight;\n };\n GridBodyCtrl.prototype.setStickyTopWidth = function (vScrollVisible) {\n if (!vScrollVisible) {\n this.comp.setStickyTopWidth('100%');\n }\n else {\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n this.comp.setStickyTopWidth(\"calc(100% - \" + scrollbarWidth + \"px)\");\n }\n };\n GridBodyCtrl.prototype.onHeaderHeightChanged = function () {\n this.setStickyTopOffsetTop();\n };\n GridBodyCtrl.prototype.setStickyTopOffsetTop = function () {\n var headerCtrl = this.ctrlsService.getGridHeaderCtrl();\n var headerHeight = headerCtrl.getHeaderHeight();\n var pinnedTopHeight = this.pinnedRowModel.getPinnedTopTotalHeight();\n var height = 0;\n if (headerHeight > 0) {\n height += headerHeight + 1;\n }\n if (pinnedTopHeight > 0) {\n height += pinnedTopHeight + 1;\n }\n this.comp.setStickyTopTop(height + \"px\");\n };\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n GridBodyCtrl.prototype.sizeColumnsToFit = function (params, nextTimeout) {\n var _this = this;\n var removeScrollWidth = this.isVerticalScrollShowing();\n var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsWrapper.getScrollbarWidth() : 0;\n var bodyViewportWidth = getInnerWidth(this.eBodyViewport);\n var availableWidth = bodyViewportWidth - scrollWidthToRemove;\n if (availableWidth > 0) {\n this.columnModel.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\", false, params);\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, 100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, 500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, -1);\n }, 500);\n }\n else {\n console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n };\n // + rangeService\n GridBodyCtrl.prototype.addScrollEventListener = function (listener) {\n this.eBodyViewport.addEventListener('scroll', listener);\n };\n // + focusService\n GridBodyCtrl.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate$1P([\n Autowired('rowContainerHeightService')\n ], GridBodyCtrl.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1P([\n Autowired('ctrlsService')\n ], GridBodyCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1P([\n Autowired('columnModel')\n ], GridBodyCtrl.prototype, \"columnModel\", void 0);\n __decorate$1P([\n Autowired('scrollVisibleService')\n ], GridBodyCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1P([\n Optional('contextMenuFactory')\n ], GridBodyCtrl.prototype, \"contextMenuFactory\", void 0);\n __decorate$1P([\n Autowired('headerNavigationService')\n ], GridBodyCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1P([\n Autowired('dragAndDropService')\n ], GridBodyCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1P([\n Autowired('pinnedRowModel')\n ], GridBodyCtrl.prototype, \"pinnedRowModel\", void 0);\n __decorate$1P([\n Autowired('rowRenderer')\n ], GridBodyCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1P([\n Autowired('popupService')\n ], GridBodyCtrl.prototype, \"popupService\", void 0);\n __decorate$1P([\n Autowired('mouseEventService')\n ], GridBodyCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$1P([\n Autowired('rowModel')\n ], GridBodyCtrl.prototype, \"rowModel\", void 0);\n return GridBodyCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar SelectionHandleType;\n(function (SelectionHandleType) {\n SelectionHandleType[SelectionHandleType[\"FILL\"] = 0] = \"FILL\";\n SelectionHandleType[SelectionHandleType[\"RANGE\"] = 1] = \"RANGE\";\n})(SelectionHandleType || (SelectionHandleType = {}));\nvar CellRangeType;\n(function (CellRangeType) {\n CellRangeType[CellRangeType[\"VALUE\"] = 0] = \"VALUE\";\n CellRangeType[CellRangeType[\"DIMENSION\"] = 1] = \"DIMENSION\";\n})(CellRangeType || (CellRangeType = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar CSS_CELL_RANGE_SELECTED = 'ag-cell-range-selected';\nvar CSS_CELL_RANGE_CHART = 'ag-cell-range-chart';\nvar CSS_CELL_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';\nvar CSS_CELL_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';\nvar CSS_CELL_RANGE_HANDLE = 'ag-cell-range-handle';\nvar CSS_CELL_RANGE_TOP = 'ag-cell-range-top';\nvar CSS_CELL_RANGE_RIGHT = 'ag-cell-range-right';\nvar CSS_CELL_RANGE_BOTTOM = 'ag-cell-range-bottom';\nvar CSS_CELL_RANGE_LEFT = 'ag-cell-range-left';\nvar CellRangeFeature = /** @class */ (function () {\n function CellRangeFeature(beans, ctrl) {\n this.beans = beans;\n this.cellCtrl = ctrl;\n }\n CellRangeFeature.prototype.setComp = function (cellComp, eGui) {\n this.cellComp = cellComp;\n this.eGui = eGui;\n this.onRangeSelectionChanged();\n };\n CellRangeFeature.prototype.onRangeSelectionChanged = function () {\n // when using reactUi, given UI is async, it's possible this method is called before the comp is registered\n if (!this.cellComp) {\n return;\n }\n this.rangeCount = this.beans.rangeService.getCellRangeCount(this.cellCtrl.getCellPosition());\n this.hasChartRange = this.getHasChartRange();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED, this.rangeCount !== 0);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-1\", this.rangeCount === 1);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-2\", this.rangeCount === 2);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-3\", this.rangeCount === 3);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-4\", this.rangeCount >= 4);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART, this.hasChartRange);\n setAriaSelected(this.eGui, this.rangeCount > 0 ? true : undefined);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SINGLE_CELL, this.isSingleCell());\n this.updateRangeBorders();\n this.refreshHandle();\n };\n CellRangeFeature.prototype.updateRangeBorders = function () {\n var rangeBorders = this.getRangeBorders();\n var isSingleCell = this.isSingleCell();\n var isTop = !isSingleCell && rangeBorders.top;\n var isRight = !isSingleCell && rangeBorders.right;\n var isBottom = !isSingleCell && rangeBorders.bottom;\n var isLeft = !isSingleCell && rangeBorders.left;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_TOP, isTop);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_RIGHT, isRight);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_BOTTOM, isBottom);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_LEFT, isLeft);\n };\n CellRangeFeature.prototype.isSingleCell = function () {\n var rangeService = this.beans.rangeService;\n return this.rangeCount === 1 && rangeService && !rangeService.isMoreThanOneCell();\n };\n CellRangeFeature.prototype.getHasChartRange = function () {\n var rangeService = this.beans.rangeService;\n if (!this.rangeCount || !rangeService) {\n return false;\n }\n var cellRanges = rangeService.getCellRanges();\n return cellRanges.length > 0 && cellRanges.every(function (range) { return includes([CellRangeType.DIMENSION, CellRangeType.VALUE], range.type); });\n };\n CellRangeFeature.prototype.updateRangeBordersIfRangeCount = function () {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n };\n CellRangeFeature.prototype.getRangeBorders = function () {\n var _this = this;\n var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var top = false;\n var right = false;\n var bottom = false;\n var left = false;\n var thisCol = this.cellCtrl.getCellPosition().column;\n var _a = this.beans, rangeService = _a.rangeService, columnModel = _a.columnModel;\n var leftCol;\n var rightCol;\n if (isRtl) {\n leftCol = columnModel.getDisplayedColAfter(thisCol);\n rightCol = columnModel.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = columnModel.getDisplayedColBefore(thisCol);\n rightCol = columnModel.getDisplayedColAfter(thisCol);\n }\n var ranges = rangeService.getCellRanges().filter(function (range) { return rangeService.isCellInSpecificRange(_this.cellCtrl.getCellPosition(), range); });\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (var i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n var range = ranges[i];\n var startRow = rangeService.getRangeStartRow(range);\n var endRow = rangeService.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellCtrl.getCellPosition())) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellCtrl.getCellPosition())) {\n bottom = true;\n }\n if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top: top, right: right, bottom: bottom, left: left };\n };\n CellRangeFeature.prototype.refreshHandle = function () {\n if (!this.beans.rangeService) {\n return;\n }\n var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_HANDLE, !!this.selectionHandle);\n };\n CellRangeFeature.prototype.shouldHaveSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeService = _a.rangeService;\n var cellRanges = rangeService.getCellRanges();\n var rangesLen = cellRanges.length;\n if (this.rangeCount < 1 || rangesLen < 1) {\n return false;\n }\n var cellRange = last(cellRanges);\n var cellPosition = this.cellCtrl.getCellPosition();\n var isFillHandleAvailable = gridOptionsWrapper.isEnableFillHandle() && !this.cellCtrl.isSuppressFillHandle();\n var isRangeHandleAvailable = gridOptionsWrapper.isEnableRangeHandle();\n var handleIsAvailable = rangesLen === 1 && !this.cellCtrl.isEditing() && (isFillHandleAvailable || isRangeHandleAvailable);\n if (this.hasChartRange) {\n var hasCategoryRange = cellRanges[0].type === CellRangeType.DIMENSION;\n var isCategoryCell = hasCategoryRange && rangeService.isCellInSpecificRange(cellPosition, cellRanges[0]);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART_CATEGORY, isCategoryCell);\n handleIsAvailable = cellRange.type === CellRangeType.VALUE;\n }\n return handleIsAvailable &&\n cellRange.endRow != null &&\n rangeService.isContiguousRange(cellRange) &&\n rangeService.isBottomRightCell(cellRange, cellPosition);\n };\n CellRangeFeature.prototype.addSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeService = _a.rangeService;\n var cellRangeType = last(rangeService.getCellRanges()).type;\n var selectionHandleFill = gridOptionsWrapper.isEnableFillHandle() && missing(cellRangeType);\n var type = selectionHandleFill ? SelectionHandleType.FILL : SelectionHandleType.RANGE;\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (!this.selectionHandle) {\n this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);\n }\n this.selectionHandle.refresh(this.cellCtrl);\n };\n CellRangeFeature.prototype.destroy = function () {\n this.beans.context.destroyBean(this.selectionHandle);\n };\n return CellRangeFeature;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Takes care of:\n * #) Cell Width (including when doing cell spanning, which makes width cover many columns)\n * #) Cell Height (when doing row span, otherwise we don't touch the height as it's just row height)\n * #) Cell Left (the horizontal positioning of the cell, the vertical positioning is on the row)\n */\nvar CellPositionFeature = /** @class */ (function (_super) {\n __extends$1$(CellPositionFeature, _super);\n function CellPositionFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n _this.setupColSpan();\n _this.setupRowSpan();\n return _this;\n }\n CellPositionFeature.prototype.setupRowSpan = function () {\n this.rowSpan = this.column.getRowSpan(this.rowNode);\n };\n CellPositionFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n this.onLeftChanged();\n this.onWidthChanged();\n this.applyRowSpan();\n };\n CellPositionFeature.prototype.onDisplayColumnsChanged = function () {\n var colsSpanning = this.getColSpanningList();\n if (!areEqual(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n };\n CellPositionFeature.prototype.setupColSpan = function () {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (this.column.getColDef().colSpan == null) {\n return;\n }\n this.colsSpanning = this.getColSpanningList();\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n };\n CellPositionFeature.prototype.onWidthChanged = function () {\n if (!this.eGui) {\n return;\n }\n var width = this.getCellWidth();\n this.eGui.style.width = width + \"px\";\n };\n CellPositionFeature.prototype.getCellWidth = function () {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n CellPositionFeature.prototype.getColSpanningList = function () {\n var colSpan = this.column.getColSpan(this.rowNode);\n var colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n var pointer = this.column;\n var pinned = this.column.getPinned();\n for (var i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnModel.getDisplayedColAfter(pointer);\n if (!pointer || missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n };\n CellPositionFeature.prototype.onLeftChanged = function () {\n if (!this.eGui) {\n return;\n }\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.eGui.style.left = left + 'px';\n };\n CellPositionFeature.prototype.getCellLeft = function () {\n var mostLeftCol;\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n mostLeftCol = last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n };\n CellPositionFeature.prototype.modifyLeftForPrintLayout = function (leftPosition) {\n if (!this.cellCtrl.isPrintLayout() || this.column.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + (leftPosition || 0);\n }\n // is in body\n return leftWidth + (leftPosition || 0);\n };\n CellPositionFeature.prototype.applyRowSpan = function () {\n if (this.rowSpan === 1) {\n return;\n }\n var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();\n var totalRowHeight = singleRowHeight * this.rowSpan;\n this.eGui.style.height = totalRowHeight + \"px\";\n this.eGui.style.zIndex = '1';\n };\n // overriding to make public, as we don't dispose this bean via context\n CellPositionFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellPositionFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellCustomStyleFeature = /** @class */ (function (_super) {\n __extends$1_(CellCustomStyleFeature, _super);\n function CellCustomStyleFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.staticClasses = [];\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n return _this;\n }\n CellCustomStyleFeature.prototype.setComp = function (comp) {\n this.cellComp = comp;\n this.applyUserStyles();\n this.applyCellClassRules();\n this.applyClassesFromColDef();\n };\n CellCustomStyleFeature.prototype.applyCellClassRules = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n column: this.column,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); }, function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n };\n CellCustomStyleFeature.prototype.applyUserStyles = function () {\n var colDef = this.column.getColDef();\n if (!colDef.cellStyle) {\n return;\n }\n var styles;\n if (typeof colDef.cellStyle === 'function') {\n var cellStyleParams = {\n column: this.column,\n value: this.cellCtrl.getValue(),\n colDef: colDef,\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n };\n var cellStyleFunc = colDef.cellStyle;\n styles = cellStyleFunc(cellStyleParams);\n }\n else {\n styles = colDef.cellStyle;\n }\n this.cellComp.setUserStyles(styles);\n };\n CellCustomStyleFeature.prototype.applyClassesFromColDef = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n column: this.column,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n }\n this.staticClasses = this.beans.stylingService.getStaticCellClasses(colDef, cellClassParams);\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); });\n }\n };\n // overriding to make public, as we don't dispose this bean via context\n CellCustomStyleFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellCustomStyleFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipFeature = /** @class */ (function (_super) {\n __extends$1Z(TooltipFeature, _super);\n function TooltipFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.ctrl = ctrl;\n _this.beans = beans;\n return _this;\n }\n TooltipFeature.prototype.setComp = function (comp) {\n this.comp = comp;\n this.setupTooltip();\n };\n TooltipFeature.prototype.setupTooltip = function () {\n this.browserTooltips = this.beans.gridOptionsWrapper.isEnableBrowserTooltips();\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);\n }\n else {\n this.createTooltipFeatureIfNeeded();\n }\n };\n TooltipFeature.prototype.updateTooltipText = function () {\n this.tooltip = this.ctrl.getTooltipValue();\n };\n TooltipFeature.prototype.createTooltipFeatureIfNeeded = function () {\n var _this = this;\n if (this.genericTooltipFeature != null) {\n return;\n }\n var parent = {\n getTooltipParams: function () { return _this.getTooltipParams(); },\n getGui: function () { return _this.ctrl.getGui(); }\n };\n this.genericTooltipFeature = this.createManagedBean(new CustomTooltipFeature(parent), this.beans.context);\n };\n TooltipFeature.prototype.refreshToolTip = function () {\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);\n }\n };\n TooltipFeature.prototype.getTooltipParams = function () {\n var ctrl = this.ctrl;\n var column = ctrl.getColumn ? ctrl.getColumn() : undefined;\n var colDef = ctrl.getColDef ? ctrl.getColDef() : undefined;\n var rowNode = ctrl.getRowNode ? ctrl.getRowNode() : undefined;\n return {\n location: ctrl.getLocation(),\n colDef: colDef,\n column: column,\n rowIndex: ctrl.getRowIndex ? ctrl.getRowIndex() : undefined,\n node: rowNode,\n data: rowNode ? rowNode.data : undefined,\n value: this.getTooltipText(),\n valueFormatted: ctrl.getValueFormatted ? ctrl.getValueFormatted() : undefined,\n };\n };\n TooltipFeature.prototype.getTooltipText = function () {\n return this.tooltip;\n };\n // overriding to make public, as we don't dispose this bean via context\n TooltipFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return TooltipFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Using the IoC has a slight performance consideration, which is no problem most of the\n * time, unless we are trashing objects - which is the case when scrolling and rowComp\n * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired\n * with the IoC. Instead they get passed this object which is all the beans the RowComp\n * and CellComp need. Not autowiring all the cells gives performance improvement. */\nvar Beans = /** @class */ (function () {\n function Beans() {\n }\n Beans.prototype.postConstruct = function () {\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n this.serverSideRowModel = this.rowModel;\n }\n };\n __decorate$1O([\n Autowired('resizeObserverService')\n ], Beans.prototype, \"resizeObserverService\", void 0);\n __decorate$1O([\n Autowired('paginationProxy')\n ], Beans.prototype, \"paginationProxy\", void 0);\n __decorate$1O([\n Autowired('context')\n ], Beans.prototype, \"context\", void 0);\n __decorate$1O([\n Autowired('columnApi')\n ], Beans.prototype, \"columnApi\", void 0);\n __decorate$1O([\n Autowired('gridApi')\n ], Beans.prototype, \"gridApi\", void 0);\n __decorate$1O([\n Autowired('gridOptionsWrapper')\n ], Beans.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1O([\n Autowired('expressionService')\n ], Beans.prototype, \"expressionService\", void 0);\n __decorate$1O([\n Autowired('rowRenderer')\n ], Beans.prototype, \"rowRenderer\", void 0);\n __decorate$1O([\n Autowired('templateService')\n ], Beans.prototype, \"templateService\", void 0);\n __decorate$1O([\n Autowired('valueService')\n ], Beans.prototype, \"valueService\", void 0);\n __decorate$1O([\n Autowired('eventService')\n ], Beans.prototype, \"eventService\", void 0);\n __decorate$1O([\n Autowired('columnModel')\n ], Beans.prototype, \"columnModel\", void 0);\n __decorate$1O([\n Autowired('headerNavigationService')\n ], Beans.prototype, \"headerNavigationService\", void 0);\n __decorate$1O([\n Autowired('navigationService')\n ], Beans.prototype, \"navigationService\", void 0);\n __decorate$1O([\n Autowired('columnAnimationService')\n ], Beans.prototype, \"columnAnimationService\", void 0);\n __decorate$1O([\n Optional('rangeService')\n ], Beans.prototype, \"rangeService\", void 0);\n __decorate$1O([\n Autowired('focusService')\n ], Beans.prototype, \"focusService\", void 0);\n __decorate$1O([\n Optional('contextMenuFactory')\n ], Beans.prototype, \"contextMenuFactory\", void 0);\n __decorate$1O([\n Autowired('popupService')\n ], Beans.prototype, \"popupService\", void 0);\n __decorate$1O([\n Autowired('valueFormatterService')\n ], Beans.prototype, \"valueFormatterService\", void 0);\n __decorate$1O([\n Autowired('stylingService')\n ], Beans.prototype, \"stylingService\", void 0);\n __decorate$1O([\n Autowired('columnHoverService')\n ], Beans.prototype, \"columnHoverService\", void 0);\n __decorate$1O([\n Autowired('userComponentFactory')\n ], Beans.prototype, \"userComponentFactory\", void 0);\n __decorate$1O([\n Autowired('userComponentRegistry')\n ], Beans.prototype, \"userComponentRegistry\", void 0);\n __decorate$1O([\n Autowired('animationFrameService')\n ], Beans.prototype, \"animationFrameService\", void 0);\n __decorate$1O([\n Autowired('dragAndDropService')\n ], Beans.prototype, \"dragAndDropService\", void 0);\n __decorate$1O([\n Autowired('sortController')\n ], Beans.prototype, \"sortController\", void 0);\n __decorate$1O([\n Autowired('filterManager')\n ], Beans.prototype, \"filterManager\", void 0);\n __decorate$1O([\n Autowired('rowContainerHeightService')\n ], Beans.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1O([\n Autowired('frameworkOverrides')\n ], Beans.prototype, \"frameworkOverrides\", void 0);\n __decorate$1O([\n Autowired('cellPositionUtils')\n ], Beans.prototype, \"cellPositionUtils\", void 0);\n __decorate$1O([\n Autowired('rowPositionUtils')\n ], Beans.prototype, \"rowPositionUtils\", void 0);\n __decorate$1O([\n Autowired('selectionService')\n ], Beans.prototype, \"selectionService\", void 0);\n __decorate$1O([\n Optional('selectionHandleFactory')\n ], Beans.prototype, \"selectionHandleFactory\", void 0);\n __decorate$1O([\n Autowired('rowCssClassCalculator')\n ], Beans.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1O([\n Autowired('rowModel')\n ], Beans.prototype, \"rowModel\", void 0);\n __decorate$1O([\n Autowired('ctrlsService')\n ], Beans.prototype, \"ctrlsService\", void 0);\n __decorate$1O([\n Autowired('ctrlsFactory')\n ], Beans.prototype, \"ctrlsFactory\", void 0);\n __decorate$1O([\n Autowired('agStackComponentsRegistry')\n ], Beans.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$1O([\n Autowired('valueCache')\n ], Beans.prototype, \"valueCache\", void 0);\n __decorate$1O([\n Autowired('rowNodeEventThrottle')\n ], Beans.prototype, \"rowNodeEventThrottle\", void 0);\n __decorate$1O([\n PostConstruct\n ], Beans.prototype, \"postConstruct\", null);\n Beans = __decorate$1O([\n Bean('beans')\n ], Beans);\n return Beans;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellMouseListenerFeature = /** @class */ (function (_super) {\n __extends$1Y(CellMouseListenerFeature, _super);\n function CellMouseListenerFeature(ctrl, beans, column) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = column;\n return _this;\n }\n CellMouseListenerFeature.prototype.onMouseEvent = function (eventName, mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n case 'touchstart':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n };\n CellMouseListenerFeature.prototype.onCellClicked = function (mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var multiKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;\n if (rangeService && multiKeyPressed) {\n // the mousedown event has created the range already, so we only intersect if there is more than one\n // range on this cell\n if (rangeService.getCellRangeCount(this.cellCtrl.getCellPosition()) > 1) {\n rangeService.intersectLastRange(true);\n }\n }\n var cellClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_CLICKED);\n eventService.dispatchEvent(cellClickedEvent);\n var colDef = this.column.getColDef();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);\n }\n var editOnSingleClick = (gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)\n && !gridOptionsWrapper.isSuppressClickEdit();\n if (editOnSingleClick) {\n this.cellCtrl.startRowOrCellEdit();\n }\n };\n // returns true if on iPad and this is second 'click' event in 200ms\n CellMouseListenerFeature.prototype.isDoubleClickOnIPad = function () {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) {\n return false;\n }\n var nowMillis = new Date().getTime();\n var res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n };\n CellMouseListenerFeature.prototype.onCellDoubleClicked = function (mouseEvent) {\n var colDef = this.column.getColDef();\n // always dispatch event to eventService\n var cellDoubleClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);\n }\n var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()\n && !this.beans.gridOptionsWrapper.isSuppressClickEdit();\n if (editOnDoubleClick) {\n this.cellCtrl.startRowOrCellEdit(null, null, mouseEvent);\n }\n };\n CellMouseListenerFeature.prototype.onMouseDown = function (mouseEvent) {\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n var target = mouseEvent.target;\n var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService;\n // do not change the range for right-clicks inside an existing range\n if (this.isRightClickInExistingRange(mouseEvent)) {\n return;\n }\n var ranges = rangeService && rangeService.getCellRanges().length != 0;\n if (!shiftKey || !ranges) {\n // We only need to pass true to focusCell when the browser is IE/Edge/Safari and we are trying\n // to focus the cell itself. This should never be true if the mousedown was triggered\n // due to a click on a cell editor for example.\n var forceBrowserFocus = (isBrowserEdge() || isBrowserSafari()) && !this.cellCtrl.isEditing() && !isFocusableFormField(target);\n this.cellCtrl.focusCell(forceBrowserFocus);\n }\n // if shift clicking, and a range exists, we keep the focus on the cell that started the\n // range as the user then changes the range selection.\n if (shiftKey && ranges) {\n // this stops the cell from getting focused\n mouseEvent.preventDefault();\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (this.containsWidget(target)) {\n return;\n }\n if (rangeService) {\n var thisCell = this.cellCtrl.getCellPosition();\n if (shiftKey) {\n rangeService.extendLatestRangeToCell(thisCell);\n }\n else {\n var ctrlKeyPressed = ctrlKey || metaKey;\n rangeService.setRangeToCell(thisCell, ctrlKeyPressed);\n }\n }\n eventService.dispatchEvent(this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_DOWN));\n };\n CellMouseListenerFeature.prototype.isRightClickInExistingRange = function (mouseEvent) {\n var rangeService = this.beans.rangeService;\n if (rangeService) {\n var cellInRange = rangeService.isCellInAnyRange(this.cellCtrl.getCellPosition());\n if (cellInRange && mouseEvent.button === 2) {\n return true;\n }\n }\n return false;\n };\n CellMouseListenerFeature.prototype.containsWidget = function (target) {\n return isElementChildOfClass(target, 'ag-selection-checkbox', 3);\n };\n CellMouseListenerFeature.prototype.onMouseOut = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOutEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n };\n CellMouseListenerFeature.prototype.onMouseOver = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOverEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n };\n CellMouseListenerFeature.prototype.mouseStayingInsideCell = function (e) {\n if (!e.target || !e.relatedTarget) {\n return false;\n }\n var eGui = this.cellCtrl.getGui();\n var cellContainsTarget = eGui.contains(e.target);\n var cellContainsRelatedTarget = eGui.contains(e.relatedTarget);\n return cellContainsTarget && cellContainsRelatedTarget;\n };\n CellMouseListenerFeature.prototype.destroy = function () {\n };\n return CellMouseListenerFeature;\n}(Beans));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellKeyboardListenerFeature = /** @class */ (function (_super) {\n __extends$1X(CellKeyboardListenerFeature, _super);\n function CellKeyboardListenerFeature(ctrl, beans, column, rowNode, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.rowCtrl = rowCtrl;\n return _this;\n }\n CellKeyboardListenerFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n };\n CellKeyboardListenerFeature.prototype.onKeyDown = function (event) {\n var key = event.key;\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.F2:\n this.onF2KeyDown(event);\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n this.onBackspaceOrDeleteKeyPressed(key, event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyPressed(event, key);\n break;\n }\n };\n CellKeyboardListenerFeature.prototype.onNavigationKeyPressed = function (event, key) {\n if (this.cellCtrl.isEditing()) {\n return;\n }\n if (event.shiftKey && this.cellCtrl.isRangeSelectionEnabled()) {\n this.onShiftRangeSelect(event);\n }\n else {\n this.beans.navigationService.navigateToNextCell(event, key, this.cellCtrl.getCellPosition(), true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.onShiftRangeSelect = function (event) {\n if (!this.beans.rangeService) {\n return;\n }\n var endCell = this.beans.rangeService.extendLatestRangeInDirection(event);\n if (endCell) {\n this.beans.navigationService.ensureCellVisible(endCell);\n }\n };\n CellKeyboardListenerFeature.prototype.onTabKeyDown = function (event) {\n this.beans.navigationService.onTabKeyDown(this.cellCtrl, event);\n };\n CellKeyboardListenerFeature.prototype.onBackspaceOrDeleteKeyPressed = function (key, event) {\n var _a = this, cellCtrl = _a.cellCtrl, beans = _a.beans, rowNode = _a.rowNode;\n var gridOptionsWrapper = beans.gridOptionsWrapper, rangeService = beans.rangeService, eventService = beans.eventService;\n if (cellCtrl.isEditing()) {\n return;\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START });\n if (isDeleteKey(key, gridOptionsWrapper.isEnableCellEditingOnBackspace())) {\n if (rangeService && gridOptionsWrapper.isEnableRangeSelection()) {\n rangeService.clearCellRangeCellValues();\n }\n else if (cellCtrl.isCellEditable()) {\n rowNode.setDataValue(cellCtrl.getColumn(), null, 'cellKeyboardListenerFeature');\n }\n }\n else {\n cellCtrl.startRowOrCellEdit(key, undefined, event);\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END });\n };\n CellKeyboardListenerFeature.prototype.onEnterKeyDown = function (e) {\n if (this.cellCtrl.isEditing() || this.rowCtrl.isEditing()) {\n this.cellCtrl.stopEditingAndFocus();\n }\n else {\n if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {\n this.beans.navigationService.navigateToNextCell(null, KeyCode.DOWN, this.cellCtrl.getCellPosition(), false);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(KeyCode.ENTER, undefined, e);\n if (this.cellCtrl.isEditing()) {\n // if we started editing, then we need to prevent default, otherwise the Enter action can get\n // applied to the cell editor. this happened, for example, with largeTextCellEditor where not\n // preventing default results in a 'new line' character getting inserted in the text area\n // when the editing was started\n e.preventDefault();\n }\n }\n }\n };\n CellKeyboardListenerFeature.prototype.onF2KeyDown = function (event) {\n if (!this.cellCtrl.isEditing()) {\n this.cellCtrl.startRowOrCellEdit(KeyCode.F2, undefined, event);\n }\n };\n CellKeyboardListenerFeature.prototype.onEscapeKeyDown = function (event) {\n if (this.cellCtrl.isEditing()) {\n this.cellCtrl.stopRowOrCellEdit(true);\n this.cellCtrl.focusCell(true);\n }\n };\n CellKeyboardListenerFeature.prototype.onKeyPress = function (event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n var eventTarget = event.target;\n var eventOnChildComponent = eventTarget !== this.eGui;\n if (eventOnChildComponent || this.cellCtrl.isEditing()) {\n return;\n }\n var pressedChar = String.fromCharCode(event.charCode);\n if (pressedChar === ' ') {\n this.onSpaceKeyPressed(event);\n }\n else if (isEventFromPrintableCharacter(event)) {\n this.cellCtrl.startRowOrCellEdit(null, pressedChar, event);\n // if we don't prevent default, then the keypress also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n };\n CellKeyboardListenerFeature.prototype.onSpaceKeyPressed = function (event) {\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!this.cellCtrl.isEditing() && gridOptionsWrapper.isRowSelection()) {\n var currentSelection = this.rowNode.isSelected();\n var newSelection = !currentSelection;\n if (newSelection || !gridOptionsWrapper.isSuppressRowDeselection()) {\n var groupSelectsFiltered = this.beans.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n }\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellKeyboardListenerFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DndSourceComp = /** @class */ (function (_super) {\n __extends$1W(DndSourceComp, _super);\n function DndSourceComp(rowNode, column, beans, eCell) {\n var _this = _super.call(this, \"
\") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.beans = beans;\n _this.eCell = eCell;\n return _this;\n }\n DndSourceComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n // we need to stop the event propagation here to avoid starting a range selection while dragging\n this.addGuiEventListener('mousedown', function (e) {\n e.stopPropagation();\n });\n this.addDragSource();\n this.checkVisibility();\n };\n DndSourceComp.prototype.addDragSource = function () {\n this.addGuiEventListener('dragstart', this.onDragStart.bind(this));\n };\n DndSourceComp.prototype.onDragStart = function (dragEvent) {\n var _this = this;\n var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;\n dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);\n // default behaviour is to convert data to json and set into drag component\n var defaultOnRowDrag = function () {\n try {\n var jsonData = JSON.stringify(_this.rowNode.data);\n dragEvent.dataTransfer.setData('application/json', jsonData);\n dragEvent.dataTransfer.setData('text/plain', jsonData);\n }\n catch (e) {\n // if we cannot convert the data to json, then we do not set the type\n }\n };\n if (providedOnRowDrag) {\n var params = {\n rowNode: this.rowNode, dragEvent: dragEvent,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n providedOnRowDrag(params);\n }\n else {\n defaultOnRowDrag();\n }\n };\n DndSourceComp.prototype.checkVisibility = function () {\n var visible = this.column.isDndSource(this.rowNode);\n this.setDisplayed(visible);\n };\n __decorate$1N([\n PostConstruct\n ], DndSourceComp.prototype, \"postConstruct\", null);\n return DndSourceComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar CSS_CELL = 'ag-cell';\nvar CSS_AUTO_HEIGHT = 'ag-cell-auto-height';\nvar CSS_NORMAL_HEIGHT = 'ag-cell-normal-height';\nvar CSS_CELL_FOCUS = 'ag-cell-focus';\nvar CSS_CELL_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';\nvar CSS_CELL_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';\nvar CSS_CELL_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';\nvar CSS_CELL_INLINE_EDITING = 'ag-cell-inline-editing';\nvar CSS_CELL_POPUP_EDITING = 'ag-cell-popup-editing';\nvar CSS_COLUMN_HOVER = 'ag-column-hover';\nvar CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';\nvar instanceIdSequence$3 = 0;\nvar CellCtrl = /** @class */ (function (_super) {\n __extends$1V(CellCtrl, _super);\n function CellCtrl(column, rowNode, beans, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.suppressRefreshCell = false;\n _this.onCellCompAttachedFuncs = [];\n _this.column = column;\n _this.rowNode = rowNode;\n _this.beans = beans;\n _this.rowCtrl = rowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = column.getId() + '-' + instanceIdSequence$3++;\n _this.createCellPosition();\n _this.addFeatures();\n return _this;\n }\n CellCtrl.prototype.addFeatures = function () {\n var _this = this;\n this.cellPositionFeature = new CellPositionFeature(this, this.beans);\n this.addDestroyFunc(function () { return _this.cellPositionFeature.destroy(); });\n this.cellCustomStyleFeature = new CellCustomStyleFeature(this, this.beans);\n this.addDestroyFunc(function () { return _this.cellCustomStyleFeature.destroy(); });\n this.cellMouseListenerFeature = new CellMouseListenerFeature(this, this.beans, this.column);\n this.addDestroyFunc(function () { return _this.cellMouseListenerFeature.destroy(); });\n this.cellKeyboardListenerFeature = new CellKeyboardListenerFeature(this, this.beans, this.column, this.rowNode, this.rowCtrl);\n this.addDestroyFunc(function () { return _this.cellKeyboardListenerFeature.destroy(); });\n var rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.cellRangeFeature = new CellRangeFeature(this.beans, this);\n this.addDestroyFunc(function () { return _this.cellRangeFeature.destroy(); });\n }\n this.addTooltipFeature();\n };\n CellCtrl.prototype.addTooltipFeature = function () {\n var _this = this;\n var getTooltipValue = function () {\n var colDef = _this.column.getColDef();\n var data = _this.rowNode.data;\n if (colDef.tooltipField && exists(data)) {\n return getValueUsingField(data, colDef.tooltipField, _this.column.isTooltipFieldContainsDots());\n }\n var valueGetter = colDef.tooltipValueGetter;\n if (valueGetter) {\n return valueGetter({\n location: 'cell',\n api: _this.beans.gridOptionsWrapper.getApi(),\n columnApi: _this.beans.gridOptionsWrapper.getColumnApi(),\n context: _this.beans.gridOptionsWrapper.getContext(),\n colDef: _this.column.getColDef(),\n column: _this.column,\n rowIndex: _this.cellPosition.rowIndex,\n node: _this.rowNode,\n data: _this.rowNode.data,\n value: _this.value,\n valueFormatted: _this.valueFormatted,\n });\n }\n return null;\n };\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getRowIndex: function () { return _this.cellPosition.rowIndex; },\n getRowNode: function () { return _this.rowNode; },\n getGui: function () { return _this.getGui(); },\n getLocation: function () { return 'cell'; },\n getTooltipValue: getTooltipValue,\n // this makes no sense, why is the cell formatted value passed to the tooltip???\n getValueFormatted: function () { return _this.valueFormatted; }\n };\n this.tooltipFeature = new TooltipFeature(tooltipCtrl, this.beans);\n this.addDestroyFunc(function () { return _this.tooltipFeature.destroy(); });\n };\n CellCtrl.prototype.setComp = function (comp, eGui, eCellWrapper, printLayout, startEditing) {\n this.cellComp = comp;\n this.gow = this.beans.gridOptionsWrapper;\n this.eGui = eGui;\n this.printLayout = printLayout;\n // we force to make sure formatter gets called at least once,\n // even if value has not changed (is is undefined)\n this.updateAndFormatValue(true);\n this.addDomData();\n this.onCellFocused();\n this.applyStaticCssClasses();\n this.setWrapText();\n this.onFirstRightPinnedChanged();\n this.onLastLeftPinnedChanged();\n this.onColumnHover();\n this.setupControlComps();\n if (eCellWrapper) {\n this.setupAutoHeight(eCellWrapper);\n }\n this.setAriaColIndex();\n if (!this.gow.isSuppressCellFocus()) {\n this.cellComp.setTabIndex(-1);\n }\n var colIdSanitised = escapeString(this.column.getId());\n this.cellComp.setColId(colIdSanitised);\n this.cellComp.setRole('gridcell');\n this.cellPositionFeature.setComp(eGui);\n this.cellCustomStyleFeature.setComp(comp);\n this.tooltipFeature.setComp(comp);\n this.cellKeyboardListenerFeature.setComp(this.eGui);\n if (this.cellRangeFeature) {\n this.cellRangeFeature.setComp(comp, eGui);\n }\n if (startEditing && this.isCellEditable()) {\n this.startEditing();\n }\n else {\n this.showValue();\n }\n if (this.onCellCompAttachedFuncs.length) {\n this.onCellCompAttachedFuncs.forEach(function (func) { return func(); });\n this.onCellCompAttachedFuncs = [];\n }\n };\n CellCtrl.prototype.setupAutoHeight = function (eCellWrapper) {\n var _this = this;\n if (!this.column.isAutoHeight()) {\n return;\n }\n var eParentCell = eCellWrapper.parentElement;\n // taking minRowHeight from getRowHeightForNode means the getRowHeight() callback is used,\n // thus allowing different min heights for different rows.\n var minRowHeight = this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height;\n var measureHeight = function (timesCalled) {\n if (_this.editing) {\n return;\n }\n // because of the retry's below, it's possible the retry's go beyond\n // the rows life.\n if (!_this.isAlive()) {\n return;\n }\n var _a = getElementSize(eParentCell), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;\n var wrapperHeight = eCellWrapper.offsetHeight;\n var autoHeight = wrapperHeight + paddingTop + paddingBottom;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n var doc = _this.beans.gridOptionsWrapper.getDocument();\n var notYetInDom = !doc || !doc.contains(eCellWrapper);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n var possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);\n return;\n }\n }\n var newHeight = Math.max(autoHeight, minRowHeight);\n _this.rowNode.setRowAutoHeight(newHeight, _this.column);\n };\n var listener = function () { return measureHeight(0); };\n // do once to set size in case size doesn't change, common when cell is blank\n listener();\n var destroyResizeObserver = this.beans.resizeObserverService.observeResize(eCellWrapper, listener);\n this.addDestroyFunc(function () {\n destroyResizeObserver();\n _this.rowNode.setRowAutoHeight(undefined, _this.column);\n });\n };\n CellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n CellCtrl.prototype.showValue = function (forceNewCellRendererInstance) {\n if (forceNewCellRendererInstance === void 0) { forceNewCellRendererInstance = false; }\n var valueToDisplay = this.valueFormatted != null ? this.valueFormatted : this.value;\n var params = this.createCellRendererParams();\n var compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);\n this.cellComp.setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance);\n this.refreshHandle();\n };\n CellCtrl.prototype.setupControlComps = function () {\n var colDef = this.column.getColDef();\n this.includeSelection = this.isIncludeControl(colDef.checkboxSelection);\n this.includeRowDrag = this.isIncludeControl(colDef.rowDrag);\n this.includeDndSource = this.isIncludeControl(colDef.dndSource);\n this.cellComp.setIncludeSelection(this.includeSelection);\n this.cellComp.setIncludeDndSource(this.includeDndSource);\n this.cellComp.setIncludeRowDrag(this.includeRowDrag);\n };\n CellCtrl.prototype.isForceWrapper = function () {\n // text selection requires the value to be wrapped in another element\n var forceWrapper = this.beans.gridOptionsWrapper.isEnableCellTextSelection() || this.column.isAutoHeight();\n return forceWrapper;\n };\n CellCtrl.prototype.isIncludeControl = function (value) {\n var rowNodePinned = this.rowNode.rowPinned != null;\n var isFunc = typeof value === 'function';\n var res = rowNodePinned ? false : isFunc || value === true;\n return res;\n };\n CellCtrl.prototype.refreshShouldDestroy = function () {\n var colDef = this.column.getColDef();\n var selectionChanged = this.includeSelection != this.isIncludeControl(colDef.checkboxSelection);\n var rowDragChanged = this.includeRowDrag != this.isIncludeControl(colDef.rowDrag);\n var dndSourceChanged = this.includeDndSource != this.isIncludeControl(colDef.dndSource);\n return selectionChanged || rowDragChanged || dndSourceChanged;\n };\n // either called internally if single cell editing, or called by rowRenderer if row editing\n CellCtrl.prototype.startEditing = function (key, charPress, cellStartedEdit, event) {\n var _this = this;\n if (key === void 0) { key = null; }\n if (charPress === void 0) { charPress = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n if (event === void 0) { event = null; }\n var _a, _b;\n if (!this.isCellEditable() || this.editing) {\n return;\n }\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached\n if (!this.cellComp) {\n this.onCellCompAttachedFuncs.push(function () { _this.startEditing(key, charPress, cellStartedEdit, event); });\n return;\n }\n var editorParams = this.createCellEditorParams(key, charPress, cellStartedEdit);\n var colDef = this.column.getColDef();\n var compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);\n // if cellEditorSelector was used, we give preference to popup and popupPosition from the selector\n var popup = ((_a = compDetails) === null || _a === void 0 ? void 0 : _a.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;\n var position = ((_b = compDetails) === null || _b === void 0 ? void 0 : _b.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;\n this.setEditing(true, popup);\n this.cellComp.setEditDetails(compDetails, popup, position);\n var e = this.createEvent(event, Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(e);\n };\n CellCtrl.prototype.setEditing = function (editing, inPopup) {\n if (inPopup === void 0) { inPopup = false; }\n if (this.editing === editing) {\n return;\n }\n this.editing = editing;\n this.editingInPopup = inPopup;\n this.setInlineEditingClass();\n this.refreshHandle();\n };\n // pass in 'true' to cancel the editing.\n CellCtrl.prototype.stopRowOrCellEdit = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowCtrl.stopRowEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n };\n CellCtrl.prototype.onPopupEditorClosed = function () {\n if (!this.isEditing()) {\n return;\n }\n // note: this happens because of a click outside of the grid or if the popupEditor\n // is closed with `Escape` key. if another cell was clicked, then the editing will\n // have already stopped and returned on the conditional above.\n this.stopEditingAndFocus();\n };\n CellCtrl.prototype.takeValueFromCellEditor = function (cancel) {\n var noValueResult = { newValueExists: false };\n if (cancel) {\n return noValueResult;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (!cellEditor) {\n return noValueResult;\n }\n var userWantsToCancel = cellEditor.isCancelAfterEnd && cellEditor.isCancelAfterEnd();\n if (userWantsToCancel) {\n return noValueResult;\n }\n var newValue = cellEditor.getValue();\n return {\n newValue: newValue,\n newValueExists: true\n };\n };\n /**\n * @returns `True` if the value changes, otherwise `False`.\n */\n CellCtrl.prototype.saveNewValue = function (oldValue, newValue) {\n if (newValue === oldValue) {\n return false;\n }\n if (this.beans.gridOptionsWrapper.isReadOnlyEdit()) {\n this.dispatchEventForSaveValueReadOnly(oldValue, newValue);\n return false;\n }\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n var valueChanged = this.rowNode.setDataValue(this.column, newValue);\n this.suppressRefreshCell = false;\n return valueChanged;\n };\n CellCtrl.prototype.dispatchEventForSaveValueReadOnly = function (oldValue, newValue) {\n var rowNode = this.rowNode;\n var event = {\n type: Events.EVENT_CELL_EDIT_REQUEST,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: this.column,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n colDef: this.column.getColDef(),\n context: this.beans.gridOptionsWrapper.getContext(),\n data: rowNode.data,\n node: rowNode,\n oldValue: oldValue,\n newValue: newValue,\n value: newValue,\n source: undefined\n };\n this.beans.eventService.dispatchEvent(event);\n };\n /**\n * Ends the Cell Editing\n * @param cancel `True` if the edit process is being canceled.\n * @returns `True` if the value of the `GridCell` has been updated, otherwise `False`.\n */\n CellCtrl.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (!this.editing) {\n return false;\n }\n var _a = this.takeValueFromCellEditor(cancel), newValue = _a.newValue, newValueExists = _a.newValueExists;\n var oldValue = this.getValueFromValueService();\n var valueChanged = false;\n if (newValueExists) {\n valueChanged = this.saveNewValue(oldValue, newValue);\n }\n this.setEditing(false);\n this.cellComp.setEditDetails(); // passing nothing stops editing\n this.updateAndFormatValue();\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n this.dispatchEditingStoppedEvent(oldValue, newValue, !cancel && !!valueChanged);\n return valueChanged;\n };\n CellCtrl.prototype.dispatchEditingStoppedEvent = function (oldValue, newValue, valueChanged) {\n var editingStoppedEvent = __assign$5(__assign$5({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,\n newValue: newValue,\n valueChanged: valueChanged });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n };\n // if we are editing inline, then we don't have the padding in the cell (set in the themes)\n // to allow the text editor full access to the entire cell\n CellCtrl.prototype.setInlineEditingClass = function () {\n var _this = this;\n if (!this.isAlive()) {\n return;\n }\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached\n if (!this.cellComp) {\n this.onCellCompAttachedFuncs.push(function () { _this.setInlineEditingClass(); });\n return;\n }\n // ag-cell-inline-editing - appears when user is inline editing\n // ag-cell-not-inline-editing - appears when user is no inline editing\n // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)\n // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.\n // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}\n // and {ag-cell-not-inline-editing} showing at the same time.\n var editingInline = this.editing && !this.editingInPopup;\n var popupEditorShowing = this.editing && this.editingInPopup;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_INLINE_EDITING, editingInline);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, !editingInline);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_POPUP_EDITING, popupEditorShowing);\n this.rowCtrl.setInlineEditingCss(this.editing);\n };\n // this is needed as the JS CellComp still allows isPopup() on the CellEditor class, so\n // it's possible the editor is in a popup even though it's not configured via the colDef as so\n CellCtrl.prototype.hackSayEditingInPopup = function () {\n if (this.editingInPopup) {\n return;\n }\n this.editingInPopup = true;\n this.setInlineEditingClass();\n };\n CellCtrl.prototype.createCellEditorParams = function (key, charPress, cellStartedEdit) {\n var res = {\n value: this.getValueFromValueService(),\n key: key,\n eventKey: key,\n charPress: charPress,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.getCellPosition().rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n api: this.beans.gridOptionsWrapper.getApi(),\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n };\n return res;\n };\n CellCtrl.prototype.createCellRendererParams = function () {\n var _this = this;\n var addRowCompListener = function (eventType, listener) {\n console.warn('AG Grid: since AG Grid v26, params.addRowCompListener() is deprecated. If you need this functionality, please contact AG Grid support and advise why so that we can revert with an appropriate workaround, as we dont have any valid use cases for it. This method was originally provided as a work around to know when cells were destroyed in AG Grid before custom Cell Renderers could be provided.');\n _this.rowCtrl.addEventListener(eventType, listener);\n };\n var res = {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: this.getValueFromValueService.bind(this),\n setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n pinned: this.column.getPinned(),\n colDef: this.column.getColDef(),\n column: this.column,\n rowIndex: this.getCellPosition().rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.cellComp.getParentOfValue(),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.registerRowDragger(rowDraggerElement, dragStartPixels, suppressVisibilityChange); },\n // this function is not documented anywhere, so we could drop it\n // it was in the olden days to allow user to register for when rendered\n // row was removed (the row comp was removed), however now that the user\n // can provide components for cells, the destroy method gets call when this\n // happens so no longer need to fire event.\n addRowCompListener: addRowCompListener\n };\n return res;\n };\n CellCtrl.prototype.parseValue = function (newValue) {\n var colDef = this.column.getColDef();\n var params = {\n node: this.rowNode,\n data: this.rowNode.data,\n oldValue: this.getValue(),\n newValue: newValue,\n colDef: colDef,\n column: this.column,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n var valueParser = colDef.valueParser;\n return exists(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;\n };\n CellCtrl.prototype.setFocusOutOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusOut) {\n cellEditor.focusOut();\n }\n };\n CellCtrl.prototype.setFocusInOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n };\n CellCtrl.prototype.onCellChanged = function (event) {\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so no need to refresh.\n if (!this.cellComp) {\n return;\n }\n var eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n };\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowCtrl: event dataChanged {suppressFlash: !update, newData: !update}\n // + rowCtrl: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n CellCtrl.prototype.refreshCell = function (params) {\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editing) {\n return;\n }\n // In React, due to async, it's possible a refresh was asked for before the CellComp\n // has been set. If this happens, we skip the refresh, as the cell is going to be\n // initialised anyway once the CellComp is set.\n if (!this.cellComp) {\n return;\n }\n var colDef = this.column.getColDef();\n var newData = params != null && !!params.newData;\n var suppressFlash = (params != null && !!params.suppressFlash) || !!colDef.suppressCellFlash;\n // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the\n // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe\n // printing the current time (which would be silly)???. Generally speaking\n // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's\n // best always refresh and take the performance hit rather than never refresh and users complaining in support\n // that cells are not updating.\n var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;\n var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;\n var valuesDifferent = this.updateAndFormatValue();\n var dataNeedsUpdating = forceRefresh || valuesDifferent;\n if (dataNeedsUpdating) {\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n this.showValue(newData);\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n var flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n this.cellCustomStyleFeature.applyUserStyles();\n this.cellCustomStyleFeature.applyClassesFromColDef();\n }\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n this.cellCustomStyleFeature.applyCellClassRules();\n };\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n CellCtrl.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit();\n }\n };\n CellCtrl.prototype.navigateAfterEdit = function () {\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (fullRowEdit) {\n return;\n }\n var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();\n if (enterMovesDownAfterEdit) {\n this.beans.navigationService.navigateToNextCell(null, KeyCode.DOWN, this.getCellPosition(), false);\n }\n };\n // user can also call this via API\n CellCtrl.prototype.flashCell = function (delays) {\n var flashDelay = delays && delays.flashDelay;\n var fadeDelay = delays && delays.fadeDelay;\n this.animateCell('data-changed', flashDelay, fadeDelay);\n };\n CellCtrl.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {\n var _this = this;\n var fullName = \"ag-cell-\" + cssName;\n var animationFullName = \"ag-cell-\" + cssName + \"-animation\";\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!flashDelay) {\n flashDelay = gridOptionsWrapper.getCellFlashDelay();\n }\n if (!exists(fadeDelay)) {\n fadeDelay = gridOptionsWrapper.getCellFadeDelay();\n }\n // we want to highlight the cells, without any animation\n this.cellComp.addOrRemoveCssClass(fullName, true);\n this.cellComp.addOrRemoveCssClass(animationFullName, false);\n // then once that is applied, we remove the highlight with animation\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n _this.cellComp.addOrRemoveCssClass(fullName, false);\n _this.cellComp.addOrRemoveCssClass(animationFullName, true);\n _this.eGui.style.transition = \"background-color \" + fadeDelay + \"ms\";\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n // and then to leave things as we got them, we remove the animation\n _this.cellComp.addOrRemoveCssClass(animationFullName, false);\n _this.eGui.style.transition = '';\n }, fadeDelay);\n }, flashDelay);\n };\n CellCtrl.prototype.onFlashCells = function (event) {\n if (!this.cellComp) {\n return;\n }\n var cellId = this.beans.cellPositionUtils.createId(this.getCellPosition());\n var shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n };\n CellCtrl.prototype.isCellEditable = function () {\n return this.column.isCellEditable(this.rowNode);\n };\n CellCtrl.prototype.isSuppressFillHandle = function () {\n return this.column.isSuppressFillHandle();\n };\n CellCtrl.prototype.formatValue = function (value) {\n var res = this.callValueFormatter(value);\n return res != null ? res : value;\n };\n CellCtrl.prototype.callValueFormatter = function (value) {\n return this.beans.valueFormatterService.formatValue(this.column, this.rowNode, value);\n };\n CellCtrl.prototype.updateAndFormatValue = function (force) {\n if (force === void 0) { force = false; }\n var oldValue = this.value;\n var oldValueFormatted = this.valueFormatted;\n this.value = this.getValueFromValueService();\n this.valueFormatted = this.callValueFormatter(this.value);\n var valuesDifferent = force ? true :\n !this.valuesAreEqual(oldValue, this.value) || this.valueFormatted != oldValueFormatted;\n return valuesDifferent;\n };\n CellCtrl.prototype.valuesAreEqual = function (val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n var colDef = this.column.getColDef();\n return colDef.equals ? colDef.equals(val1, val2) : val1 === val2;\n };\n CellCtrl.prototype.getComp = function () {\n return this.cellComp;\n };\n CellCtrl.prototype.getValueFromValueService = function () {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnModel.isPivotMode();\n var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;\n // are we showing group footers\n var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);\n return value;\n };\n CellCtrl.prototype.getValue = function () {\n return this.value;\n };\n CellCtrl.prototype.getValueFormatted = function () {\n return this.valueFormatted;\n };\n CellCtrl.prototype.addDomData = function () {\n var _this = this;\n var element = this.getGui();\n this.beans.gridOptionsWrapper.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);\n this.addDestroyFunc(function () { return _this.beans.gridOptionsWrapper.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, null); });\n };\n CellCtrl.prototype.createEvent = function (domEvent, eventType) {\n var event = {\n type: eventType,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.column.getColDef(),\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n rowIndex: this.rowNode.rowIndex\n };\n return event;\n };\n CellCtrl.prototype.onKeyPress = function (event) {\n this.cellKeyboardListenerFeature.onKeyPress(event);\n };\n CellCtrl.prototype.onKeyDown = function (event) {\n this.cellKeyboardListenerFeature.onKeyDown(event);\n };\n CellCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n this.cellMouseListenerFeature.onMouseEvent(eventName, mouseEvent);\n };\n CellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n CellCtrl.prototype.refreshToolTip = function () {\n this.tooltipFeature.refreshToolTip();\n };\n CellCtrl.prototype.getColSpanningList = function () {\n return this.cellPositionFeature.getColSpanningList();\n };\n CellCtrl.prototype.onLeftChanged = function () {\n if (!this.cellComp) {\n return;\n }\n this.cellPositionFeature.onLeftChanged();\n };\n CellCtrl.prototype.onDisplayedColumnsChanged = function () {\n if (!this.eGui) {\n return;\n }\n this.setAriaColIndex();\n };\n CellCtrl.prototype.setAriaColIndex = function () {\n var colIdx = this.beans.columnModel.getAriaColumnIndex(this.column);\n setAriaColIndex(this.getGui(), colIdx); // for react, we don't use JSX, as it slowed down column moving\n };\n CellCtrl.prototype.isSuppressNavigable = function () {\n return this.column.isSuppressNavigable(this.rowNode);\n };\n CellCtrl.prototype.onWidthChanged = function () {\n return this.cellPositionFeature.onWidthChanged();\n };\n CellCtrl.prototype.getColumn = function () {\n return this.column;\n };\n CellCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n CellCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n CellCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n CellCtrl.prototype.appendChild = function (htmlElement) {\n this.eGui.appendChild(htmlElement);\n };\n CellCtrl.prototype.refreshHandle = function () {\n if (this.cellRangeFeature) {\n this.cellRangeFeature.refreshHandle();\n }\n };\n CellCtrl.prototype.getCellPosition = function () {\n return this.cellPosition;\n };\n CellCtrl.prototype.isEditing = function () {\n return this.editing;\n };\n // called by rowRenderer when user navigates via tab key\n CellCtrl.prototype.startRowOrCellEdit = function (key, charPress, event) {\n if (event === void 0) { event = null; }\n if (!this.cellComp) {\n return;\n }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowCtrl.startRowEditing(key, charPress, this);\n }\n else {\n this.startEditing(key, charPress, true, event);\n }\n };\n CellCtrl.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellCtrl.prototype.getRowPosition = function () {\n return {\n rowIndex: this.cellPosition.rowIndex,\n rowPinned: this.cellPosition.rowPinned\n };\n };\n CellCtrl.prototype.updateRangeBordersIfRangeCount = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.updateRangeBordersIfRangeCount();\n }\n };\n CellCtrl.prototype.onRangeSelectionChanged = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.isRangeSelectionEnabled = function () {\n return this.cellRangeFeature != null;\n };\n CellCtrl.prototype.focusCell = function (forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n this.beans.focusService.setFocusedCell({\n rowIndex: this.getCellPosition().rowIndex,\n column: this.column,\n rowPinned: this.rowNode.rowPinned,\n forceBrowserFocus: forceBrowserFocus\n });\n };\n CellCtrl.prototype.onRowIndexChanged = function () {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createCellPosition();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.onFirstRightPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var firstRightPinned = this.column.isFirstRightPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FIRST_RIGHT_PINNED, firstRightPinned);\n };\n CellCtrl.prototype.onLastLeftPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var lastLeftPinned = this.column.isLastLeftPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_LAST_LEFT_PINNED, lastLeftPinned);\n };\n CellCtrl.prototype.onCellFocused = function (event) {\n if (!this.cellComp || this.gow.isSuppressCellFocus()) {\n return;\n }\n var cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);\n // see if we need to force browser focus - this can happen if focus is programmatically set\n if (cellFocused && event && event.forceBrowserFocus) {\n var focusEl = this.cellComp.getFocusableElement();\n focusEl.focus({ preventScroll: !!event.preventScrollOnBrowserFocus });\n }\n // if another cell was focused, and we are editing, then stop editing\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (!cellFocused && !fullRowEdit && this.editing) {\n this.stopRowOrCellEdit();\n }\n };\n CellCtrl.prototype.createCellPosition = function () {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: makeNull(this.rowNode.rowPinned),\n column: this.column\n };\n };\n // CSS Classes that only get applied once, they never change\n CellCtrl.prototype.applyStaticCssClasses = function () {\n this.cellComp.addOrRemoveCssClass(CSS_CELL, true);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, true);\n // normal cells fill the height of the row. autoHeight cells have no height to let them\n // fit the height of content.\n var autoHeight = this.column.isAutoHeight() == true;\n this.cellComp.addOrRemoveCssClass(CSS_AUTO_HEIGHT, autoHeight);\n this.cellComp.addOrRemoveCssClass(CSS_NORMAL_HEIGHT, !autoHeight);\n };\n CellCtrl.prototype.onColumnHover = function () {\n if (!this.cellComp) {\n return;\n }\n if (!this.beans.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.cellComp.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);\n };\n CellCtrl.prototype.onColDefChanged = function () {\n if (!this.cellComp) {\n return;\n }\n this.setWrapText();\n if (!this.editing) {\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n }\n };\n CellCtrl.prototype.setWrapText = function () {\n var value = this.column.getColDef().wrapText == true;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, value);\n };\n CellCtrl.prototype.dispatchCellContextMenuEvent = function (event) {\n var colDef = this.column.getColDef();\n var cellContextMenuEvent = this.createEvent(event, Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);\n }\n };\n CellCtrl.prototype.getCellRenderer = function () {\n return this.cellComp ? this.cellComp.getCellRenderer() : null;\n };\n CellCtrl.prototype.getCellEditor = function () {\n return this.cellComp ? this.cellComp.getCellEditor() : null;\n };\n CellCtrl.prototype.destroy = function () {\n this.onCellCompAttachedFuncs = [];\n _super.prototype.destroy.call(this);\n };\n CellCtrl.prototype.createSelectionCheckbox = function () {\n var cbSelectionComponent = new CheckboxSelectionComponent();\n this.beans.context.createBean(cbSelectionComponent);\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });\n // put the checkbox in before the value\n return cbSelectionComponent;\n };\n CellCtrl.prototype.createDndSource = function () {\n var dndSourceComp = new DndSourceComp(this.rowNode, this.column, this.beans, this.eGui);\n this.beans.context.createBean(dndSourceComp);\n return dndSourceComp;\n };\n CellCtrl.prototype.registerRowDragger = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n // if previously existed, then we are only updating\n if (this.customRowDragComp) {\n this.customRowDragComp.setDragElement(customElement, dragStartPixels);\n return;\n }\n var newComp = this.createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange);\n if (newComp) {\n this.customRowDragComp = newComp;\n this.addDestroyFunc(function () { return _this.beans.context.destroyBean(newComp); });\n }\n };\n CellCtrl.prototype.createRowDragComp = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n var pagination = this.beans.gridOptionsWrapper.isPagination();\n var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();\n var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');\n return;\n }\n if (pagination) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');\n return;\n }\n }\n // otherwise (normal case) we are creating a RowDraggingComp for the first time\n var rowDragComp = new RowDragComp(function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels, suppressVisibilityChange);\n this.beans.context.createBean(rowDragComp);\n return rowDragComp;\n };\n CellCtrl.DOM_DATA_KEY_CELL_CTRL = 'cellCtrl';\n return CellCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$d = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$h(arguments[i]));\n return ar;\n};\nvar RowType$1;\n(function (RowType) {\n RowType[\"Normal\"] = \"Normal\";\n RowType[\"FullWidth\"] = \"FullWidth\";\n RowType[\"FullWidthLoading\"] = \"FullWidthLoading\";\n RowType[\"FullWidthGroup\"] = \"FullWidthGroup\";\n RowType[\"FullWidthDetail\"] = \"FullWidthDetail\";\n})(RowType$1 || (RowType$1 = {}));\nvar instanceIdSequence$2 = 0;\nvar RowCtrl = /** @class */ (function (_super) {\n __extends$1U(RowCtrl, _super);\n function RowCtrl(rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {\n var _this = _super.call(this) || this;\n _this.allRowGuis = [];\n _this.active = true;\n _this.centerCellCtrls = { list: [], map: {} };\n _this.leftCellCtrls = { list: [], map: {} };\n _this.rightCellCtrls = { list: [], map: {} };\n _this.lastMouseDownOnDragger = false;\n _this.updateColumnListsPending = false;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.instanceId = rowNode.id + '-' + instanceIdSequence$2++;\n _this.setAnimateFlags(animateIn);\n _this.rowFocused = _this.beans.focusService.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);\n _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);\n _this.setRowType();\n _this.addListeners();\n return _this;\n }\n RowCtrl.prototype.isSticky = function () {\n return this.rowNode.sticky;\n };\n RowCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n RowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n RowCtrl.prototype.setComp = function (rowComp, element, containerType) {\n var gui = { rowComp: rowComp, element: element, containerType: containerType };\n this.allRowGuis.push(gui);\n if (containerType === RowContainerType.LEFT) {\n this.leftGui = gui;\n }\n else if (containerType === RowContainerType.RIGHT) {\n this.rightGui = gui;\n }\n else if (containerType === RowContainerType.FULL_WIDTH) {\n this.fullWidthGui = gui;\n }\n else {\n this.centerGui = gui;\n }\n var allNormalPresent = this.leftGui != null && this.rightGui != null && this.centerGui != null;\n var fullWidthPresent = this.fullWidthGui != null;\n if (allNormalPresent || fullWidthPresent) {\n this.initialiseRowComps();\n }\n if (this.rowType !== 'FullWidthLoading') {\n // this is fired within setComp as we know that the component renderer is now trying to render.\n // linked with the fact the function implementation queues behind requestAnimationFrame should allow\n // us to be certain that all rendering is done by the time the event fires.\n this.beans.rowRenderer.dispatchFirstDataRenderedEvent();\n }\n };\n RowCtrl.prototype.isCacheable = function () {\n return this.rowType === RowType$1.FullWidthDetail\n && this.beans.gridOptionsWrapper.isKeepDetailRows();\n };\n RowCtrl.prototype.setCached = function (cached) {\n var displayValue = cached ? 'none' : '';\n this.allRowGuis.forEach(function (rg) { return rg.element.style.display = displayValue; });\n };\n RowCtrl.prototype.initialiseRowComps = function () {\n var _this = this;\n var gow = this.beans.gridOptionsWrapper;\n this.onRowHeightChanged();\n this.updateRowIndexes();\n this.setFocusedClasses();\n this.setStylesFromGridOptions();\n if (gow.isRowSelection() && this.rowNode.selectable) {\n this.onRowSelected();\n }\n this.updateColumnLists(!this.useAnimationFrameForCreate);\n if (this.slideRowIn) {\n executeNextVMTurn(this.onTopChanged.bind(this));\n }\n if (this.fadeRowIn) {\n executeNextVMTurn(function () {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false); });\n });\n }\n var businessKey = this.getRowBusinessKey();\n var rowIdSanitised = escapeString(this.rowNode.id);\n var businessKeySanitised = escapeString(businessKey);\n this.allRowGuis.forEach(function (gui) {\n var comp = gui.rowComp;\n comp.setRole('row');\n var initialRowClasses = _this.getInitialRowClasses(gui.containerType);\n initialRowClasses.forEach(function (name) { return comp.addOrRemoveCssClass(name, true); });\n if (_this.rowNode.group) {\n setAriaExpanded(gui.element, _this.rowNode.expanded == true);\n }\n if (rowIdSanitised != null) {\n comp.setRowId(rowIdSanitised);\n }\n if (businessKeySanitised != null) {\n comp.setRowBusinessKey(businessKeySanitised);\n }\n if (_this.isFullWidth() && !_this.beans.gridOptionsWrapper.isSuppressCellFocus()) {\n comp.setTabIndex(-1);\n }\n // DOM DATA\n gow.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, _this);\n _this.addDestroyFunc(function () { return gow.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, null); });\n // adding hover functionality adds listener to this row, so we\n // do it lazily in an animation frame\n if (_this.useAnimationFrameForCreate) {\n _this.beans.animationFrameService.createTask(_this.addHoverFunctionality.bind(_this, gui.element), _this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n _this.addHoverFunctionality(gui.element);\n }\n if (_this.isFullWidth()) {\n _this.setupFullWidth(gui);\n }\n if (gow.isRowDragEntireRow()) {\n _this.addRowDraggerToRow(gui);\n }\n if (_this.useAnimationFrameForCreate) {\n // the height animation we only want active after the row is alive for 1 second.\n // this stops the row animation working when rows are initially crated. otherwise\n // auto-height rows get inserted into the dom and resized immediately, which gives\n // very bad UX (eg 10 rows get inserted, then all 10 expand, look particularly bad\n // when scrolling). so this makes sure when rows are shown for the first time, they\n // are resized immediately without animation.\n _this.beans.animationFrameService.addDestroyTask(function () {\n if (!_this.isAlive()) {\n return;\n }\n gui.rowComp.addOrRemoveCssClass('ag-after-created', true);\n });\n }\n });\n this.executeProcessRowPostCreateFunc();\n };\n RowCtrl.prototype.addRowDraggerToRow = function (gui) {\n var gow = this.beans.gridOptionsWrapper;\n if (gow.isEnableRangeSelection()) {\n doOnce(function () {\n console.warn('AG Grid: Setting `rowDragEntireRow: true` in the gridOptions doesn\\'t work with `enableRangeSelection: true`');\n }, 'rowDragAndRangeSelectionEnabled');\n return;\n }\n var translate = gow.getLocaleTextFunc();\n var rowDragComp = new RowDragComp(function () { return \"1 \" + translate('rowDragRow', 'row'); }, this.rowNode, undefined, gui.element, undefined, true);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.setupFullWidth = function (gui) {\n var pinned = this.getPinnedForContainer(gui.containerType);\n var params = this.createFullWidthParams(gui.element, pinned);\n var masterDetailModuleLoaded = ModuleRegistry.isRegistered(ModuleNames.MasterDetailModule);\n if (this.rowType == RowType$1.FullWidthDetail && !masterDetailModuleLoaded) {\n if (ModuleRegistry.isPackageBased()) {\n console.warn(\"AG Grid: cell renderer 'agDetailCellRenderer' (for master detail) not found. Can only be used with ag-grid-enterprise package.\");\n }\n else {\n console.warn(\"AG Grid: cell renderer 'agDetailCellRenderer' (for master detail) not found. Can only be used with AG Grid Enterprise Module \" + ModuleNames.MasterDetailModule);\n }\n return;\n }\n var compDetails;\n switch (this.rowType) {\n case RowType$1.FullWidthDetail:\n compDetails = this.beans.userComponentFactory.getFullWidthDetailCellRendererDetails(params);\n break;\n case RowType$1.FullWidthGroup:\n compDetails = this.beans.userComponentFactory.getFullWidthGroupCellRendererDetails(params);\n break;\n case RowType$1.FullWidthLoading:\n compDetails = this.beans.userComponentFactory.getFullWidthLoadingCellRendererDetails(params);\n break;\n default:\n compDetails = this.beans.userComponentFactory.getFullWidthCellRendererDetails(params);\n break;\n }\n gui.rowComp.showFullWidth(compDetails);\n };\n RowCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n // use by autoWidthCalculator, as it clones the elements\n RowCtrl.prototype.getCellElement = function (column) {\n var cellCtrl = this.getCellCtrl(column);\n return cellCtrl ? cellCtrl.getGui() : null;\n };\n RowCtrl.prototype.executeProcessRowPostCreateFunc = function () {\n var func = this.beans.gridOptionsWrapper.getProcessRowPostCreateFunc();\n if (!func) {\n return;\n }\n var params = {\n eRow: this.centerGui ? this.centerGui.element : undefined,\n ePinnedLeftRow: this.leftGui ? this.leftGui.element : undefined,\n ePinnedRightRow: this.rightGui ? this.rightGui.element : undefined,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n addRenderedRowListener: this.addEventListener.bind(this),\n };\n func(params);\n };\n RowCtrl.prototype.setRowType = function () {\n var isStub = this.rowNode.stub;\n var isFullWidthCell = this.rowNode.isFullWidthCell();\n var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;\n var pivotMode = this.beans.columnModel.isPivotMode();\n // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking\n // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'\n // so each can be set independently (as a customer complained about footers getting full width, hence\n // introducing this logic)\n var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;\n var isFullWidthGroup = isGroupRow && this.beans.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);\n if (isStub) {\n this.rowType = RowType$1.FullWidthLoading;\n }\n else if (isDetailCell) {\n this.rowType = RowType$1.FullWidthDetail;\n }\n else if (isFullWidthCell) {\n this.rowType = RowType$1.FullWidth;\n }\n else if (isFullWidthGroup) {\n this.rowType = RowType$1.FullWidthGroup;\n }\n else {\n this.rowType = RowType$1.Normal;\n }\n };\n RowCtrl.prototype.updateColumnLists = function (suppressAnimationFrame) {\n var _this = this;\n if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }\n if (this.isFullWidth()) {\n return;\n }\n var noAnimation = suppressAnimationFrame\n || this.beans.gridOptionsWrapper.isSuppressAnimationFrame()\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl();\n return;\n }\n if (this.updateColumnListsPending) {\n return;\n }\n this.beans.animationFrameService.createTask(function () {\n if (!_this.active) {\n return;\n }\n _this.updateColumnListsImpl();\n }, this.rowNode.rowIndex, 'createTasksP1');\n this.updateColumnListsPending = true;\n };\n RowCtrl.prototype.createCellCtrls = function (prev, cols, pinned) {\n var _this = this;\n if (pinned === void 0) { pinned = null; }\n var res = {\n list: [],\n map: {}\n };\n var addCell = function (colInstanceId, cellCtrl) {\n res.list.push(cellCtrl);\n res.map[colInstanceId] = cellCtrl;\n };\n cols.forEach(function (col) {\n // we use instanceId's rather than colId as it's possible there is a Column with same Id,\n // but it's referring to a different column instance. Happens a lot with pivot, as pivot col id's are\n // reused eg pivot_0, pivot_1 etc\n var colInstanceId = col.getInstanceId();\n var cellCtrl = prev.map[colInstanceId];\n if (!cellCtrl) {\n cellCtrl = new CellCtrl(col, _this.rowNode, _this.beans, _this);\n }\n addCell(colInstanceId, cellCtrl);\n });\n prev.list.forEach(function (prevCellCtrl) {\n var cellInResult = res.map[prevCellCtrl.getColumn().getInstanceId()] != null;\n if (cellInResult) {\n return;\n }\n var keepCell = !_this.isCellEligibleToBeRemoved(prevCellCtrl, pinned);\n if (keepCell) {\n addCell(prevCellCtrl.getColumn().getInstanceId(), prevCellCtrl);\n return;\n }\n prevCellCtrl.destroy();\n });\n return res;\n };\n RowCtrl.prototype.updateColumnListsImpl = function () {\n var _this = this;\n this.updateColumnListsPending = false;\n var columnModel = this.beans.columnModel;\n if (this.printLayout) {\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, columnModel.getAllDisplayedColumns());\n this.leftCellCtrls = { list: [], map: {} };\n this.rightCellCtrls = { list: [], map: {} };\n }\n else {\n var centerCols = columnModel.getViewportCenterColumnsForRow(this.rowNode);\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, centerCols);\n var leftCols = columnModel.getDisplayedLeftColumnsForRow(this.rowNode);\n this.leftCellCtrls = this.createCellCtrls(this.leftCellCtrls, leftCols, Constants.PINNED_LEFT);\n var rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);\n this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, Constants.PINNED_RIGHT);\n }\n this.allRowGuis.forEach(function (item) {\n var cellControls = item.containerType === RowContainerType.LEFT ? _this.leftCellCtrls :\n item.containerType === RowContainerType.RIGHT ? _this.rightCellCtrls : _this.centerCellCtrls;\n item.rowComp.setCellCtrls(cellControls.list);\n });\n };\n RowCtrl.prototype.isCellEligibleToBeRemoved = function (cellCtrl, nextContainerPinned) {\n var REMOVE_CELL = true;\n var KEEP_CELL = false;\n // always remove the cell if it's not rendered or if it's in the wrong pinned location\n var column = cellCtrl.getColumn();\n if (column.getPinned() != nextContainerPinned) {\n return REMOVE_CELL;\n }\n // we want to try and keep editing and focused cells\n var editing = cellCtrl.isEditing();\n var focused = this.beans.focusService.isCellFocused(cellCtrl.getCellPosition());\n var mightWantToKeepCell = editing || focused;\n if (mightWantToKeepCell) {\n var column_1 = cellCtrl.getColumn();\n var displayedColumns = this.beans.columnModel.getAllDisplayedColumns();\n var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;\n return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;\n }\n return REMOVE_CELL;\n };\n RowCtrl.prototype.setAnimateFlags = function (animateIn) {\n if (!this.isSticky() && animateIn) {\n var oldRowTopExists = exists(this.rowNode.oldRowTop);\n // if the row had a previous position, we slide it in (animate row top)\n this.slideRowIn = oldRowTopExists;\n // if the row had no previous position, we fade it in (animate\n this.fadeRowIn = !oldRowTopExists;\n }\n else {\n this.slideRowIn = false;\n this.fadeRowIn = false;\n }\n };\n RowCtrl.prototype.isEditing = function () {\n return this.editingRow;\n };\n RowCtrl.prototype.stopRowEditing = function (cancel) {\n this.stopEditing(cancel);\n };\n RowCtrl.prototype.isFullWidth = function () {\n return this.rowType !== RowType$1.Normal;\n };\n RowCtrl.prototype.getRowType = function () {\n return this.rowType;\n };\n RowCtrl.prototype.refreshFullWidth = function () {\n var _this = this;\n // returns 'true' if refresh succeeded\n var tryRefresh = function (gui, pinned) {\n if (!gui) {\n return true;\n } // no refresh needed\n var cellRenderer = gui.rowComp.getFullWidthCellRenderer();\n // no cell renderer, either means comp not yet ready, or comp ready but now reference\n // to it (happens in react when comp is stateless). if comp not ready, we don't need to\n // refresh, however we don't know which one, so we refresh to cover the case where it's\n // react comp without reference so need to force a refresh\n if (!cellRenderer) {\n return false;\n }\n // no refresh method present, so can't refresh, hard refresh needed\n if (!cellRenderer.refresh) {\n return false;\n }\n var params = _this.createFullWidthParams(gui.element, pinned);\n var refreshSucceeded = cellRenderer.refresh(params);\n return refreshSucceeded;\n };\n var fullWidthSuccess = tryRefresh(this.fullWidthGui, null);\n var centerSuccess = tryRefresh(this.centerGui, null);\n var leftSuccess = tryRefresh(this.leftGui, Constants.PINNED_LEFT);\n var rightSuccess = tryRefresh(this.rightGui, Constants.PINNED_RIGHT);\n var allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n };\n RowCtrl.prototype.addListeners = function () {\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_TOP_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));\n var eventService = this.beans.eventService;\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(eventService, Events.EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));\n this.addListenersForCellComps();\n };\n RowCtrl.prototype.onColumnMoved = function () {\n this.updateColumnLists();\n };\n RowCtrl.prototype.addListenersForCellComps = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRowIndexChanged(); });\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellChanged(event); });\n });\n };\n RowCtrl.prototype.onRowNodeDataChanged = function (event) {\n // if this is an update, we want to refresh, as this will allow the user to put in a transition\n // into the cellRenderer refresh method. otherwise this might be completely new data, in which case\n // we will want to completely replace the cells\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n return cellCtrl.refreshCell({\n suppressFlash: !event.update,\n newData: !event.update\n });\n });\n // check for selected also, as this could be after lazy loading of the row data, in which case\n // the id might of just gotten set inside the row and the row selected state may of changed\n // as a result. this is what happens when selected rows are loaded in virtual pagination.\n // - niall note - since moving to the stub component, this may no longer be true, as replacing\n // the stub component now replaces the entire row\n this.onRowSelected();\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.onRowNodeCellChanged = function () {\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.postProcessCss = function () {\n this.setStylesFromGridOptions();\n this.postProcessClassesFromGridOptions();\n this.postProcessRowClassRules();\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.onRowNodeHighlightChanged = function () {\n var highlighted = this.rowNode.highlighted;\n this.allRowGuis.forEach(function (gui) {\n var aboveOn = highlighted === RowHighlightPosition.Above;\n var belowOn = highlighted === RowHighlightPosition.Below;\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-above', aboveOn);\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-below', belowOn);\n });\n };\n RowCtrl.prototype.onRowNodeDraggingChanged = function () {\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.postProcessRowDragging = function () {\n var dragging = this.rowNode.dragging;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-dragging', dragging); });\n };\n RowCtrl.prototype.updateExpandedCss = function () {\n var expandable = this.rowNode.isExpandable();\n var expanded = this.rowNode.expanded == true;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-group', expandable);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-expanded', expandable && expanded);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-contracted', expandable && !expanded);\n setAriaExpanded(gui.element, expandable && expanded);\n });\n };\n RowCtrl.prototype.onDisplayedColumnsChanged = function () {\n // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and\n // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.\n this.updateColumnLists(true);\n if (this.beans.columnModel.wasAutoRowHeightEverActive()) {\n this.rowNode.checkAutoHeights();\n }\n };\n RowCtrl.prototype.onVirtualColumnsChanged = function () {\n this.updateColumnLists();\n };\n RowCtrl.prototype.getRowPosition = function () {\n return {\n rowPinned: makeNull(this.rowNode.rowPinned),\n rowIndex: this.rowNode.rowIndex\n };\n };\n RowCtrl.prototype.onKeyboardNavigate = function (keyboardEvent) {\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n if (!isFullWidthContainerFocused) {\n return;\n }\n var node = this.rowNode;\n var lastFocusedCell = this.beans.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: node.rowIndex,\n rowPinned: node.rowPinned,\n column: (lastFocusedCell && lastFocusedCell.column)\n };\n this.beans.navigationService.navigateToNextCell(keyboardEvent, keyboardEvent.key, cellPosition, true);\n keyboardEvent.preventDefault();\n };\n RowCtrl.prototype.onTabKeyDown = function (keyboardEvent) {\n if (keyboardEvent.defaultPrevented || isStopPropagationForAgGrid(keyboardEvent)) {\n return;\n }\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n var nextEl = null;\n if (!isFullWidthContainerFocused) {\n nextEl = this.beans.focusService.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);\n }\n if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {\n this.beans.navigationService.onTabKeyDown(this, keyboardEvent);\n }\n };\n RowCtrl.prototype.onFullWidthRowFocused = function (event) {\n var _a;\n var node = this.rowNode;\n var isFocused = this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;\n var element = this.fullWidthGui ? this.fullWidthGui.element : (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n } // can happen with react ui, comp not yet ready\n element.classList.toggle('ag-full-width-focus', isFocused);\n if (isFocused) {\n // we don't scroll normal rows into view when we focus them, so we don't want\n // to scroll Full Width rows either.\n element.focus({ preventScroll: true });\n }\n };\n RowCtrl.prototype.refreshCell = function (cellCtrl) {\n this.centerCellCtrls = this.removeCellCtrl(this.centerCellCtrls, cellCtrl);\n this.leftCellCtrls = this.removeCellCtrl(this.leftCellCtrls, cellCtrl);\n this.rightCellCtrls = this.removeCellCtrl(this.rightCellCtrls, cellCtrl);\n this.updateColumnLists();\n };\n RowCtrl.prototype.removeCellCtrl = function (prev, cellCtrlToRemove) {\n var res = {\n list: [],\n map: {}\n };\n prev.list.forEach(function (cellCtrl) {\n if (cellCtrl === cellCtrlToRemove) {\n return;\n }\n res.list.push(cellCtrl);\n res.map[cellCtrl.getInstanceId()] = cellCtrl;\n });\n return res;\n };\n RowCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n switch (eventName) {\n case 'dblclick':\n this.onRowDblClick(mouseEvent);\n break;\n case 'click':\n this.onRowClick(mouseEvent);\n break;\n case 'touchstart':\n case 'mousedown':\n this.onRowMouseDown(mouseEvent);\n break;\n }\n };\n RowCtrl.prototype.createRowEvent = function (type, domEvent) {\n return {\n type: type,\n node: this.rowNode,\n data: this.rowNode.data,\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n event: domEvent\n };\n };\n RowCtrl.prototype.createRowEventWithSource = function (type, domEvent) {\n var event = this.createRowEvent(type, domEvent);\n // when first developing this, we included the rowComp in the event.\n // this seems very weird. so when introducing the event types, i left the 'source'\n // out of the type, and just include the source in the two places where this event\n // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any\n // users to be using this, as the rowComp isn't an object we expose, so would be\n // very surprising if a user was using it.\n event.source = this;\n return event;\n };\n RowCtrl.prototype.onRowDblClick = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_DOUBLE_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n };\n RowCtrl.prototype.onRowMouseDown = function (mouseEvent) {\n this.lastMouseDownOnDragger = isElementChildOfClass(mouseEvent.target, 'ag-row-drag', 3);\n if (!this.isFullWidth()) {\n return;\n }\n var node = this.rowNode;\n var columnModel = this.beans.columnModel;\n if (this.beans.rangeService) {\n this.beans.rangeService.removeAllCellRanges();\n }\n this.beans.focusService.setFocusedCell({\n rowIndex: node.rowIndex,\n column: columnModel.getAllDisplayedColumns()[0],\n rowPinned: node.rowPinned,\n forceBrowserFocus: true\n });\n };\n RowCtrl.prototype.onRowClick = function (mouseEvent) {\n var stop = isStopPropagationForAgGrid(mouseEvent) || this.lastMouseDownOnDragger;\n if (stop) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n // ctrlKey for windows, metaKey for Apple\n var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;\n var shiftKeyPressed = mouseEvent.shiftKey;\n // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to\n // handle this is broken. to observe, change the logic below and allow groups to be selected.\n // you will see the group gets selected, then all children get selected, then the grid unselects\n // the children (as the default behaviour when clicking is to unselect other rows) which results\n // in the group getting unselected (as all children are unselected). the correct thing would be\n // to change this, so that children of the selected group are not then subsequenly un-selected.\n var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n if (\n // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,\n // so return if it's a group row\n (groupSelectsChildren && this.rowNode.group) ||\n // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,\n // and we click it, the selection should not change (ie any currently selected row should stay selected)\n !this.rowNode.selectable ||\n // we also don't allow selection of pinned rows\n this.rowNode.rowPinned ||\n // if no selection method enabled, do nothing\n !this.beans.gridOptionsWrapper.isRowSelection() ||\n // if click selection suppressed, do nothing\n this.beans.gridOptionsWrapper.isSuppressRowClickSelection()) {\n return;\n }\n var multiSelectOnClick = this.beans.gridOptionsWrapper.isRowMultiSelectWithClick();\n var rowDeselectionWithCtrl = !this.beans.gridOptionsWrapper.isSuppressRowDeselection();\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent });\n }\n else if (multiSelectKeyPressed) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed, event: mouseEvent });\n }\n }\n else {\n var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed, event: mouseEvent });\n }\n };\n RowCtrl.prototype.setupDetailRowAutoHeight = function (eDetailGui) {\n var _this = this;\n if (this.rowType !== RowType$1.FullWidthDetail) {\n return;\n }\n if (!this.beans.gridOptionsWrapper.isDetailRowAutoHeight()) {\n return;\n }\n var checkRowSizeFunc = function () {\n var clientHeight = eDetailGui.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n var updateRowHeightFunc = function () {\n _this.rowNode.setRowHeight(clientHeight);\n if (_this.beans.clientSideRowModel) {\n _this.beans.clientSideRowModel.onRowHeightChanged();\n }\n else if (_this.beans.serverSideRowModel) {\n _this.beans.serverSideRowModel.onRowHeightChanged();\n }\n };\n _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);\n }\n };\n var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);\n this.addDestroyFunc(resizeObserverDestroyFunc);\n checkRowSizeFunc();\n };\n RowCtrl.prototype.createFullWidthParams = function (eRow, pinned) {\n var _this = this;\n var params = {\n fullWidth: true,\n data: this.rowNode.data,\n node: this.rowNode,\n value: this.rowNode.key,\n valueFormatted: this.rowNode.key,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n // these need to be taken out, as part of 'afterAttached' now\n eGridCell: eRow,\n eParentOfValue: eRow,\n pinned: pinned,\n addRenderedRowListener: this.addEventListener.bind(this),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value, suppressVisibilityChange); }\n };\n return params;\n };\n RowCtrl.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) {\n if (value === void 0) { value = ''; }\n if (!this.isFullWidth()) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels, suppressVisibilityChange);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.onUiLevelChanged = function () {\n var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n if (this.rowLevel != newLevel) {\n var classToAdd_1 = 'ag-row-level-' + newLevel;\n var classToRemove_1 = 'ag-row-level-' + this.rowLevel;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(classToAdd_1, true);\n gui.rowComp.addOrRemoveCssClass(classToRemove_1, false);\n });\n }\n this.rowLevel = newLevel;\n };\n RowCtrl.prototype.isFirstRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();\n };\n RowCtrl.prototype.isLastRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();\n };\n RowCtrl.prototype.onModelUpdated = function () {\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.refreshFirstAndLastRowStyles = function () {\n var newFirst = this.isFirstRowOnPage();\n var newLast = this.isLastRowOnPage();\n if (this.firstRowOnPage !== newFirst) {\n this.firstRowOnPage = newFirst;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-first', newFirst); });\n }\n if (this.lastRowOnPage !== newLast) {\n this.lastRowOnPage = newLast;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-last', newLast); });\n }\n };\n RowCtrl.prototype.stopEditing = function (cancel) {\n var e_1, _a;\n if (cancel === void 0) { cancel = false; }\n // if we are already stopping row edit, there is\n // no need to start this process again.\n if (this.stoppingRowEdit) {\n return;\n }\n var cellControls = this.getAllCellCtrls();\n var isRowEdit = this.editingRow;\n this.stoppingRowEdit = true;\n var fireRowEditEvent = false;\n try {\n for (var cellControls_1 = __values$2(cellControls), cellControls_1_1 = cellControls_1.next(); !cellControls_1_1.done; cellControls_1_1 = cellControls_1.next()) {\n var ctrl = cellControls_1_1.value;\n var valueChanged = ctrl.stopEditing(cancel);\n if (isRowEdit && !cancel && !fireRowEditEvent && valueChanged) {\n fireRowEditEvent = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (cellControls_1_1 && !cellControls_1_1.done && (_a = cellControls_1.return)) _a.call(cellControls_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (fireRowEditEvent) {\n var event_1 = this.createRowEvent(Events.EVENT_ROW_VALUE_CHANGED);\n this.beans.eventService.dispatchEvent(event_1);\n }\n if (isRowEdit) {\n this.setEditingRow(false);\n }\n this.stoppingRowEdit = false;\n };\n RowCtrl.prototype.setInlineEditingCss = function (editing) {\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(\"ag-row-inline-editing\", editing);\n gui.rowComp.addOrRemoveCssClass(\"ag-row-not-inline-editing\", !editing);\n });\n };\n RowCtrl.prototype.setEditingRow = function (value) {\n this.editingRow = value;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-editing', value); });\n var event = value ?\n this.createRowEvent(Events.EVENT_ROW_EDITING_STARTED)\n : this.createRowEvent(Events.EVENT_ROW_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n };\n RowCtrl.prototype.startRowEditing = function (key, charPress, sourceRenderedCell, event) {\n if (key === void 0) { key = null; }\n if (charPress === void 0) { charPress = null; }\n if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }\n if (event === void 0) { event = null; }\n // don't do it if already editing\n if (this.editingRow) {\n return;\n }\n var atLeastOneEditing = this.getAllCellCtrls().reduce(function (prev, cellCtrl) {\n var cellStartedEdit = cellCtrl === sourceRenderedCell;\n if (cellStartedEdit) {\n cellCtrl.startEditing(key, charPress, cellStartedEdit, event);\n }\n else {\n cellCtrl.startEditing(null, null, cellStartedEdit, event);\n }\n if (prev) {\n return true;\n }\n return cellCtrl.isEditing();\n }, false);\n if (atLeastOneEditing) {\n this.setEditingRow(true);\n }\n };\n RowCtrl.prototype.getAllCellCtrls = function () {\n var res = __spread$d(this.centerCellCtrls.list, this.leftCellCtrls.list, this.rightCellCtrls.list);\n return res;\n };\n RowCtrl.prototype.postProcessClassesFromGridOptions = function () {\n var _this = this;\n var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode);\n if (!cssClasses || !cssClasses.length) {\n return;\n }\n cssClasses.forEach(function (classStr) {\n _this.allRowGuis.forEach(function (c) { return c.rowComp.addOrRemoveCssClass(classStr, true); });\n });\n };\n RowCtrl.prototype.postProcessRowClassRules = function () {\n var _this = this;\n this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, true); });\n }, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, false); });\n });\n };\n RowCtrl.prototype.setStylesFromGridOptions = function () {\n var rowStyles = this.processStylesFromGridOptions();\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.setUserStyles(rowStyles); });\n };\n RowCtrl.prototype.getRowBusinessKey = function () {\n var businessKeyForNodeFunc = this.beans.gridOptionsWrapper.getBusinessKeyForNodeFunc();\n if (typeof businessKeyForNodeFunc !== 'function') {\n return;\n }\n return businessKeyForNodeFunc(this.rowNode);\n };\n RowCtrl.prototype.getPinnedForContainer = function (rowContainerType) {\n var pinned = rowContainerType === RowContainerType.LEFT\n ? Constants.PINNED_LEFT\n : rowContainerType === RowContainerType.RIGHT\n ? Constants.PINNED_RIGHT\n : null;\n return pinned;\n };\n RowCtrl.prototype.getInitialRowClasses = function (rowContainerType) {\n var pinned = this.getPinnedForContainer(rowContainerType);\n var params = {\n rowNode: this.rowNode,\n rowFocused: this.rowFocused,\n fadeRowIn: this.fadeRowIn,\n rowIsEven: this.rowNode.rowIndex % 2 === 0,\n rowLevel: this.rowLevel,\n fullWidthRow: this.isFullWidth(),\n firstRowOnPage: this.isFirstRowOnPage(),\n lastRowOnPage: this.isLastRowOnPage(),\n printLayout: this.printLayout,\n expandable: this.rowNode.isExpandable(),\n pinned: pinned\n };\n return this.beans.rowCssClassCalculator.getInitialRowClasses(params);\n };\n RowCtrl.prototype.processStylesFromGridOptions = function () {\n // part 1 - rowStyle\n var rowStyle = this.beans.gridOptionsWrapper.getRowStyle();\n if (rowStyle && typeof rowStyle === 'function') {\n console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');\n return;\n }\n // part 1 - rowStyleFunc\n var rowStyleFunc = this.beans.gridOptionsWrapper.getRowStyleFunc();\n var rowStyleFuncResult;\n if (rowStyleFunc) {\n var params = {\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex\n };\n rowStyleFuncResult = rowStyleFunc(params);\n }\n return Object.assign({}, rowStyle, rowStyleFuncResult);\n };\n RowCtrl.prototype.onRowSelected = function () {\n var _this = this;\n // Treat undefined as false, if we pass undefined down it gets treated as toggle class, rather than explicitly\n // setting the required value\n var selected = !!this.rowNode.isSelected();\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-selected', selected);\n setAriaSelected(gui.element, selected ? true : undefined);\n var ariaLabel = _this.createAriaLabel();\n setAriaLabel(gui.element, ariaLabel == null ? '' : ariaLabel);\n });\n };\n RowCtrl.prototype.createAriaLabel = function () {\n var selected = this.rowNode.isSelected();\n if (selected && this.beans.gridOptionsWrapper.isSuppressRowDeselection()) {\n return undefined;\n }\n var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', \"Press SPACE to \" + (selected ? 'deselect' : 'select') + \" this row.\");\n return label;\n };\n RowCtrl.prototype.isUseAnimationFrameForCreate = function () {\n return this.useAnimationFrameForCreate;\n };\n RowCtrl.prototype.addHoverFunctionality = function (eRow) {\n var _this = this;\n // because we use animation frames to do this, it's possible the row no longer exists\n // by the time we get to add it\n if (!this.active) {\n return;\n }\n // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel\n // like we do for all the other mouse events.\n // because of the pinning, we cannot simply add / remove the class based on the eRow. we\n // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a\n // mouse hover, it sets such in the rowNode, and then all three reflect the change as\n // all are listening for event on the row node.\n // step 1 - add listener, to set flag on row node\n this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });\n this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });\n // step 2 - listen for changes on row node (which any eRow can trigger)\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_ENTER, function () {\n // if hover turned off, we don't add the class. we do this here so that if the application\n // toggles this property mid way, we remove the hover form the last row, but we stop\n // adding hovers from that point onwards.\n if (!_this.beans.gridOptionsWrapper.isSuppressRowHoverHighlight()) {\n eRow.classList.add('ag-row-hover');\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, function () {\n eRow.classList.remove('ag-row-hover');\n });\n };\n // for animation, we don't want to animate entry or exit to a very far away pixel,\n // otherwise the row would move so fast, it would appear to disappear. so this method\n // moves the row closer to the viewport if it is far away, so the row slide in / out\n // at a speed the user can see.\n RowCtrl.prototype.roundRowTopToBounds = function (rowTop) {\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var range = gridBodyCon.getScrollFeature().getVScrollPosition();\n var minPixel = this.applyPaginationOffset(range.top, true) - 100;\n var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;\n return Math.min(Math.max(minPixel, rowTop), maxPixel);\n };\n RowCtrl.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n RowCtrl.prototype.onRowHeightChanged = function () {\n // check for exists first - if the user is resetting the row height, then\n // it will be null (or undefined) momentarily until the next time the flatten\n // stage is called where the row will then update again with a new height\n if (this.rowNode.rowHeight == null) {\n return;\n }\n var rowHeight = this.rowNode.rowHeight;\n var defaultRowHeight = this.beans.gridOptionsWrapper.getDefaultRowHeight();\n var isHeightFromFunc = this.beans.gridOptionsWrapper.isGetRowHeightFunction();\n var heightFromFunc = isHeightFromFunc ? this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height : undefined;\n var lineHeight = heightFromFunc ? Math.min(defaultRowHeight, heightFromFunc) - 2 + \"px\" : undefined;\n this.allRowGuis.forEach(function (gui) {\n gui.element.style.height = rowHeight + \"px\";\n // If the row height is coming from a function, this means some rows can\n // be smaller than the theme had intended. so we set --ag-line-height on\n // the row, which is picked up by the theme CSS and is used in a calc\n // for the CSS line-height property, which makes sure the line-height is\n // not bigger than the row height, otherwise the row text would not fit.\n // We do not use rowNode.rowHeight here, as this could be the result of autoHeight,\n // and we found using the autoHeight result causes a loop, where changing the\n // line-height them impacts the cell height, resulting in a new autoHeight,\n // resulting in a new line-height and so on loop.\n // const heightFromFunc = this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height;\n if (lineHeight) {\n gui.element.style.setProperty('--ag-line-height', lineHeight);\n }\n });\n };\n RowCtrl.prototype.addEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.addEventListener.call(this, eventType, listener);\n };\n RowCtrl.prototype.removeEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved and rowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.removeEventListener.call(this, eventType, listener);\n };\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n RowCtrl.prototype.destroyFirstPass = function () {\n this.active = false;\n // why do we have this method? shouldn't everything below be added as a destroy func beside\n // the corresponding create logic?\n this.setupRemoveAnimation();\n var event = this.createRowEvent(Events.EVENT_VIRTUAL_ROW_REMOVED);\n this.dispatchEvent(event);\n this.beans.eventService.dispatchEvent(event);\n _super.prototype.destroy.call(this);\n };\n RowCtrl.prototype.setupRemoveAnimation = function () {\n // we don't animate sticky rows\n if (this.isSticky()) {\n return;\n }\n var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;\n if (rowStillVisibleJustNotInViewport) {\n // if the row is not rendered, but in viewport, it means it has moved,\n // so we animate the row out. if the new location is very far away,\n // the animation will be so fast the row will look like it's just disappeared,\n // so instead we animate to a position just outside the viewport.\n var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);\n this.setRowTop(rowTop);\n }\n else {\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', true); });\n }\n };\n RowCtrl.prototype.destroySecondPass = function () {\n this.allRowGuis.length = 0;\n var destroyCellCtrls = function (ctrls) {\n ctrls.list.forEach(function (c) { return c.destroy(); });\n return { list: [], map: {} };\n };\n this.centerCellCtrls = destroyCellCtrls(this.centerCellCtrls);\n this.leftCellCtrls = destroyCellCtrls(this.leftCellCtrls);\n this.rightCellCtrls = destroyCellCtrls(this.rightCellCtrls);\n };\n RowCtrl.prototype.setFocusedClasses = function () {\n var _this = this;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-focus', _this.rowFocused);\n gui.rowComp.addOrRemoveCssClass('ag-row-no-focus', !_this.rowFocused);\n });\n };\n RowCtrl.prototype.onCellFocusChanged = function () {\n var rowFocused = this.beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n if (rowFocused !== this.rowFocused) {\n this.rowFocused = rowFocused;\n this.setFocusedClasses();\n }\n // if we are editing, then moving the focus out of a row will stop editing\n if (!rowFocused && this.editingRow) {\n this.stopEditing(false);\n }\n };\n RowCtrl.prototype.onPaginationChanged = function () {\n var currentPage = this.beans.paginationProxy.getCurrentPage();\n // it is possible this row is in the new page, but the page number has changed, which means\n // it needs to reposition itself relative to the new page\n if (this.paginationPage !== currentPage) {\n this.paginationPage = currentPage;\n this.onTopChanged();\n }\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.onTopChanged = function () {\n this.setRowTop(this.rowNode.rowTop);\n };\n RowCtrl.prototype.onPaginationPixelOffsetChanged = function () {\n // the pixel offset is used when calculating rowTop to set on the row DIV\n this.onTopChanged();\n };\n // applies pagination offset, eg if on second page, and page height is 500px, then removes\n // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.\n // reverse will take the offset away rather than add.\n RowCtrl.prototype.applyPaginationOffset = function (topPx, reverse) {\n if (reverse === void 0) { reverse = false; }\n if (this.rowNode.isRowPinned()) {\n return topPx;\n }\n var pixelOffset = this.beans.paginationProxy.getPixelOffset();\n var multiplier = reverse ? 1 : -1;\n return topPx + (pixelOffset * multiplier);\n };\n RowCtrl.prototype.setRowTop = function (pixels) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return;\n }\n // need to make sure rowTop is not null, as this can happen if the node was once\n // visible (ie parent group was expanded) but is now not visible\n if (exists(pixels)) {\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var topPx = afterScalingPixels + \"px\";\n this.setRowTopStyle(topPx);\n }\n };\n // the top needs to be set into the DOM element when the element is created, not updated afterwards.\n // otherwise the transition would not work, as it would be transitioning from zero (the unset value).\n // for example, suppose a row that is outside the viewport, then user does a filter to remove other rows\n // and this row now appears in the viewport, and the row moves up (ie it was under the viewport and not rendered,\n // but now is in the viewport) then a new RowComp is created, however it should have it's position initialised\n // to below the viewport, so the row will appear to animate up. if we didn't set the initial position at creation\n // time, the row would animate down (ie from position zero).\n RowCtrl.prototype.getInitialRowTop = function () {\n var suppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n return suppressRowTransform ? this.getInitialRowTopShared() : undefined;\n };\n RowCtrl.prototype.getInitialTransform = function () {\n var suppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n return suppressRowTransform ? undefined : \"translateY(\" + this.getInitialRowTopShared() + \")\";\n };\n RowCtrl.prototype.getInitialRowTopShared = function () {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return '';\n }\n var rowTop;\n if (this.isSticky()) {\n rowTop = this.rowNode.stickyRowTop;\n }\n else {\n // if sliding in, we take the old row top. otherwise we just set the current row top.\n var pixels = this.slideRowIn ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n // we don't apply scaling if row is pinned\n rowTop = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n }\n return rowTop + 'px';\n };\n RowCtrl.prototype.setRowTopStyle = function (topPx) {\n var suppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n this.allRowGuis.forEach(function (gui) { return suppressRowTransform ?\n gui.rowComp.setTop(topPx) :\n gui.rowComp.setTransform(\"translateY(\" + topPx + \")\"); });\n };\n RowCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n RowCtrl.prototype.getCellCtrl = function (column) {\n // first up, check for cell directly linked to this column\n var res = null;\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() == column) {\n res = cellCtrl;\n }\n });\n if (res != null) {\n return res;\n }\n // second up, if not found, then check for spanned cols.\n // we do this second (and not at the same time) as this is\n // more expensive, as spanning cols is a\n // infrequently used feature so we don't need to do this most\n // of the time\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColSpanningList().indexOf(column) >= 0) {\n res = cellCtrl;\n }\n });\n return res;\n };\n RowCtrl.prototype.onRowIndexChanged = function () {\n // we only bother updating if the rowIndex is present. if it is not present, it means this row\n // is child of a group node, and the group node was closed, it's the only way to have no row index.\n // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!\n if (this.rowNode.rowIndex != null) {\n this.onCellFocusChanged();\n this.updateRowIndexes();\n this.postProcessCss();\n }\n };\n RowCtrl.prototype.updateRowIndexes = function () {\n var rowIndexStr = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();\n var rowIsEven = this.rowNode.rowIndex % 2 === 0;\n var ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;\n this.allRowGuis.forEach(function (c) {\n c.rowComp.setRowIndex(rowIndexStr);\n c.rowComp.addOrRemoveCssClass('ag-row-even', rowIsEven);\n c.rowComp.addOrRemoveCssClass('ag-row-odd', !rowIsEven);\n setAriaRowIndex(c.element, ariaRowIndex);\n });\n };\n // returns the pinned left container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedLeftRowElement = function () {\n return this.leftGui ? this.leftGui.element : undefined;\n };\n // returns the pinned right container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedRightRowElement = function () {\n return this.rightGui ? this.rightGui.element : undefined;\n };\n // returns the body container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getBodyRowElement = function () {\n return this.centerGui ? this.centerGui.element : undefined;\n };\n // returns the full width container\n RowCtrl.prototype.getFullWidthRowElement = function () {\n return this.fullWidthGui ? this.fullWidthGui.element : undefined;\n };\n RowCtrl.DOM_DATA_KEY_ROW_CTRL = 'renderedRow';\n return RowCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar RowContainerEventsFeature = /** @class */ (function (_super) {\n __extends$1T(RowContainerEventsFeature, _super);\n function RowContainerEventsFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n RowContainerEventsFeature.prototype.postConstruct = function () {\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n this.addKeyboardEvents();\n };\n RowContainerEventsFeature.prototype.addKeyboardEvents = function () {\n var _this = this;\n var eventNames = ['keydown', 'keypress'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processKeyboardEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.addMouseListeners = function () {\n var _this = this;\n var mouseDownEvent = isEventSupported('touchstart') ? 'touchstart' : 'mousedown';\n var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', mouseDownEvent];\n eventNames.forEach(function (eventName) {\n var listener = _this.processMouseEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var rowComp = this.getRowForEvent(mouseEvent);\n var cellCtrl = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellCtrl);\n }\n else {\n if (cellCtrl) {\n cellCtrl.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n };\n RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {\n var _this = this;\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.element);\n var longTapListener = function (event) {\n var rowComp = _this.getRowForEvent(event.touchEvent);\n var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n RowContainerEventsFeature.prototype.getRowForEvent = function (event) {\n var sourceElement = event.target;\n while (sourceElement) {\n var rowCon = this.gridOptionsWrapper.getDomData(sourceElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (rowCon) {\n return rowCon;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n };\n RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellCtrl) {\n var rowNode = rowComp ? rowComp.getRowNode() : null;\n var column = cellCtrl ? cellCtrl.getColumn() : null;\n var value = null;\n if (column) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n cellCtrl.dispatchCellContextMenuEvent(event_1);\n value = this.valueService.getValue(column, rowNode);\n }\n // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var anchorToElement = cellCtrl ? cellCtrl.getGui() : gridBodyCon.getGridBodyElement();\n if (this.contextMenuFactory) {\n this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);\n }\n };\n RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var cellComp = getCtrlForEvent(this.gridOptionsWrapper, keyboardEvent, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowComp = getCtrlForEvent(this.gridOptionsWrapper, keyboardEvent, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellComp) {\n this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);\n }\n else if (rowComp && rowComp.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellCtrl, eventName, keyboardEvent) {\n var rowNode = cellCtrl.getRowNode();\n var column = cellCtrl.getColumn();\n var editing = cellCtrl.isEditing();\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n switch (eventName) {\n case 'keydown':\n // first see if it's a scroll key, page up / down, home / end etc\n var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellCtrl.onKeyDown(keyboardEvent);\n }\n // perform clipboard and undo / redo operations\n this.doGridOperations(keyboardEvent, cellCtrl.isEditing());\n break;\n case 'keypress':\n cellCtrl.onKeyPress(keyboardEvent);\n break;\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_PRESS);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {\n var rowNode = rowComp.getRowNode();\n var focusedCell = this.focusService.getFocusedCell();\n var column = (focusedCell && focusedCell.column);\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n var key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyCode.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_DOWN, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_PRESS, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, editing) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (editing) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n var keyCode = normaliseQwertyAzerty(keyboardEvent);\n if (keyCode === KeyCode.A) {\n return this.onCtrlAndA(keyboardEvent);\n }\n if (keyCode === KeyCode.C) {\n return this.onCtrlAndC(keyboardEvent);\n }\n if (keyCode === KeyCode.V) {\n return this.onCtrlAndV();\n }\n if (keyCode === KeyCode.D) {\n return this.onCtrlAndD(keyboardEvent);\n }\n if (keyCode === KeyCode.Z) {\n return this.onCtrlAndZ(keyboardEvent);\n }\n if (keyCode === KeyCode.Y) {\n return this.onCtrlAndY();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {\n var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeService = _a.rangeService;\n var PINNED_BOTTOM = Constants.PINNED_BOTTOM, PINNED_TOP = Constants.PINNED_TOP;\n if (rangeService && paginationProxy.isRowsToRender()) {\n var _b = __read$g([\n pinnedRowModel.isEmpty(PINNED_TOP),\n pinnedRowModel.isEmpty(PINNED_BOTTOM)\n ], 2), isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;\n var floatingEnd = void 0;\n var rowEnd = void 0;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = PINNED_BOTTOM;\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n var allDisplayedColumns = this.columnModel.getAllDisplayedColumns();\n if (missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeService.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {\n if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {\n return;\n }\n this.clipboardService.copyToClipboard();\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndV = function () {\n if (ModuleRegistry.isRegistered(ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {\n if (ModuleRegistry.isRegistered(ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndZ = function (event) {\n if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {\n return;\n }\n event.preventDefault();\n if (event.shiftKey) {\n this.undoRedoService.redo();\n }\n else {\n this.undoRedoService.undo();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndY = function () {\n this.undoRedoService.redo();\n };\n __decorate$1M([\n Autowired('mouseEventService')\n ], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1M([\n Autowired('valueService')\n ], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n __decorate$1M([\n Optional('contextMenuFactory')\n ], RowContainerEventsFeature.prototype, \"contextMenuFactory\", void 0);\n __decorate$1M([\n Autowired('ctrlsService')\n ], RowContainerEventsFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1M([\n Autowired('navigationService')\n ], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n __decorate$1M([\n Autowired('focusService')\n ], RowContainerEventsFeature.prototype, \"focusService\", void 0);\n __decorate$1M([\n Autowired('undoRedoService')\n ], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n __decorate$1M([\n Autowired('columnModel')\n ], RowContainerEventsFeature.prototype, \"columnModel\", void 0);\n __decorate$1M([\n Autowired('paginationProxy')\n ], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1M([\n Autowired('pinnedRowModel')\n ], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n __decorate$1M([\n Optional('rangeService')\n ], RowContainerEventsFeature.prototype, \"rangeService\", void 0);\n __decorate$1M([\n Optional('clipboardService')\n ], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n __decorate$1M([\n PostConstruct\n ], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n return RowContainerEventsFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// listens to changes in the center viewport size, for column and row virtualisation,\n// and adjusts grid as necessary. there are two viewports, one for horizontal and one for\n// vertical scrolling.\nvar ViewportSizeFeature = /** @class */ (function (_super) {\n __extends$1S(ViewportSizeFeature, _super);\n function ViewportSizeFeature(centerContainerCtrl) {\n var _this = _super.call(this) || this;\n _this.centerContainerCtrl = centerContainerCtrl;\n return _this;\n }\n ViewportSizeFeature.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.listenForResize();\n });\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n };\n ViewportSizeFeature.prototype.listenForResize = function () {\n var _this = this;\n var listener = function () { return _this.onCenterViewportResized(); };\n // centerContainer gets horizontal resizes\n this.centerContainerCtrl.registerViewportResizeListener(listener);\n // eBodyViewport gets vertical resizes\n this.gridBodyCtrl.registerBodyViewportResizeListener(listener);\n };\n ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {\n this.checkViewportAndScrolls();\n };\n ViewportSizeFeature.prototype.onCenterViewportResized = function () {\n if (this.centerContainerCtrl.isViewportVisible()) {\n this.checkViewportAndScrolls();\n var newWidth = this.centerContainerCtrl.getCenterWidth();\n if (newWidth !== this.centerWidth) {\n this.centerWidth = newWidth;\n this.columnModel.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });\n }\n }\n else {\n this.bodyHeight = 0;\n }\n };\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.gridBodyCtrl.getScrollFeature().checkScrollLeft();\n };\n ViewportSizeFeature.prototype.getBodyHeight = function () {\n return this.bodyHeight;\n };\n ViewportSizeFeature.prototype.checkBodyHeight = function () {\n var eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();\n var bodyHeight = getInnerHeight(eBodyViewport);\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n var event_1 = {\n type: Events.EVENT_BODY_HEIGHT_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ViewportSizeFeature.prototype.updateScrollVisibleService = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n };\n ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {\n var params = {\n horizontalScrollShowing: this.isHorizontalScrollShowing(),\n verticalScrollShowing: this.gridBodyCtrl.isVerticalScrollShowing()\n };\n this.scrollVisibleService.setScrollsVisible(params);\n // fix - gridComp should just listen to event from above\n this.gridBodyCtrl.setVerticalScrollPaddingVisible(params.verticalScrollShowing);\n };\n ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || this.centerContainerCtrl.isViewportHScrollShowing();\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.centerContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerContainerCtrl.getViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n };\n __decorate$1L([\n Autowired('ctrlsService')\n ], ViewportSizeFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1L([\n Autowired('columnModel')\n ], ViewportSizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1L([\n Autowired('scrollVisibleService')\n ], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$1L([\n PostConstruct\n ], ViewportSizeFeature.prototype, \"postConstruct\", null);\n return ViewportSizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedLeftWidthFeature = /** @class */ (function (_super) {\n __extends$1R(SetPinnedLeftWidthFeature, _super);\n function SetPinnedLeftWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedLeftWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n };\n SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {\n var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n var displayed = leftWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, leftWidth);\n }\n };\n __decorate$1K([\n Autowired('pinnedWidthService')\n ], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1K([\n PostConstruct\n ], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedLeftWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedRightWidthFeature = /** @class */ (function (_super) {\n __extends$1Q(SetPinnedRightWidthFeature, _super);\n function SetPinnedRightWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedRightWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n };\n SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {\n var rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n var displayed = rightWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, rightWidth);\n }\n };\n __decorate$1J([\n Autowired('pinnedWidthService')\n ], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1J([\n PostConstruct\n ], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedRightWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetHeightFeature = /** @class */ (function (_super) {\n __extends$1P(SetHeightFeature, _super);\n function SetHeightFeature(eContainer, eWrapper) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n _this.eWrapper = eWrapper;\n return _this;\n }\n SetHeightFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));\n };\n SetHeightFeature.prototype.onHeightChanged = function () {\n var height = this.maxDivHeightScaler.getUiContainerHeight();\n var heightString = height != null ? height + \"px\" : \"\";\n this.eContainer.style.height = heightString;\n if (this.eWrapper) {\n this.eWrapper.style.height = heightString;\n }\n };\n __decorate$1I([\n Autowired(\"rowContainerHeightService\")\n ], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n __decorate$1I([\n PostConstruct\n ], SetHeightFeature.prototype, \"postConstruct\", null);\n return SetHeightFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DragListenerFeature = /** @class */ (function (_super) {\n __extends$1O(DragListenerFeature, _super);\n function DragListenerFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n return _this;\n }\n DragListenerFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property\n missing(this.rangeService) // no range selection if not enterprise version\n ) {\n return;\n }\n var params = {\n eElement: this.eContainer,\n onDragStart: this.rangeService.onDragStart.bind(this.rangeService),\n onDragStop: this.rangeService.onDragStop.bind(this.rangeService),\n onDragging: this.rangeService.onDragging.bind(this.rangeService)\n };\n this.dragService.addDragSource(params);\n this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });\n };\n __decorate$1H([\n Optional('rangeService')\n ], DragListenerFeature.prototype, \"rangeService\", void 0);\n __decorate$1H([\n Autowired('dragService')\n ], DragListenerFeature.prototype, \"dragService\", void 0);\n __decorate$1H([\n PostConstruct\n ], DragListenerFeature.prototype, \"postConstruct\", null);\n return DragListenerFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CenterWidthFeature = /** @class */ (function (_super) {\n __extends$1N(CenterWidthFeature, _super);\n function CenterWidthFeature(callback) {\n var _this = _super.call(this) || this;\n _this.callback = callback;\n return _this;\n }\n CenterWidthFeature.prototype.postConstruct = function () {\n var listener = this.setWidth.bind(this);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.setWidth();\n };\n CenterWidthFeature.prototype.setWidth = function () {\n var columnModel = this.columnModel;\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var centerWidth = columnModel.getBodyContainerWidth();\n var leftWidth = columnModel.getDisplayedColumnsLeftWidth();\n var rightWidth = columnModel.getDisplayedColumnsRightWidth();\n var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;\n this.callback(totalWidth);\n };\n __decorate$1G([\n Autowired('columnModel')\n ], CenterWidthFeature.prototype, \"columnModel\", void 0);\n __decorate$1G([\n PostConstruct\n ], CenterWidthFeature.prototype, \"postConstruct\", null);\n return CenterWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$c = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$f(arguments[i]));\n return ar;\n};\nvar RowContainerName;\n(function (RowContainerName) {\n RowContainerName[\"LEFT\"] = \"left\";\n RowContainerName[\"RIGHT\"] = \"right\";\n RowContainerName[\"CENTER\"] = \"center\";\n RowContainerName[\"FULL_WIDTH\"] = \"fullWidth\";\n RowContainerName[\"TOP_LEFT\"] = \"topLeft\";\n RowContainerName[\"TOP_RIGHT\"] = \"topRight\";\n RowContainerName[\"TOP_CENTER\"] = \"topCenter\";\n RowContainerName[\"TOP_FULL_WIDTH\"] = \"topFullWidth\";\n RowContainerName[\"STICKY_TOP_LEFT\"] = \"stickyTopLeft\";\n RowContainerName[\"STICKY_TOP_RIGHT\"] = \"stickyTopRight\";\n RowContainerName[\"STICKY_TOP_CENTER\"] = \"stickyTopCenter\";\n RowContainerName[\"STICKY_TOP_FULL_WIDTH\"] = \"stickyTopFullWidth\";\n RowContainerName[\"BOTTOM_LEFT\"] = \"bottomLeft\";\n RowContainerName[\"BOTTOM_RIGHT\"] = \"bottomRight\";\n RowContainerName[\"BOTTOM_CENTER\"] = \"bottomCenter\";\n RowContainerName[\"BOTTOM_FULL_WIDTH\"] = \"bottomFullWidth\";\n})(RowContainerName || (RowContainerName = {}));\nvar RowContainerType;\n(function (RowContainerType) {\n RowContainerType[\"LEFT\"] = \"left\";\n RowContainerType[\"RIGHT\"] = \"right\";\n RowContainerType[\"CENTER\"] = \"center\";\n RowContainerType[\"FULL_WIDTH\"] = \"fullWidth\";\n})(RowContainerType || (RowContainerType = {}));\nfunction getRowContainerTypeForName(name) {\n switch (name) {\n case RowContainerName.CENTER:\n case RowContainerName.TOP_CENTER:\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.BOTTOM_CENTER:\n return RowContainerType.CENTER;\n case RowContainerName.LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.BOTTOM_LEFT:\n return RowContainerType.LEFT;\n case RowContainerName.RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.BOTTOM_RIGHT:\n return RowContainerType.RIGHT;\n case RowContainerName.FULL_WIDTH:\n case RowContainerName.TOP_FULL_WIDTH:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return RowContainerType.FULL_WIDTH;\n default:\n throw Error('Invalid Row Container Type');\n }\n}\nvar ContainerCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-container'],\n [RowContainerName.LEFT, 'ag-pinned-left-cols-container'],\n [RowContainerName.RIGHT, 'ag-pinned-right-cols-container'],\n [RowContainerName.FULL_WIDTH, 'ag-full-width-container'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-container'],\n [RowContainerName.TOP_LEFT, 'ag-pinned-left-floating-top'],\n [RowContainerName.TOP_RIGHT, 'ag-pinned-right-floating-top'],\n [RowContainerName.TOP_FULL_WIDTH, 'ag-floating-top-full-width-container'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-container'],\n [RowContainerName.STICKY_TOP_LEFT, 'ag-pinned-left-sticky-top'],\n [RowContainerName.STICKY_TOP_RIGHT, 'ag-pinned-right-sticky-top'],\n [RowContainerName.STICKY_TOP_FULL_WIDTH, 'ag-sticky-top-full-width-container'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-container'],\n [RowContainerName.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],\n [RowContainerName.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],\n [RowContainerName.BOTTOM_FULL_WIDTH, 'ag-floating-bottom-full-width-container'],\n]);\nvar ViewportCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-viewport'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-viewport'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-viewport'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],\n]);\nvar WrapperCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-clipper'],\n]);\nvar RowContainerCtrl = /** @class */ (function (_super) {\n __extends$1M(RowContainerCtrl, _super);\n function RowContainerCtrl(name) {\n var _this = _super.call(this) || this;\n _this.name = name;\n return _this;\n }\n RowContainerCtrl.getRowContainerCssClasses = function (name) {\n var containerClass = ContainerCssClasses.get(name);\n var viewportClass = ViewportCssClasses.get(name);\n var wrapperClass = WrapperCssClasses.get(name);\n return { container: containerClass, viewport: viewportClass, wrapper: wrapperClass };\n };\n RowContainerCtrl.getPinned = function (name) {\n switch (name) {\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.LEFT:\n return Constants.PINNED_LEFT;\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.RIGHT:\n return Constants.PINNED_RIGHT;\n default:\n return null;\n }\n };\n RowContainerCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.embedFullWidthRows = this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.forContainers([RowContainerName.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new ViewportSizeFeature(_this)); });\n };\n RowContainerCtrl.prototype.registerWithCtrlsService = function () {\n switch (this.name) {\n case RowContainerName.CENTER:\n this.ctrlsService.registerCenterRowContainerCtrl(this);\n break;\n case RowContainerName.LEFT:\n this.ctrlsService.registerLeftRowContainerCtrl(this);\n break;\n case RowContainerName.RIGHT:\n this.ctrlsService.registerRightRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_CENTER:\n this.ctrlsService.registerTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_LEFT:\n this.ctrlsService.registerTopLeftRowContainerCon(this);\n break;\n case RowContainerName.TOP_RIGHT:\n this.ctrlsService.registerTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_CENTER:\n this.ctrlsService.registerStickyTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_LEFT:\n this.ctrlsService.registerStickyTopLeftRowContainerCon(this);\n break;\n case RowContainerName.STICKY_TOP_RIGHT:\n this.ctrlsService.registerStickyTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_CENTER:\n this.ctrlsService.registerBottomCenterRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_LEFT:\n this.ctrlsService.registerBottomLeftRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_RIGHT:\n this.ctrlsService.registerBottomRightRowContainerCtrl(this);\n break;\n }\n };\n RowContainerCtrl.prototype.forContainers = function (names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n };\n RowContainerCtrl.prototype.getContainerElement = function () {\n return this.eContainer;\n };\n RowContainerCtrl.prototype.getViewportSizeFeature = function () {\n return this.viewportSizeFeature;\n };\n RowContainerCtrl.prototype.setComp = function (view, eContainer, eViewport, eWrapper) {\n var _this = this;\n this.comp = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n this.eWrapper = eWrapper;\n this.createManagedBean(new RowContainerEventsFeature(this.eContainer));\n this.addPreventScrollWhileDragging();\n this.listenOnDomOrder();\n this.stopHScrollOnPinnedRows();\n var allTopNoFW = [RowContainerName.TOP_CENTER, RowContainerName.TOP_LEFT, RowContainerName.TOP_RIGHT];\n var allStickyTopNoFW = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT];\n var allBottomNoFW = [RowContainerName.BOTTOM_CENTER, RowContainerName.BOTTOM_LEFT, RowContainerName.BOTTOM_RIGHT];\n var allMiddleNoFW = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT];\n var allNoFW = __spread$c(allTopNoFW, allBottomNoFW, allMiddleNoFW, allStickyTopNoFW);\n var allMiddle = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT, RowContainerName.FULL_WIDTH];\n var allCenter = [RowContainerName.CENTER, RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER];\n var allLeft = [RowContainerName.LEFT, RowContainerName.BOTTOM_LEFT, RowContainerName.TOP_LEFT, RowContainerName.STICKY_TOP_LEFT];\n var allRight = [RowContainerName.RIGHT, RowContainerName.BOTTOM_RIGHT, RowContainerName.TOP_RIGHT, RowContainerName.STICKY_TOP_RIGHT];\n this.forContainers(allLeft, function () { return _this.createManagedBean(new SetPinnedLeftWidthFeature(_this.eContainer)); });\n this.forContainers(allRight, function () { return _this.createManagedBean(new SetPinnedRightWidthFeature(_this.eContainer)); });\n this.forContainers(allMiddle, function () { return _this.createManagedBean(new SetHeightFeature(_this.eContainer, _this.eWrapper)); });\n this.forContainers(allNoFW, function () { return _this.createManagedBean(new DragListenerFeature(_this.eContainer)); });\n this.forContainers(allCenter, function () { return _this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setContainerWidth(width + \"px\"); })); });\n this.addListeners();\n this.registerWithCtrlsService();\n };\n RowContainerCtrl.prototype.addListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, function () { return _this.onScrollVisibilityChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () { return _this.onDisplayedColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () { return _this.onDisplayedColumnsWidthChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_ROWS_CHANGED, function () { return _this.onDisplayedRowsChanged(); });\n this.onScrollVisibilityChanged();\n this.onDisplayedColumnsChanged();\n this.onDisplayedColumnsWidthChanged();\n this.onDisplayedRowsChanged();\n };\n RowContainerCtrl.prototype.listenOnDomOrder = function () {\n var _this = this;\n // sticky section must show rows in set order\n var allStickyContainers = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT, RowContainerName.STICKY_TOP_FULL_WIDTH];\n var isStickContainer = allStickyContainers.indexOf(this.name) >= 0;\n if (isStickContainer) {\n this.comp.setDomOrder(true);\n return;\n }\n var listener = function () { return _this.comp.setDomOrder(_this.gridOptionsWrapper.isEnsureDomOrder()); };\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n listener();\n };\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n RowContainerCtrl.prototype.stopHScrollOnPinnedRows = function () {\n var _this = this;\n this.forContainers([RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER], function () {\n var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };\n _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);\n });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsChanged = function () {\n var _this = this;\n this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsWidthChanged = function () {\n var _this = this;\n this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerCtrl.prototype.onScrollVisibilityChanged = function () {\n if (this.name !== RowContainerName.CENTER) {\n return;\n }\n var visible = this.scrollVisibleService.isHorizontalScrollShowing();\n var scrollbarWidth = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var height = scrollbarWidth == 0 ? '100%' : \"calc(100% + \" + scrollbarWidth + \"px)\";\n this.comp.setViewportHeight(height);\n };\n // this methods prevents the grid views from being scrolled while the dragService is being used\n // eg. the view should not scroll up and down while dragging rows using the rowDragComp.\n RowContainerCtrl.prototype.addPreventScrollWhileDragging = function () {\n var _this = this;\n var preventScroll = function (e) {\n if (_this.dragService.isDragging()) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });\n this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n RowContainerCtrl.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.getCenterWidth();\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n };\n RowContainerCtrl.prototype.getCenterWidth = function () {\n return getInnerWidth(this.eViewport);\n };\n RowContainerCtrl.prototype.getCenterViewportScrollLeft = function () {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.registerViewportResizeListener = function (listener) {\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n RowContainerCtrl.prototype.isViewportVisible = function () {\n return isVisible(this.eViewport);\n };\n RowContainerCtrl.prototype.isViewportHScrollShowing = function () {\n return isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportScrollLeft = function () {\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportElement = function () {\n return this.eViewport;\n };\n RowContainerCtrl.prototype.setContainerTranslateX = function (amount) {\n this.eContainer.style.transform = \"translateX(\" + amount + \"px)\";\n };\n RowContainerCtrl.prototype.getHScrollPosition = function () {\n var res = {\n left: this.eViewport.scrollLeft,\n right: this.eViewport.scrollLeft + this.eViewport.offsetWidth\n };\n return res;\n };\n RowContainerCtrl.prototype.setCenterViewportScrollLeft = function (value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n setScrollLeft(this.eViewport, value, this.enableRtl);\n };\n RowContainerCtrl.prototype.onDisplayedRowsChanged = function () {\n var _this = this;\n var fullWithContainer = this.name === RowContainerName.TOP_FULL_WIDTH\n || this.name === RowContainerName.STICKY_TOP_FULL_WIDTH\n || this.name === RowContainerName.BOTTOM_FULL_WIDTH\n || this.name === RowContainerName.FULL_WIDTH;\n var doesRowMatch = function (rowCtrl) {\n var fullWidthRow = rowCtrl.isFullWidth();\n var printLayout = _this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFW = _this.embedFullWidthRows || printLayout;\n var match = fullWithContainer ?\n !embedFW && fullWidthRow\n : embedFW || !fullWidthRow;\n return match;\n };\n // this list contains either all pinned top, center or pinned bottom rows\n var allRowsRegardlessOfFullWidth = this.getRowCtrls();\n // this filters out rows not for this container, eg if it's a full with row, but we are not full with container\n var rowsThisContainer = allRowsRegardlessOfFullWidth.filter(doesRowMatch);\n this.comp.setRowCtrls(rowsThisContainer);\n };\n RowContainerCtrl.prototype.getRowCtrls = function () {\n switch (this.name) {\n case RowContainerName.TOP_CENTER:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.TOP_FULL_WIDTH:\n return this.rowRenderer.getTopRowCtrls();\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n return this.rowRenderer.getStickyTopRowCtrls();\n case RowContainerName.BOTTOM_CENTER:\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return this.rowRenderer.getBottomRowCtrls();\n default:\n return this.rowRenderer.getRowCtrls();\n }\n };\n __decorate$1F([\n Autowired('scrollVisibleService')\n ], RowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1F([\n Autowired('dragService')\n ], RowContainerCtrl.prototype, \"dragService\", void 0);\n __decorate$1F([\n Autowired('ctrlsService')\n ], RowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1F([\n Autowired('columnModel')\n ], RowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1F([\n Autowired('resizeObserverService')\n ], RowContainerCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1F([\n Autowired('rowRenderer')\n ], RowContainerCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1F([\n PostConstruct\n ], RowContainerCtrl.prototype, \"postConstruct\", null);\n return RowContainerCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GRID_BODY_TEMPLATE = /* html */ \"
\\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
\";\nvar GridBodyComp = /** @class */ (function (_super) {\n __extends$1L(GridBodyComp, _super);\n function GridBodyComp() {\n return _super.call(this, GRID_BODY_TEMPLATE) || this;\n }\n GridBodyComp.prototype.init = function () {\n var _this = this;\n var setHeight = function (height, element) {\n var heightString = height + \"px\";\n element.style.minHeight = heightString;\n element.style.height = heightString;\n };\n var compProxy = {\n setRowAnimationCssOnBodyViewport: function (cssClass, animate) { return _this.setRowAnimationCssOnBodyViewport(cssClass, animate); },\n setColumnCount: function (count) { return setAriaColCount(_this.getGui(), count); },\n setRowCount: function (count) { return setAriaRowCount(_this.getGui(), count); },\n setTopHeight: function (height) { return setHeight(height, _this.eTop); },\n setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },\n setTopDisplay: function (display) { return _this.eTop.style.display = display; },\n setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },\n setStickyTopHeight: function (height) { return _this.eStickyTop.style.height = height; },\n setStickyTopTop: function (top) { return _this.eStickyTop.style.top = top; },\n setStickyTopWidth: function (width) { return _this.eStickyTop.style.width = width; },\n setColumnMovingCss: function (cssClass, flag) { return _this.addOrRemoveCssClass(CSS_CLASS_COLUMN_MOVING, flag); },\n updateLayoutClasses: function (cssClass, params) {\n var bodyViewportClassList = _this.eBodyViewport.classList;\n bodyViewportClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n bodyViewportClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n bodyViewportClassList.toggle(LayoutCssClasses.PRINT, params.print);\n _this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n _this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n _this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n },\n setAlwaysVerticalScrollClass: function (cssClass, on) {\n return _this.eBodyViewport.classList.toggle(CSS_CLASS_FORCE_VERTICAL_SCROLL, on);\n },\n registerBodyViewportResizeListener: function (listener) {\n var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);\n _this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n },\n setPinnedTopBottomOverflowY: function (overflow) { return _this.eTop.style.overflowY = _this.eBottom.style.overflowY = overflow; },\n setCellSelectableCss: function (cssClass, selectable) {\n [_this.eTop, _this.eBodyViewport, _this.eBottom]\n .forEach(function (ct) { return ct.classList.toggle(CSS_CLASS_CELL_SELECTABLE, selectable); });\n },\n };\n this.ctrl = this.createManagedBean(new GridBodyCtrl());\n this.ctrl.setComp(compProxy, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom, this.eStickyTop);\n if (this.rangeService || this.gridOptionsWrapper.isRowSelectionMulti()) {\n setAriaMultiSelectable(this.getGui(), true);\n }\n };\n GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (cssClass, animateRows) {\n var bodyViewportClassList = this.eBodyViewport.classList;\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_ON, animateRows);\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_OFF, !animateRows);\n };\n GridBodyComp.prototype.getFloatingTopBottom = function () {\n return [this.eTop, this.eBottom];\n };\n __decorate$1E([\n Autowired('resizeObserverService')\n ], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n __decorate$1E([\n Optional('rangeService')\n ], GridBodyComp.prototype, \"rangeService\", void 0);\n __decorate$1E([\n RefSelector('eBodyViewport')\n ], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n __decorate$1E([\n RefSelector('eStickyTop')\n ], GridBodyComp.prototype, \"eStickyTop\", void 0);\n __decorate$1E([\n RefSelector('eTop')\n ], GridBodyComp.prototype, \"eTop\", void 0);\n __decorate$1E([\n RefSelector('eBottom')\n ], GridBodyComp.prototype, \"eBottom\", void 0);\n __decorate$1E([\n RefSelector('gridHeader')\n ], GridBodyComp.prototype, \"headerRootComp\", void 0);\n __decorate$1E([\n PostConstruct\n ], GridBodyComp.prototype, \"init\", null);\n return GridBodyComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ScrollVisibleService = /** @class */ (function (_super) {\n __extends$1K(ScrollVisibleService, _super);\n function ScrollVisibleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScrollVisibleService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n };\n ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.update = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateImpl();\n setTimeout(this.updateImpl.bind(this), 500);\n };\n ScrollVisibleService.prototype.updateImpl = function () {\n var centerRowCtrl = this.ctrlsService.getCenterRowContainerCtrl();\n if (!centerRowCtrl) {\n return;\n }\n var params = {\n horizontalScrollShowing: centerRowCtrl.isHorizontalScrollShowing(),\n verticalScrollShowing: this.isVerticalScrollShowing()\n };\n this.setScrollsVisible(params);\n };\n ScrollVisibleService.prototype.setScrollsVisible = function (params) {\n var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n var event_1 = {\n type: Events.EVENT_SCROLL_VISIBILITY_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n // used by pagination service - to know page height\n ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {\n return this.horizontalScrollShowing;\n };\n // used by header container\n ScrollVisibleService.prototype.isVerticalScrollShowing = function () {\n return this.verticalScrollShowing;\n };\n __decorate$1D([\n Autowired('ctrlsService')\n ], ScrollVisibleService.prototype, \"ctrlsService\", void 0);\n __decorate$1D([\n PostConstruct\n ], ScrollVisibleService.prototype, \"postConstruct\", null);\n ScrollVisibleService = __decorate$1D([\n Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MouseEventService = /** @class */ (function (_super) {\n __extends$1J(MouseEventService, _super);\n function MouseEventService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n return _this;\n }\n MouseEventService_1 = MouseEventService;\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {\n eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n };\n MouseEventService.prototype.getRenderedCellForEvent = function (event) {\n return getCtrlForEvent(this.gridOptionsWrapper, event, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n };\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n MouseEventService.prototype.isEventFromThisGrid = function (event) {\n var res = this.isElementInThisGrid(event.target);\n return res;\n };\n MouseEventService.prototype.isElementInThisGrid = function (element) {\n var pointer = element;\n while (pointer) {\n var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];\n if (exists(instanceId)) {\n var eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n pointer = pointer.parentElement;\n }\n return false;\n };\n MouseEventService.prototype.getCellPositionForEvent = function (event) {\n var cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n };\n MouseEventService.prototype.getNormalisedPosition = function (event) {\n var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var e = event;\n var x;\n var y;\n if (e.clientX != null || e.clientY != null) {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = e.x;\n y = e.y;\n }\n if (gridPanelHasScrolls) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();\n x += hRange.left;\n y += vRange.top;\n }\n return { x: x, y: y };\n };\n var MouseEventService_1;\n MouseEventService.gridInstanceSequence = new NumberSequence();\n MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n __decorate$1C([\n Autowired('ctrlsService')\n ], MouseEventService.prototype, \"ctrlsService\", void 0);\n MouseEventService = MouseEventService_1 = __decorate$1C([\n Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigationService = /** @class */ (function (_super) {\n __extends$1I(NavigationService, _super);\n function NavigationService() {\n var _this = _super.call(this) || this;\n _this.onPageDown = throttle(_this.onPageDown, 100);\n _this.onPageUp = throttle(_this.onPageUp, 100);\n return _this;\n }\n NavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n NavigationService.prototype.handlePageScrollingKey = function (event) {\n var key = event.key;\n var alt = event.altKey;\n var ctrl = event.ctrlKey || event.metaKey;\n var rangeServiceShouldHandleShift = !!this.rangeService && event.shiftKey;\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\n if (!currentCell) {\n return false;\n }\n var processed = false;\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n // handle when ctrl is pressed only, if shift is pressed\n // it will be handled by the rangeService\n if (ctrl && !alt && !rangeServiceShouldHandleShift) {\n this.onCtrlUpDownLeftRight(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_DOWN:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageDown(currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageUp(currentCell);\n processed = true;\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n NavigationService.prototype.navigateTo = function (navigateParams) {\n var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;\n if (exists(scrollColumn) && !scrollColumn.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);\n }\n if (exists(scrollIndex)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);\n }\n // setFocusedCell relies on the browser default focus behavior to scroll the focused cell into view,\n // however, this behavior will cause the cell border to be cut off, or if we have sticky rows, the\n // cell will be completely hidden, so we call ensureIndexVisible without a position to guarantee\n // minimal scroll to get the row into view.\n if (!navigateParams.isAsync) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(focusIndex);\n }\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusService.setFocusedCell({ rowIndex: focusIndex, column: focusColumn, rowPinned: null, forceBrowserFocus: true });\n if (this.rangeService) {\n var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.onPageDown = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pixelsInOnePage = this.getViewportHeight();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageBottomRow);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageBottomRow);\n }\n };\n NavigationService.prototype.onPageUp = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageTopPixel = scrollPosition.top;\n var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageTopRow, true);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageTopRow, true);\n }\n };\n NavigationService.prototype.navigateToNextPage = function (gridCell, scrollIndex, up) {\n if (up === void 0) { up = false; }\n var _a, _b;\n var pixelsInOnePage = this.getViewportHeight();\n var firstRow = this.paginationProxy.getPageFirstRow();\n var lastRow = this.paginationProxy.getPageLastRow();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n var rowPixelDiff = up\n ? (((_a = currentRowNode) === null || _a === void 0 ? void 0 : _a.rowHeight) - pixelsInOnePage - pagingPixelOffset)\n : (pixelsInOnePage - pagingPixelOffset);\n var nextCellPixel = ((_b = currentRowNode) === null || _b === void 0 ? void 0 : _b.rowTop) + rowPixelDiff;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n if (focusIndex === gridCell.rowIndex) {\n var diff = up ? -1 : 1;\n scrollIndex = focusIndex = gridCell.rowIndex + diff;\n }\n var scrollType;\n if (up) {\n scrollType = 'bottom';\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n }\n else {\n scrollType = 'top';\n if (focusIndex > lastRow) {\n focusIndex = lastRow;\n }\n if (scrollIndex > lastRow) {\n scrollIndex = lastRow;\n }\n }\n if (this.isRowTallerThanView(focusIndex)) {\n scrollIndex = focusIndex;\n scrollType = 'top';\n }\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: scrollType,\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n };\n NavigationService.prototype.navigateToNextPageWithAutoHeight = function (gridCell, scrollIndex, up) {\n var _this = this;\n if (up === void 0) { up = false; }\n // because autoHeight will calculate the height of rows after scroll\n // first we scroll towards the required point, then we add a small\n // delay to allow the height to be recalculated, check which index\n // should be focused and then finally navigate to that index.\n // TODO: we should probably have an event fired once to scrollbar has\n // settled and all rowHeights have been calculated instead of relying\n // on a setTimeout of 50ms.\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: scrollIndex,\n focusColumn: gridCell.column\n });\n setTimeout(function () {\n var focusIndex = _this.getNextFocusIndexForAutoHeight(gridCell, up);\n _this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column,\n isAsync: true\n });\n }, 50);\n };\n NavigationService.prototype.getNextFocusIndexForAutoHeight = function (gridCell, up) {\n if (up === void 0) { up = false; }\n var _a;\n var step = up ? -1 : 1;\n var pixelsInOnePage = this.getViewportHeight();\n var lastRowIndex = this.paginationProxy.getPageLastRow();\n var pixelSum = 0;\n var currentIndex = gridCell.rowIndex;\n while (currentIndex >= 0 && currentIndex <= lastRowIndex) {\n var currentCell = this.paginationProxy.getRow(currentIndex);\n if (currentCell) {\n var currentCellHeight = (_a = currentCell.rowHeight, (_a !== null && _a !== void 0 ? _a : 0));\n if (pixelSum + currentCellHeight > pixelsInOnePage) {\n break;\n }\n pixelSum += currentCellHeight;\n }\n currentIndex += step;\n }\n return Math.max(0, Math.min(currentIndex, lastRowIndex));\n };\n NavigationService.prototype.getViewportHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.ctrlsService.getCenterRowContainerCtrl().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n return pixelsInOnePage;\n };\n NavigationService.prototype.isRowTallerThanView = function (rowIndex) {\n var rowNode = this.paginationProxy.getRow(rowIndex);\n if (!rowNode) {\n return false;\n }\n var rowHeight = rowNode.rowHeight;\n if (typeof rowHeight !== 'number') {\n return false;\n }\n return rowHeight > this.getViewportHeight();\n };\n NavigationService.prototype.onCtrlUpDownLeftRight = function (key, gridCell) {\n var cellToFocus = this.cellNavigationService.getNextCellToFocus(key, gridCell, true);\n var rowIndex = cellToFocus.rowIndex, column = cellToFocus.column;\n this.navigateTo({\n scrollIndex: rowIndex,\n scrollType: null,\n scrollColumn: column,\n focusIndex: rowIndex,\n focusColumn: column\n });\n };\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n NavigationService.prototype.onHomeOrEndKey = function (key) {\n var homeKey = key === KeyCode.PAGE_HOME;\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var columnToSelect = homeKey ? allColumns[0] : last(allColumns);\n var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: scrollIndex,\n focusColumn: columnToSelect\n });\n };\n // result of keyboard event\n NavigationService.prototype.onTabKeyDown = function (previous, keyboardEvent) {\n var backwards = keyboardEvent.shiftKey;\n var movedToNextCell = this.tabToNextCellCommon(previous, backwards, keyboardEvent);\n if (movedToNextCell) {\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n keyboardEvent.preventDefault();\n return;\n }\n // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going\n // backwards)\n if (backwards) {\n var _a = previous.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;\n var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();\n if (firstRow) {\n keyboardEvent.preventDefault();\n this.focusService.focusLastHeader(keyboardEvent);\n }\n }\n else {\n // if the case it's a popup editor, the focus is on the editor and not the previous cell.\n // in order for the tab navigation to work, we need to focus the browser back onto the\n // previous cell.\n if (previous instanceof CellCtrl) {\n previous.focusCell(true);\n }\n if (this.focusService.focusNextGridCoreContainer(backwards)) {\n keyboardEvent.preventDefault();\n }\n }\n };\n // comes from API\n NavigationService.prototype.tabToNextCell = function (backwards, event) {\n var focusedCell = this.focusService.getFocusedCell();\n // if no focus, then cannot navigate\n if (!focusedCell) {\n return false;\n }\n var cellOrRow = this.getCellByPosition(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n // or that the focusedCell is a Full Width Row\n if (!cellOrRow) {\n cellOrRow = this.rowRenderer.getRowByPosition(focusedCell);\n if (!cellOrRow || !cellOrRow.isFullWidth()) {\n return false;\n }\n }\n return this.tabToNextCellCommon(cellOrRow, backwards, event);\n };\n NavigationService.prototype.tabToNextCellCommon = function (previous, backwards, event) {\n var editing = previous.isEditing();\n // if cell is not editing, there is still chance row is editing if it's Full Row Editing\n if (!editing && previous instanceof CellCtrl) {\n var cell = previous;\n var row = cell.getRowCtrl();\n if (row) {\n editing = row.isEditing();\n }\n }\n var res;\n if (editing) {\n // if we are editing, we know it's not a Full Width Row (RowComp)\n if (this.gridOptionsWrapper.isFullRowEdit()) {\n res = this.moveToNextEditingRow(previous, backwards, event);\n }\n else {\n res = this.moveToNextEditingCell(previous, backwards, event);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previous, backwards);\n }\n // if a cell wasn't found, it's possible that focus was moved to the header\n return res || !!this.focusService.getFocusedHeader();\n };\n NavigationService.prototype.moveToNextEditingCell = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // before we stop editing, we need to focus the cell element\n // so the grid doesn't detect that focus has left the grid\n previousCell.getGui().focus();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousCell.stopEditing();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n nextCell.startEditing(null, null, true, event);\n nextCell.focusCell(false);\n return true;\n };\n NavigationService.prototype.moveToNextEditingRow = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n var nextPos = nextCell.getCellPosition();\n var previousEditable = this.isCellEditable(previousPos);\n var nextEditable = this.isCellEditable(nextPos);\n var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;\n if (previousEditable) {\n previousCell.setFocusOutOnEditor();\n }\n if (!rowsMatch) {\n var pRow = previousCell.getRowCtrl();\n pRow.stopEditing();\n var nRow = nextCell.getRowCtrl();\n nRow.startRowEditing(undefined, undefined, undefined, event);\n }\n if (nextEditable) {\n nextCell.setFocusInOnEditor();\n nextCell.focusCell();\n }\n else {\n nextCell.focusCell(true);\n }\n return true;\n };\n NavigationService.prototype.moveToNextCellNotEditing = function (previousCell, backwards) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var cellPos;\n if (previousCell instanceof RowCtrl) {\n cellPos = __assign$4(__assign$4({}, previousCell.getRowPosition()), { column: backwards ? displayedColumns[0] : last(displayedColumns) });\n }\n else {\n cellPos = previousCell.getCellPosition();\n }\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(cellPos, backwards, false);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (nextCell instanceof CellCtrl) {\n nextCell.focusCell(true);\n }\n else if (nextCell) {\n return this.tryToFocusFullWidthRow(nextCell.getRowPosition(), backwards);\n }\n return exists(nextCell);\n };\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n NavigationService.prototype.findNextCellToFocusOn = function (previousPosition, backwards, startEditing) {\n var nextPosition = previousPosition;\n while (true) {\n if (previousPosition !== nextPosition) {\n previousPosition = nextPosition;\n }\n if (!backwards) {\n nextPosition = this.getLastCellOfColSpan(nextPosition);\n }\n nextPosition = this.cellNavigationService.getNextTabbedCell(nextPosition, backwards);\n // allow user to override what cell to go to next\n var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: previousPosition,\n nextCellPosition: nextPosition ? nextPosition : null\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextPosition = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextPosition = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextPosition) {\n return null;\n }\n if (nextPosition.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: headerLen + (nextPosition.rowIndex),\n column: nextPosition.column\n }\n });\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.\n var fullRowEdit = this.gridOptionsWrapper.isFullRowEdit();\n if (startEditing && !fullRowEdit) {\n var cellIsEditable = this.isCellEditable(nextPosition);\n if (!cellIsEditable) {\n continue;\n }\n }\n this.ensureCellVisible(nextPosition);\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n var nextCell = this.getCellByPosition(nextPosition);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (!nextCell) {\n var row = this.rowRenderer.getRowByPosition(nextPosition);\n if (!row || !row.isFullWidth()) {\n continue;\n }\n else {\n return row;\n }\n }\n if (nextCell.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeService) {\n this.rangeService.setRangeToCell(nextPosition);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCell;\n }\n };\n NavigationService.prototype.isCellEditable = function (cell) {\n var rowNode = this.lookupRowNodeForCell(cell);\n if (rowNode) {\n return cell.column.isCellEditable(rowNode);\n }\n return false;\n };\n NavigationService.prototype.getCellByPosition = function (cellPosition) {\n var rowCtrl = this.rowRenderer.getRowByPosition(cellPosition);\n if (!rowCtrl) {\n return null;\n }\n return rowCtrl.getCellCtrl(cellPosition.column);\n };\n NavigationService.prototype.lookupRowNodeForCell = function (cell) {\n if (cell.rowPinned === Constants.PINNED_TOP) {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === Constants.PINNED_BOTTOM) {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n };\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n NavigationService.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n var nextCell = currentCell;\n var hitEdgeOfGrid = false;\n while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (key === KeyCode.LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === KeyCode.RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n hitEdgeOfGrid = missing(nextCell);\n }\n if (hitEdgeOfGrid && event && event.key === KeyCode.UP) {\n nextCell = {\n rowIndex: -1,\n rowPinned: null,\n column: currentCell.column\n };\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n if (nextCell.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column },\n event: event || undefined\n });\n return;\n }\n // in case we have col spanning we get the cellComp and use it to get the\n // position. This was we always focus the first cell inside the spanning.\n var normalisedPosition = this.getNormalisedPosition(nextCell);\n if (normalisedPosition) {\n this.focusPosition(normalisedPosition);\n }\n else {\n this.tryToFocusFullWidthRow(nextCell);\n }\n };\n NavigationService.prototype.getNormalisedPosition = function (cellPosition) {\n // ensureCellVisible first, to make sure cell at position is rendered.\n this.ensureCellVisible(cellPosition);\n var cellCtrl = this.getCellByPosition(cellPosition);\n // not guaranteed to have a cellComp when using the SSRM as blocks are loading.\n if (!cellCtrl) {\n return null;\n }\n cellPosition = cellCtrl.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(cellPosition);\n return cellPosition;\n };\n NavigationService.prototype.tryToFocusFullWidthRow = function (position, backwards) {\n if (backwards === void 0) { backwards = false; }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var rowComp = this.rowRenderer.getRowByPosition(position);\n if (!rowComp || !rowComp.isFullWidth()) {\n return false;\n }\n var currentCellFocused = this.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: position.rowIndex,\n rowPinned: position.rowPinned,\n column: position.column || (backwards ? last(displayedColumns) : displayedColumns[0])\n };\n this.focusPosition(cellPosition);\n var fromBelow = currentCellFocused != null ? this.rowPositionUtils.before(cellPosition, currentCellFocused) : false;\n var focusEvent = {\n type: Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned,\n column: cellPosition.column,\n isFullWidthCell: true,\n floating: cellPosition.rowPinned,\n fromBelow: fromBelow\n };\n this.eventService.dispatchEvent(focusEvent);\n return true;\n };\n NavigationService.prototype.focusPosition = function (cellPosition) {\n this.focusService.setFocusedCell({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.isValidNavigateCell = function (cell) {\n var rowNode = this.rowPositionUtils.getRowNode(cell);\n // we do not allow focusing on detail rows and full width rows\n return !!rowNode;\n };\n NavigationService.prototype.getLastCellOfColSpan = function (cell) {\n var cellCtrl = this.getCellByPosition(cell);\n if (!cellCtrl) {\n return cell;\n }\n var colSpanningList = cellCtrl.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n };\n NavigationService.prototype.ensureCellVisible = function (gridCell) {\n var _a;\n var isGroupStickyEnabled = this.gridOptionsWrapper.isGroupRowsSticky();\n var rowNode = this.rowModel.getRow(gridCell.rowIndex);\n // sticky rows are always visible, so the grid shouldn't scroll to focus them.\n var skipScrollToRow = isGroupStickyEnabled && ((_a = rowNode) === null || _a === void 0 ? void 0 : _a.sticky);\n // this scrolls the row into view\n if (!skipScrollToRow && missing(gridCell.rowPinned)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);\n }\n };\n __decorate$1B([\n Autowired('mouseEventService')\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate$1B([\n Autowired('paginationProxy')\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate$1B([\n Autowired('focusService')\n ], NavigationService.prototype, \"focusService\", void 0);\n __decorate$1B([\n Optional('rangeService')\n ], NavigationService.prototype, \"rangeService\", void 0);\n __decorate$1B([\n Autowired('columnModel')\n ], NavigationService.prototype, \"columnModel\", void 0);\n __decorate$1B([\n Autowired('rowModel')\n ], NavigationService.prototype, \"rowModel\", void 0);\n __decorate$1B([\n Autowired('ctrlsService')\n ], NavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1B([\n Autowired('rowRenderer')\n ], NavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$1B([\n Autowired('headerNavigationService')\n ], NavigationService.prototype, \"headerNavigationService\", void 0);\n __decorate$1B([\n Autowired(\"rowPositionUtils\")\n ], NavigationService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1B([\n Autowired(\"cellNavigationService\")\n ], NavigationService.prototype, \"cellNavigationService\", void 0);\n __decorate$1B([\n Autowired(\"pinnedRowModel\")\n ], NavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1B([\n PostConstruct\n ], NavigationService.prototype, \"postConstruct\", null);\n NavigationService = __decorate$1B([\n Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PopupEditorWrapper = /** @class */ (function (_super) {\n __extends$1H(PopupEditorWrapper, _super);\n function PopupEditorWrapper(params) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n return _this;\n }\n PopupEditorWrapper.prototype.postConstruct = function () {\n this.gridOptionsWrapper.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);\n this.addKeyDownListener();\n };\n PopupEditorWrapper.prototype.addKeyDownListener = function () {\n var _this = this;\n var eGui = this.getGui();\n var params = this.params;\n var listener = function (event) {\n if (!isUserSuppressingKeyboardEvent(_this.gridOptionsWrapper, event, params.node, params.column, true)) {\n params.onKeyDown(event);\n }\n };\n this.addManagedListener(eGui, 'keydown', listener);\n };\n PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';\n __decorate$1A([\n PostConstruct\n ], PopupEditorWrapper.prototype, \"postConstruct\", null);\n return PopupEditorWrapper;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellComp = /** @class */ (function (_super) {\n __extends$1G(CellComp, _super);\n function CellComp(beans, cellCtrl, printLayout, eRow, editingRow) {\n var _this = _super.call(this) || this;\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n _this.rendererVersion = 0;\n _this.editorVersion = 0;\n _this.beans = beans;\n _this.column = cellCtrl.getColumn();\n _this.rowNode = cellCtrl.getRowNode();\n _this.rowCtrl = cellCtrl.getRowCtrl();\n _this.eRow = eRow;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n _this.forceWrapper = cellCtrl.isForceWrapper();\n _this.refreshWrapper(false);\n var setAttribute = function (name, value, element) {\n var actualElement = element ? element : eGui;\n if (value != null && value != '') {\n actualElement.setAttribute(name, value);\n }\n else {\n actualElement.removeAttribute(name);\n }\n };\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n getFocusableElement: function () { return _this.getFocusableElement(); },\n setTabIndex: function (tabIndex) { return setAttribute('tabindex', tabIndex.toString()); },\n setRole: function (role) { return setAriaRole(eGui, role); },\n setColId: function (colId) { return setAttribute('col-id', colId); },\n setTitle: function (title) { return setAttribute('title', title); },\n setIncludeSelection: function (include) { return _this.includeSelection = include; },\n setIncludeRowDrag: function (include) { return _this.includeRowDrag = include; },\n setIncludeDndSource: function (include) { return _this.includeDndSource = include; },\n setRenderDetails: function (compDetails, valueToDisplay, force) {\n return _this.setRenderDetails(compDetails, valueToDisplay, force);\n },\n setEditDetails: function (compDetails, popup, position) {\n return _this.setEditDetails(compDetails, popup, position);\n },\n getCellEditor: function () { return _this.cellEditor || null; },\n getCellRenderer: function () { return _this.cellRenderer || null; },\n getParentOfValue: function () { return _this.getParentOfValue(); }\n };\n _this.cellCtrl = cellCtrl;\n cellCtrl.setComp(compProxy, _this.getGui(), _this.eCellWrapper, printLayout, editingRow);\n return _this;\n }\n CellComp.prototype.getParentOfValue = function () {\n if (this.eCellValue) {\n // if not editing, and using wrapper, then value goes in eCellValue\n return this.eCellValue;\n }\n if (this.eCellWrapper) {\n // if editing, and using wrapper, value (cell editor) goes in eCellWrapper\n return this.eCellWrapper;\n }\n // if editing or rendering, and not using wrapper, value (or comp) is directly inside cell\n return this.getGui();\n };\n CellComp.prototype.setRenderDetails = function (compDetails, valueToDisplay, forceNewCellRendererInstance) {\n // this can happen if the users asks for the cell to refresh, but we are not showing the vale as we are editing\n var isInlineEditing = this.cellEditor && !this.cellEditorPopupWrapper;\n if (isInlineEditing) {\n return;\n }\n // this means firstRender will be true for one pass only, as it's initialised to undefined\n this.firstRender = this.firstRender == null;\n // if display template has changed, means any previous Cell Renderer is in the wrong location\n var controlWrapperChanged = this.refreshWrapper(false);\n // all of these have dependencies on the eGui, so only do them after eGui is set\n if (compDetails) {\n var neverRefresh = forceNewCellRendererInstance || controlWrapperChanged;\n var cellRendererRefreshSuccessful = neverRefresh ? false : this.refreshCellRenderer(compDetails);\n if (!cellRendererRefreshSuccessful) {\n this.destroyRenderer();\n this.createCellRendererInstance(compDetails);\n }\n }\n else {\n this.destroyRenderer();\n this.insertValueWithoutCellRenderer(valueToDisplay);\n }\n };\n CellComp.prototype.setEditDetails = function (compDetails, popup, position) {\n if (compDetails) {\n this.createCellEditorInstance(compDetails, popup, position);\n }\n else {\n this.destroyEditor();\n }\n };\n CellComp.prototype.removeControls = function () {\n this.checkboxSelectionComp = this.beans.context.destroyBean(this.checkboxSelectionComp);\n this.dndSourceComp = this.beans.context.destroyBean(this.dndSourceComp);\n this.rowDraggingComp = this.beans.context.destroyBean(this.rowDraggingComp);\n };\n // returns true if wrapper was changed\n CellComp.prototype.refreshWrapper = function (editing) {\n var providingControls = this.includeRowDrag || this.includeDndSource || this.includeSelection;\n var usingWrapper = providingControls || this.forceWrapper;\n var putWrapperIn = usingWrapper && this.eCellWrapper == null;\n if (putWrapperIn) {\n this.eCellWrapper = loadTemplate(\"
\");\n this.getGui().appendChild(this.eCellWrapper);\n }\n var takeWrapperOut = !usingWrapper && this.eCellWrapper != null;\n if (takeWrapperOut) {\n removeFromParent(this.eCellWrapper);\n this.eCellWrapper = undefined;\n }\n this.addOrRemoveCssClass('ag-cell-value', !usingWrapper);\n var usingCellValue = !editing && usingWrapper;\n var putCellValueIn = usingCellValue && this.eCellValue == null;\n if (putCellValueIn) {\n this.eCellValue = loadTemplate(\"\");\n this.eCellWrapper.appendChild(this.eCellValue);\n }\n var takeCellValueOut = !usingCellValue && this.eCellValue != null;\n if (takeCellValueOut) {\n removeFromParent(this.eCellValue);\n this.eCellValue = undefined;\n }\n var templateChanged = putWrapperIn || takeWrapperOut || putCellValueIn || takeCellValueOut;\n if (templateChanged) {\n this.removeControls();\n }\n if (!editing && providingControls) {\n this.addControls();\n }\n return templateChanged;\n };\n CellComp.prototype.addControls = function () {\n var id = this.eCellValue.id = \"cell-\" + this.getCompId();\n var describedByIds = [];\n setAriaHidden(this.eCellWrapper, true);\n if (this.includeRowDrag) {\n if (this.rowDraggingComp == null) {\n this.rowDraggingComp = this.cellCtrl.createRowDragComp();\n if (this.rowDraggingComp) {\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);\n }\n }\n }\n if (this.includeDndSource) {\n if (this.dndSourceComp == null) {\n this.dndSourceComp = this.cellCtrl.createDndSource();\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.dndSourceComp.getGui(), this.eCellValue);\n }\n }\n if (this.includeSelection) {\n if (this.checkboxSelectionComp == null) {\n this.checkboxSelectionComp = this.cellCtrl.createSelectionCheckbox();\n this.eCellWrapper.insertBefore(this.checkboxSelectionComp.getGui(), this.eCellValue);\n }\n describedByIds.push(this.checkboxSelectionComp.getCheckboxId());\n }\n describedByIds.push(id);\n setAriaDescribedBy(this.getGui(), describedByIds.join(' '));\n };\n CellComp.prototype.createCellEditorInstance = function (compDetails, popup, position) {\n var _this = this;\n var versionCopy = this.editorVersion;\n var cellEditorPromise = compDetails.newAgStackInstance();\n if (!cellEditorPromise) {\n return;\n } // if empty, userComponentFactory already did a console message\n var params = compDetails.params;\n cellEditorPromise.then(function (c) { return _this.afterCellEditorCreated(versionCopy, c, params, popup, position); });\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n var cellEditorAsync = missing(this.cellEditor);\n if (cellEditorAsync && params.cellStartedEdit) {\n this.cellCtrl.focusCell(true);\n }\n };\n CellComp.prototype.insertValueWithoutCellRenderer = function (valueToDisplay) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n var escapedValue = valueToDisplay != null ? escapeString(valueToDisplay) : null;\n if (escapedValue != null) {\n eParent.innerHTML = escapedValue;\n }\n };\n CellComp.prototype.destroyEditorAndRenderer = function () {\n this.destroyRenderer();\n this.destroyEditor();\n };\n CellComp.prototype.destroyRenderer = function () {\n var context = this.beans.context;\n this.cellRenderer = context.destroyBean(this.cellRenderer);\n removeFromParent(this.cellRendererGui);\n this.cellRendererGui = null;\n this.rendererVersion++;\n };\n CellComp.prototype.destroyEditor = function () {\n var context = this.beans.context;\n if (this.hideEditorPopup) {\n this.hideEditorPopup();\n }\n this.hideEditorPopup = undefined;\n this.cellEditor = context.destroyBean(this.cellEditor);\n this.cellEditorPopupWrapper = context.destroyBean(this.cellEditorPopupWrapper);\n removeFromParent(this.cellEditorGui);\n this.cellEditorGui = null;\n this.editorVersion++;\n };\n CellComp.prototype.refreshCellRenderer = function (compClassAndParams) {\n if (this.cellRenderer == null || this.cellRenderer.refresh == null) {\n return false;\n }\n // if different Cell Renderer configured this time (eg user is using selector, and\n // returns different component) then don't refresh, force recreate of Cell Renderer\n if (this.cellRendererClass !== compClassAndParams.componentClass) {\n return false;\n }\n // take any custom params off of the user\n var result = this.cellRenderer.refresh(compClassAndParams.params);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n };\n CellComp.prototype.createCellRendererInstance = function (compDetails) {\n var _this = this;\n // never use task service if angularCompileRows=true, as that assume the cell renderers\n // are finished when the row is created. also we never use it if animation frame service\n // is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete\n var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();\n var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();\n var useTaskService = !angularCompileRows && !suppressAnimationFrame;\n var displayComponentVersionCopy = this.rendererVersion;\n var componentClass = compDetails.componentClass;\n var createCellRendererFunc = function () {\n var staleTask = _this.rendererVersion !== displayComponentVersionCopy || !_this.isAlive();\n if (staleTask) {\n return;\n }\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n var componentPromise = compDetails.newAgStackInstance();\n var callback = _this.afterCellRendererCreated.bind(_this, displayComponentVersionCopy, componentClass);\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n // we only use task service when rendering for first time, which means it is not used when doing edits.\n // if we changed this (always use task service) would make sense, however it would break tests, possibly\n // test of users.\n if (useTaskService && this.firstRender) {\n this.beans.animationFrameService.createTask(createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n createCellRendererFunc();\n }\n };\n CellComp.prototype.getCtrl = function () {\n return this.cellCtrl;\n };\n CellComp.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellComp.prototype.getCellRenderer = function () {\n return this.cellRenderer;\n };\n CellComp.prototype.getCellEditor = function () {\n return this.cellEditor;\n };\n CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRendererClass, cellRenderer) {\n var staleTask = !this.isAlive() || cellRendererVersion !== this.rendererVersion;\n if (staleTask) {\n this.beans.context.destroyBean(cellRenderer);\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererClass = cellRendererClass;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (this.cellRendererGui != null) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n eParent.appendChild(this.cellRendererGui);\n }\n };\n CellComp.prototype.afterCellEditorCreated = function (requestVersion, cellEditor, params, popup, position) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n var staleComp = requestVersion !== this.editorVersion;\n if (staleComp) {\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n this.beans.context.destroyBean(cellEditor);\n this.cellCtrl.stopEditing();\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(\"AG Grid: cellEditor for column \" + this.column.getId() + \" is missing getGui() method\");\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorGui = cellEditor.getGui();\n var cellEditorInPopup = popup || (cellEditor.isPopup !== undefined && cellEditor.isPopup());\n if (cellEditorInPopup) {\n if (!popup) {\n this.cellCtrl.hackSayEditingInPopup();\n }\n this.addPopupCellEditor(params, position);\n }\n else {\n this.addInCellEditor();\n }\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n };\n CellComp.prototype.addInCellEditor = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsWrapper.getDocument();\n if (eGui.contains(eDocument.activeElement)) {\n eGui.focus();\n }\n this.destroyRenderer();\n this.refreshWrapper(true);\n this.clearParentOfValue();\n if (this.cellEditorGui) {\n var eParent = this.getParentOfValue();\n eParent.appendChild(this.cellEditorGui);\n }\n };\n CellComp.prototype.addPopupCellEditor = function (params, position) {\n var _this = this;\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n var cellEditor = this.cellEditor;\n // if a popup, then we wrap in a popup editor and return the popup\n this.cellEditorPopupWrapper = this.beans.context.createBean(new PopupEditorWrapper(params));\n var ePopupGui = this.cellEditorPopupWrapper.getGui();\n if (this.cellEditorGui) {\n ePopupGui.appendChild(this.cellEditorGui);\n }\n var popupService = this.beans.popupService;\n var useModelPopup = this.beans.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();\n // see if position provided by colDef, if not then check old way of method on cellComp\n var positionToUse = position != null ? position : cellEditor.getPopupPosition ? cellEditor.getPopupPosition() : 'over';\n var positionParams = {\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n ePopup: ePopupGui,\n keepWithinBounds: true\n };\n var positionCallback = positionToUse === 'under' ?\n popupService.positionPopupUnderComponent.bind(popupService, positionParams)\n : popupService.positionPopupOverComponent.bind(popupService, positionParams);\n var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: function () { _this.cellCtrl.onPopupEditorClosed(); },\n anchorToElement: this.getGui(),\n positionCallback: positionCallback,\n ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')\n });\n if (addPopupRes) {\n this.hideEditorPopup = addPopupRes.hideFunc;\n }\n };\n CellComp.prototype.detach = function () {\n this.eRow.removeChild(this.getGui());\n };\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n //\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n CellComp.prototype.destroy = function () {\n this.cellCtrl.stopEditing();\n this.destroyEditorAndRenderer();\n this.removeControls();\n _super.prototype.destroy.call(this);\n };\n CellComp.prototype.clearParentOfValue = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsWrapper.getDocument();\n if (eGui.contains(eDocument.activeElement) && browserSupportsPreventScroll()) {\n eGui.focus({ preventScroll: true });\n }\n clearElement(this.getParentOfValue());\n };\n return CellComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowComp = /** @class */ (function (_super) {\n __extends$1F(RowComp, _super);\n function RowComp(ctrl, beans, containerType) {\n var _this = _super.call(this) || this;\n _this.cellComps = {};\n _this.beans = beans;\n _this.rowCtrl = ctrl;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n var style = eGui.style;\n var compProxy = {\n setDomOrder: function (domOrder) { return _this.domOrder = domOrder; },\n setCellCtrls: function (cellCtrls) { return _this.setCellCtrls(cellCtrls); },\n showFullWidth: function (compDetails) { return _this.showFullWidth(compDetails); },\n getFullWidthCellRenderer: function () { return _this.getFullWidthCellRenderer(); },\n addOrRemoveCssClass: function (name, on) { return _this.addOrRemoveCssClass(name, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n setTop: function (top) { return style.top = top; },\n setTransform: function (transform) { return style.transform = transform; },\n setRowIndex: function (rowIndex) { return eGui.setAttribute('row-index', rowIndex); },\n setRole: function (role) { return setAriaRole(eGui, role); },\n setRowId: function (rowId) { return eGui.setAttribute('row-id', rowId); },\n setRowBusinessKey: function (businessKey) { return eGui.setAttribute('row-business-key', businessKey); },\n setTabIndex: function (tabIndex) { return eGui.setAttribute('tabindex', tabIndex.toString()); }\n };\n ctrl.setComp(compProxy, _this.getGui(), containerType);\n return _this;\n }\n RowComp.prototype.getInitialStyle = function () {\n var transform = this.rowCtrl.getInitialTransform();\n var top = this.rowCtrl.getInitialRowTop();\n return transform ? \"transform: \" + transform : \"top: \" + top;\n };\n RowComp.prototype.showFullWidth = function (compDetails) {\n var _this = this;\n var callback = function (cellRenderer) {\n if (_this.isAlive()) {\n var eGui = cellRenderer.getGui();\n _this.getGui().appendChild(eGui);\n _this.rowCtrl.setupDetailRowAutoHeight(eGui);\n _this.setFullWidthRowComp(cellRenderer);\n }\n else {\n _this.beans.context.destroyBean(cellRenderer);\n }\n };\n // if not in cache, create new one\n var res = compDetails.newAgStackInstance();\n if (!res) {\n return;\n }\n res.then(callback);\n };\n RowComp.prototype.setCellCtrls = function (cellCtrls) {\n var _this = this;\n var cellsToRemove = Object.assign({}, this.cellComps);\n cellCtrls.forEach(function (cellCtrl) {\n var key = cellCtrl.getInstanceId();\n var existingCellComp = _this.cellComps[key];\n if (existingCellComp == null) {\n _this.newCellComp(cellCtrl);\n }\n else {\n cellsToRemove[key] = null;\n }\n });\n var cellCompsToRemove = getAllValuesInObject(cellsToRemove)\n .filter(function (cellComp) { return cellComp != null; });\n this.destroyCells(cellCompsToRemove);\n this.ensureDomOrder(cellCtrls);\n };\n RowComp.prototype.ensureDomOrder = function (cellCtrls) {\n var _this = this;\n if (!this.domOrder) {\n return;\n }\n var elementsInOrder = [];\n cellCtrls.forEach(function (cellCtrl) {\n var cellComp = _this.cellComps[cellCtrl.getInstanceId()];\n if (cellComp) {\n elementsInOrder.push(cellComp.getGui());\n }\n });\n setDomChildOrder(this.getGui(), elementsInOrder);\n };\n RowComp.prototype.newCellComp = function (cellCtrl) {\n var cellComp = new CellComp(this.beans, cellCtrl, this.rowCtrl.isPrintLayout(), this.getGui(), this.rowCtrl.isEditing());\n this.cellComps[cellCtrl.getInstanceId()] = cellComp;\n this.getGui().appendChild(cellComp.getGui());\n };\n RowComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.destroyAllCells();\n };\n RowComp.prototype.destroyAllCells = function () {\n var cellsToDestroy = getAllValuesInObject(this.cellComps).filter(function (cp) { return cp != null; });\n this.destroyCells(cellsToDestroy);\n };\n RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {\n var _this = this;\n if (this.fullWidthCellRenderer) {\n console.error('AG Grid - should not be setting fullWidthRowComponent twice');\n }\n this.fullWidthCellRenderer = fullWidthRowComponent;\n this.addDestroyFunc(function () {\n _this.fullWidthCellRenderer = _this.beans.context.destroyBean(_this.fullWidthCellRenderer);\n });\n };\n RowComp.prototype.getFullWidthCellRenderer = function () {\n return this.fullWidthCellRenderer;\n };\n RowComp.prototype.destroyCells = function (cellComps) {\n var _this = this;\n cellComps.forEach(function (cellComp) {\n // could be old reference, ie removed cell\n if (!cellComp) {\n return;\n }\n // check cellComp belongs in this container\n var instanceId = cellComp.getCtrl().getInstanceId();\n if (_this.cellComps[instanceId] !== cellComp) {\n return;\n }\n cellComp.detach();\n cellComp.destroy();\n _this.cellComps[instanceId] = null;\n });\n };\n return RowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction templateFactory() {\n var name = Component.elementGettingCreated.getAttribute('name');\n var cssClasses = RowContainerCtrl.getRowContainerCssClasses(name);\n var res;\n var template1 = name === RowContainerName.CENTER;\n var template2 = name === RowContainerName.TOP_CENTER\n || name === RowContainerName.STICKY_TOP_CENTER\n || name === RowContainerName.BOTTOM_CENTER;\n if (template1) {\n res = /* html */\n \"
\\n
\\n
\\n
\\n
\";\n }\n else if (template2) {\n res = /* html */\n \"
\\n
\\n
\";\n }\n else {\n res = /* html */\n \"
\";\n }\n return res;\n}\nvar RowContainerComp = /** @class */ (function (_super) {\n __extends$1E(RowContainerComp, _super);\n function RowContainerComp() {\n var _this = _super.call(this, templateFactory()) || this;\n _this.rowComps = {};\n _this.name = Component.elementGettingCreated.getAttribute('name');\n _this.type = getRowContainerTypeForName(_this.name);\n return _this;\n }\n RowContainerComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n setViewportHeight: function (height) { return _this.eViewport.style.height = height; },\n setRowCtrls: function (rowCtrls) { return _this.setRowCtrls(rowCtrls); },\n setDomOrder: function (domOrder) {\n _this.domOrder = domOrder;\n },\n setContainerWidth: function (width) { return _this.eContainer.style.width = width; }\n };\n var ctrl = this.createManagedBean(new RowContainerCtrl(this.name));\n ctrl.setComp(compProxy, this.eContainer, this.eViewport, this.eWrapper);\n };\n RowContainerComp.prototype.preDestroy = function () {\n // destroys all row comps\n this.setRowCtrls([]);\n };\n RowContainerComp.prototype.setRowCtrls = function (rowCtrls) {\n var _this = this;\n var oldRows = __assign$3({}, this.rowComps);\n this.rowComps = {};\n this.lastPlacedElement = null;\n var processRow = function (rowCon) {\n var instanceId = rowCon.getInstanceId();\n var existingRowComp = oldRows[instanceId];\n if (existingRowComp) {\n _this.rowComps[instanceId] = existingRowComp;\n delete oldRows[instanceId];\n _this.ensureDomOrder(existingRowComp.getGui());\n }\n else {\n var rowComp = _this.newRowComp(rowCon);\n _this.rowComps[instanceId] = rowComp;\n _this.appendRow(rowComp.getGui());\n }\n };\n rowCtrls.forEach(processRow);\n getAllValuesInObject(oldRows).forEach(function (oldRowComp) {\n _this.eContainer.removeChild(oldRowComp.getGui());\n oldRowComp.destroy();\n });\n setAriaRole(this.eContainer, rowCtrls.length ? \"rowgroup\" : \"presentation\");\n };\n RowContainerComp.prototype.appendRow = function (element) {\n if (this.domOrder) {\n insertWithDomOrder(this.eContainer, element, this.lastPlacedElement);\n }\n else {\n this.eContainer.appendChild(element);\n }\n this.lastPlacedElement = element;\n };\n RowContainerComp.prototype.ensureDomOrder = function (eRow) {\n if (this.domOrder) {\n ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n };\n RowContainerComp.prototype.newRowComp = function (rowCtrl) {\n RowContainerCtrl.getPinned(this.name);\n var res = new RowComp(rowCtrl, this.beans, this.type);\n return res;\n };\n __decorate$1z([\n Autowired('beans')\n ], RowContainerComp.prototype, \"beans\", void 0);\n __decorate$1z([\n RefSelector('eViewport')\n ], RowContainerComp.prototype, \"eViewport\", void 0);\n __decorate$1z([\n RefSelector('eContainer')\n ], RowContainerComp.prototype, \"eContainer\", void 0);\n __decorate$1z([\n RefSelector('eWrapper')\n ], RowContainerComp.prototype, \"eWrapper\", void 0);\n __decorate$1z([\n PostConstruct\n ], RowContainerComp.prototype, \"postConstruct\", null);\n __decorate$1z([\n PreDestroy\n ], RowContainerComp.prototype, \"preDestroy\", null);\n return RowContainerComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropPivotTarget = /** @class */ (function () {\n function BodyDropPivotTarget(pinned) {\n this.columnsToAggregate = [];\n this.columnsToGroup = [];\n this.columnsToPivot = [];\n this.pinned = pinned;\n }\n /** Callback for when drag enters */\n BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {\n var _this = this;\n this.clearColumnsList();\n // in pivot mode, we don't accept any drops if functions are read only\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var dragColumns = draggingEvent.dragItem.columns;\n if (!dragColumns) {\n return;\n }\n dragColumns.forEach(function (column) {\n // we don't allow adding secondary columns\n if (!column.isPrimary()) {\n return;\n }\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n _this.columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n _this.columnsToGroup.push(column);\n }\n else if (column.isAllowPivot()) {\n _this.columnsToPivot.push(column);\n }\n });\n };\n BodyDropPivotTarget.prototype.getIconName = function () {\n var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;\n if (totalColumns > 0) {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n return null;\n };\n /** Callback for when drag leaves */\n BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {\n // if we are taking columns out of the center, then we remove them from the report\n this.clearColumnsList();\n };\n BodyDropPivotTarget.prototype.clearColumnsList = function () {\n this.columnsToAggregate.length = 0;\n this.columnsToGroup.length = 0;\n this.columnsToPivot.length = 0;\n };\n /** Callback for when dragging */\n BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {\n };\n /** Callback for when drag stops */\n BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {\n if (this.columnsToAggregate.length > 0) {\n this.columnModel.addValueColumns(this.columnsToAggregate, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToGroup.length > 0) {\n this.columnModel.addRowGroupColumns(this.columnsToGroup, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToPivot.length > 0) {\n this.columnModel.addPivotColumns(this.columnsToPivot, \"toolPanelDragAndDrop\");\n }\n };\n __decorate$1y([\n Autowired('columnModel')\n ], BodyDropPivotTarget.prototype, \"columnModel\", void 0);\n __decorate$1y([\n Autowired('gridOptionsWrapper')\n ], BodyDropPivotTarget.prototype, \"gridOptionsWrapper\", void 0);\n return BodyDropPivotTarget;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MoveColumnFeature = /** @class */ (function () {\n function MoveColumnFeature(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.pinned = pinned;\n this.eContainer = eContainer;\n this.centerContainer = !exists(pinned);\n }\n MoveColumnFeature.prototype.init = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n MoveColumnFeature.prototype.getIconName = function () {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n };\n MoveColumnFeature.prototype.onDragEnter = function (draggingEvent) {\n // we do dummy drag, so make sure column appears in the right location when first placed\n var columns = draggingEvent.dragItem.columns;\n var dragCameFromToolPanel = draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n if (dragCameFromToolPanel) {\n // the if statement doesn't work if drag leaves grid, then enters again\n this.setColumnsVisible(columns, true, \"uiColumnDragged\");\n }\n else {\n // restore previous state of visible columns upon re-entering. this means if the user drags\n // a group out, and then drags the group back in, only columns that were originally visible\n // will be visible again. otherwise a group with three columns (but only two visible) could\n // be dragged out, then when it's dragged in again, all three are visible. this stops that.\n var visibleState_1 = draggingEvent.dragItem.visibleState;\n var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });\n this.setColumnsVisible(visibleColumns, true, \"uiColumnDragged\");\n }\n this.setColumnsPinned(columns, this.pinned, \"uiColumnDragged\");\n this.onDragging(draggingEvent, true, true);\n };\n MoveColumnFeature.prototype.onDragLeave = function (draggingEvent) {\n this.ensureIntervalCleared();\n };\n MoveColumnFeature.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.columnModel.setColumnsVisible(allowedCols, visible, source);\n }\n };\n MoveColumnFeature.prototype.setColumnsPinned = function (columns, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n this.columnModel.setColumnsPinned(allowedCols, pinned, source);\n }\n };\n MoveColumnFeature.prototype.onDragStop = function () {\n this.ensureIntervalCleared();\n };\n MoveColumnFeature.prototype.normaliseX = function (x) {\n // flip the coordinate if doing RTL\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var clientWidth = this.eContainer.clientWidth;\n x = clientWidth - x;\n }\n // adjust for scroll only if centre container (the pinned containers don't scroll)\n if (this.centerContainer) {\n x += this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n }\n return x;\n };\n MoveColumnFeature.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {\n if (this.centerContainer) {\n // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)\n // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen\n var firstVisiblePixel = this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n var lastVisiblePixel = firstVisiblePixel + this.ctrlsService.getCenterRowContainerCtrl().getCenterWidth();\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n else {\n this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n if (this.needToMoveLeft || this.needToMoveRight) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n }\n };\n MoveColumnFeature.prototype.onDragging = function (draggingEvent, fromEnter, fakeEvent) {\n var _this = this;\n if (fromEnter === void 0) { fromEnter = false; }\n if (fakeEvent === void 0) { fakeEvent = false; }\n this.lastDraggingEvent = draggingEvent;\n // if moving up or down (ie not left or right) then do nothing\n if (missing(draggingEvent.hDirection)) {\n return;\n }\n var mouseXNormalised = this.normaliseX(draggingEvent.x);\n // if the user is dragging into the panel, ie coming from the side panel into the main grid,\n // we don't want to scroll the grid this time, it would appear like the table is jumping\n // each time a column is dragged in.\n if (!fromEnter) {\n this.checkCenterForScrolling(mouseXNormalised);\n }\n var hDirectionNormalised = this.normaliseDirection(draggingEvent.hDirection);\n var dragSourceType = draggingEvent.dragSource.type;\n var columnsToMove = draggingEvent.dragSource.getDragItem().columns;\n columnsToMove = columnsToMove.filter(function (col) {\n if (col.getColDef().lockPinned) {\n // if locked return true only if both col and container are same pin type.\n // double equals (==) here on purpose so that null==undefined is true (for not pinned options)\n return col.getPinned() == _this.pinned;\n }\n // if not pin locked, then always allowed to be in this container\n return true;\n });\n this.attemptMoveColumns(dragSourceType, columnsToMove, hDirectionNormalised, mouseXNormalised, fromEnter, fakeEvent);\n };\n MoveColumnFeature.prototype.normaliseDirection = function (hDirection) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n switch (hDirection) {\n case HorizontalDirection.Left: return HorizontalDirection.Right;\n case HorizontalDirection.Right: return HorizontalDirection.Left;\n default: console.error(\"AG Grid: Unknown direction \" + hDirection);\n }\n }\n else {\n return hDirection;\n }\n };\n // returns the index of the first column in the list ONLY if the cols are all beside\n // each other. if the cols are not beside each other, then returns null\n MoveColumnFeature.prototype.calculateOldIndex = function (movingCols) {\n var gridCols = this.columnModel.getAllGridColumns();\n var indexes = sortNumerically(movingCols.map(function (col) { return gridCols.indexOf(col); }));\n var firstIndex = indexes[0];\n var lastIndex = last(indexes);\n var spread = lastIndex - firstIndex;\n var gapsExist = spread !== indexes.length - 1;\n return gapsExist ? null : firstIndex;\n };\n MoveColumnFeature.prototype.attemptMoveColumns = function (dragSourceType, allMovingColumns, hDirection, mouseX, fromEnter, fakeEvent) {\n var draggingLeft = hDirection === HorizontalDirection.Left;\n var draggingRight = hDirection === HorizontalDirection.Right;\n if (dragSourceType === DragSourceType.HeaderCell) {\n // If the columns we're dragging are the only visible columns of their group, move the hidden ones too\n var newCols_1 = [];\n allMovingColumns.forEach(function (col) {\n var movingGroup = null;\n var parent = col.getParent();\n while (parent != null && parent.getDisplayedLeafColumns().length === 1) {\n movingGroup = parent;\n parent = parent.getParent();\n }\n if (movingGroup != null) {\n movingGroup.getLeafColumns().forEach(function (newCol) {\n if (!newCols_1.includes(newCol)) {\n newCols_1.push(newCol);\n }\n });\n }\n else if (!newCols_1.includes(col)) {\n newCols_1.push(col);\n }\n });\n allMovingColumns = newCols_1;\n }\n // it is important to sort the moving columns as they are in grid columns, as the list of moving columns\n // could themselves be part of 'married children' groups, which means we need to maintain the order within\n // the moving list.\n var allMovingColumnsOrdered = allMovingColumns.slice();\n this.columnModel.sortColumnsLikeGridColumns(allMovingColumnsOrdered);\n var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);\n // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move\n // (ie left or right) to the mouse direction. however\n var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);\n if (validMoves.length === 0) {\n return;\n }\n var firstValidMove = validMoves[0];\n // the two check below stop an error when the user grabs a group my a middle column, then\n // it is possible the mouse pointer is to the right of a column while been dragged left.\n // so we need to make sure that the mouse pointer is actually left of the left most column\n // if moving left, and right of the right most column if moving right\n // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from\n // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should\n // place the column to the RHS even if the mouse is moving left and the column is already on\n // the LHS. otherwise we stick to the rule described above.\n var constrainDirection = oldIndex !== null && !fromEnter;\n // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag\n if (dragSourceType == DragSourceType.HeaderCell) {\n constrainDirection = oldIndex !== null;\n }\n // if the event was faked by a change in column pin state, then the original location of the column\n // is not reliable for dictating where the column may now be placed.\n if (constrainDirection && !fakeEvent) {\n // only allow left drag if this column is moving left\n if (draggingLeft && firstValidMove >= oldIndex) {\n return;\n }\n // only allow right drag if this column is moving right\n if (draggingRight && firstValidMove <= oldIndex) {\n return;\n }\n }\n // From when we find a move that passes all the rules\n // Remember what that move would look like in terms of displayed cols\n // keep going with further moves until we find a different result in displayed output\n // In this way potentialMoves contains all potential moves over 'hidden' columns\n var displayedCols = this.columnModel.getAllDisplayedColumns();\n var potentialMoves = [];\n var targetOrder = null;\n for (var i = 0; i < validMoves.length; i++) {\n var move = validMoves[i];\n var order = this.columnModel.getProposedColumnOrder(allMovingColumnsOrdered, move);\n if (!this.columnModel.doesOrderPassRules(order)) {\n continue;\n }\n var displayedOrder = order.filter(function (col) { return displayedCols.includes(col); });\n if (targetOrder === null) {\n targetOrder = displayedOrder;\n }\n else if (!_.areEqual(displayedOrder, targetOrder)) {\n break; // Stop looking for potential moves if the displayed result changes from the target\n }\n var fragCount = this.groupFragCount(order);\n potentialMoves.push({ move: move, fragCount: fragCount });\n }\n if (potentialMoves.length === 0) {\n return;\n }\n // The best move is the move with least group fragmentation\n potentialMoves.sort(function (a, b) { return a.fragCount - b.fragCount; });\n var bestMove = potentialMoves[0].move;\n this.columnModel.moveColumns(allMovingColumnsOrdered, bestMove, \"uiColumnDragged\");\n };\n // A measure of how fragmented in terms of groups an order of columns is\n MoveColumnFeature.prototype.groupFragCount = function (columns) {\n function parents(col) {\n var result = [];\n var parent = col.getOriginalParent();\n while (parent != null) {\n result.push(parent);\n parent = parent.getOriginalParent();\n }\n return result;\n }\n var count = 0;\n var _loop_1 = function (i) {\n var _a;\n var a = parents(columns[i]);\n var b = parents(columns[i + 1]);\n // iterate over the longest one\n _a = __read$e(a.length > b.length ? [a, b] : [b, a], 2), a = _a[0], b = _a[1];\n a.forEach(function (parent) {\n if (b.indexOf(parent) === -1) {\n count++; // More fragmented if other column doesn't share the parent\n }\n });\n };\n for (var i = 0; i < columns.length - 1; i++) {\n _loop_1(i);\n }\n return count;\n };\n MoveColumnFeature.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {\n var isMoveBlocked = this.gridOptionsWrapper.isSuppressMovableColumns() || movingCols.some(function (col) { return col.getColDef().suppressMovable; });\n if (isMoveBlocked) {\n return [];\n }\n // this is the list of cols on the screen, so it's these we use when comparing the x mouse position\n var allDisplayedCols = this.columnModel.getDisplayedColumns(this.pinned);\n // but this list is the list of all cols, when we move a col it's the index within this list that gets used,\n // so the result we return has to be and index location for this list\n var allGridCols = this.columnModel.getAllGridColumns();\n var movingDisplayedCols = allDisplayedCols.filter(function (col) { return includes(movingCols, col); });\n var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !includes(movingCols, col); });\n var otherGridCols = allGridCols.filter(function (col) { return !includes(movingCols, col); });\n // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.\n // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving\n // col between b and c (so that it is under the mouse position).\n var displayIndex = 0;\n var availableWidth = mouseX;\n // if we are dragging right, then the columns will be to the left of the mouse, so we also want to\n // include the width of the moving columns\n if (draggingRight) {\n var widthOfMovingDisplayedCols_1 = 0;\n movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });\n availableWidth -= widthOfMovingDisplayedCols_1;\n }\n if (availableWidth > 0) {\n // now count how many of the displayed columns will fit to the left\n for (var i = 0; i < otherDisplayedCols.length; i++) {\n var col = otherDisplayedCols[i];\n availableWidth -= col.getActualWidth();\n if (availableWidth < 0) {\n break;\n }\n displayIndex++;\n }\n // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works\n if (draggingRight) {\n displayIndex++;\n }\n }\n // the display index is with respect to all the showing columns, however when we move, it's with\n // respect to all grid columns, so we need to translate from display index to grid index\n var firstValidMove;\n if (displayIndex > 0) {\n var leftColumn = otherDisplayedCols[displayIndex - 1];\n firstValidMove = otherGridCols.indexOf(leftColumn) + 1;\n }\n else {\n firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);\n if (firstValidMove === -1) {\n firstValidMove = 0;\n }\n }\n var validMoves = [firstValidMove];\n var numberComparator = function (a, b) { return a - b; };\n // add in other valid moves due to hidden columns and married children. for example, a particular\n // move might break a group that has married children (so move isn't valid), however there could\n // be hidden columns (not displayed) that we could jump over to make the move valid. because\n // they are hidden, user doesn't see any different, however it allows moves that would otherwise\n // not work. for example imagine a group with 9 columns and all columns are hidden except the\n // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will\n // be relative to the not-shown column, however we need to consider the move jumping over all the\n // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the\n // grid, there would be no way to put a column after it (as the grid would only consider beside the\n // visible column, which would fail valid move rules).\n if (draggingRight) {\n // if dragging right, then we add all the additional moves to the right. so in other words\n // if the next move is not valid, find the next move to the right that is valid.\n var pointer = firstValidMove + 1;\n var lastIndex = allGridCols.length - 1;\n while (pointer <= lastIndex) {\n validMoves.push(pointer);\n pointer++;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator);\n }\n else {\n // if dragging left we do the reverse of dragging right, we add in all the valid moves to the\n // left. however we also have to consider moves to the right for all hidden columns first.\n // (this logic is hard to reason with, it was worked out with trial and error,\n // more observation rather than science).\n // add moves to the right\n var pointer = firstValidMove;\n var lastIndex = allGridCols.length - 1;\n var displacedCol = allGridCols[pointer];\n while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {\n pointer++;\n validMoves.push(pointer);\n displacedCol = allGridCols[pointer];\n }\n // add moves to the left\n pointer = firstValidMove - 1;\n var firstDisplayIndex = 0;\n while (pointer >= firstDisplayIndex) {\n validMoves.push(pointer);\n pointer--;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator).reverse();\n }\n return validMoves;\n };\n // isHidden takes into account visible=false and group=closed, ie it is not displayed\n MoveColumnFeature.prototype.isColumnHidden = function (displayedColumns, col) {\n return displayedColumns.indexOf(col) < 0;\n };\n MoveColumnFeature.prototype.ensureIntervalStarted = function () {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.failedMoveAttempts = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n if (this.needToMoveLeft) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_LEFT, true);\n }\n else {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_RIGHT, true);\n }\n }\n };\n MoveColumnFeature.prototype.ensureIntervalCleared = function () {\n if (this.movingIntervalId) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_MOVE);\n }\n };\n MoveColumnFeature.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved = null;\n var scrollFeature = this.gridBodyCon.getScrollFeature();\n if (this.needToMoveLeft) {\n pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);\n }\n else if (this.needToMoveRight) {\n pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n this.failedMoveAttempts = 0;\n }\n else {\n // we count the failed move attempts. if we fail to move 7 times, then we pin the column.\n // this is how we achieve pining by dragging the column to the edge of the grid.\n this.failedMoveAttempts++;\n var columns = this.lastDraggingEvent.dragItem.columns;\n var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n if (columnsThatCanPin.length > 0) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_PINNED);\n if (this.failedMoveAttempts > 7) {\n var pinType = this.needToMoveLeft ? Constants.PINNED_LEFT : Constants.PINNED_RIGHT;\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n };\n __decorate$1x([\n Autowired('columnModel')\n ], MoveColumnFeature.prototype, \"columnModel\", void 0);\n __decorate$1x([\n Autowired('dragAndDropService')\n ], MoveColumnFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1x([\n Autowired('gridOptionsWrapper')\n ], MoveColumnFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1x([\n Autowired('ctrlsService')\n ], MoveColumnFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1x([\n PostConstruct\n ], MoveColumnFeature.prototype, \"init\", null);\n return MoveColumnFeature;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropTarget = /** @class */ (function (_super) {\n __extends$1D(BodyDropTarget, _super);\n function BodyDropTarget(pinned, eContainer) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.eContainer = eContainer;\n return _this;\n }\n BodyDropTarget.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n switch (_this.pinned) {\n case Constants.PINNED_LEFT:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],\n [p.bottomLeftRowContainerCtrl.getContainerElement()],\n [p.topLeftRowContainerCtrl.getContainerElement()]\n ];\n break;\n case Constants.PINNED_RIGHT:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.rightRowContainerCtrl.getContainerElement()],\n [p.bottomRightRowContainerCtrl.getContainerElement()],\n [p.topRightRowContainerCtrl.getContainerElement()]\n ];\n break;\n default:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.centerRowContainerCtrl.getViewportElement()],\n [p.bottomCenterRowContainerCtrl.getViewportElement()],\n [p.topCenterRowContainerCtrl.getViewportElement()]\n ];\n break;\n }\n });\n };\n BodyDropTarget.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.HeaderCell ||\n (type === DragSourceType.ToolPanel && this.gridOptionsWrapper.isAllowDragFromColumnsToolPanel());\n };\n BodyDropTarget.prototype.getSecondaryContainers = function () {\n return this.eSecondaryContainers;\n };\n BodyDropTarget.prototype.getContainer = function () {\n return this.eContainer;\n };\n BodyDropTarget.prototype.init = function () {\n this.moveColumnFeature = this.createManagedBean(new MoveColumnFeature(this.pinned, this.eContainer));\n this.bodyDropPivotTarget = this.createManagedBean(new BodyDropPivotTarget(this.pinned));\n this.dragAndDropService.addDropTarget(this);\n };\n BodyDropTarget.prototype.getIconName = function () {\n return this.currentDropListener.getIconName();\n };\n // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel\n // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when\n // dropped into the grid's body.\n BodyDropTarget.prototype.isDropColumnInPivotMode = function (draggingEvent) {\n // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's\n // a standard column move, however if it came from the toolpanel, then we are introducing\n // dimensions or values to the grid\n return this.columnModel.isPivotMode() && draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n };\n BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {\n // we pick the drop listener depending on whether we are in pivot mode are not. if we are\n // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise\n // we change visibility state and position.\n this.currentDropListener = this.isDropColumnInPivotMode(draggingEvent) ? this.bodyDropPivotTarget : this.moveColumnFeature;\n this.currentDropListener.onDragEnter(draggingEvent);\n };\n BodyDropTarget.prototype.onDragLeave = function (params) {\n this.currentDropListener.onDragLeave(params);\n };\n BodyDropTarget.prototype.onDragging = function (params) {\n this.currentDropListener.onDragging(params);\n };\n BodyDropTarget.prototype.onDragStop = function (params) {\n this.currentDropListener.onDragStop(params);\n };\n __decorate$1w([\n Autowired('dragAndDropService')\n ], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n __decorate$1w([\n Autowired('columnModel')\n ], BodyDropTarget.prototype, \"columnModel\", void 0);\n __decorate$1w([\n Autowired('ctrlsService')\n ], BodyDropTarget.prototype, \"ctrlsService\", void 0);\n __decorate$1w([\n PostConstruct\n ], BodyDropTarget.prototype, \"postConstruct\", null);\n __decorate$1w([\n PostConstruct\n ], BodyDropTarget.prototype, \"init\", null);\n return BodyDropTarget;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$b = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$d(arguments[i]));\n return ar;\n};\nvar CssClassApplier = /** @class */ (function () {\n function CssClassApplier() {\n }\n CssClassApplier.getHeaderClassesFromColDef = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.getToolPanelClassesFromColDef = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.getClassParams = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n return {\n // bad naming, as colDef here can be a group or a column,\n // however most people won't appreciate the difference,\n // so keeping it as colDef to avoid confusion.\n colDef: abstractColDef,\n column: column,\n columnGroup: columnGroup,\n api: gridOptionsWrapper.getApi(),\n columnApi: gridOptionsWrapper.getColumnApi(),\n context: gridOptionsWrapper.getContext()\n };\n };\n CssClassApplier.getColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return [];\n }\n var classToUse;\n if (typeof classesOrFunc === 'function') {\n var params = this.getClassParams(abstractColDef, gridOptionsWrapper, column, columnGroup);\n classToUse = classesOrFunc(params);\n }\n else {\n classToUse = classesOrFunc;\n }\n if (typeof classToUse === 'string') {\n return [classToUse];\n }\n if (Array.isArray(classToUse)) {\n return __spread$b(classToUse);\n }\n return [];\n };\n return CssClassApplier;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellComp = /** @class */ (function (_super) {\n __extends$1C(HeaderCellComp, _super);\n function HeaderCellComp(ctrl) {\n var _this = _super.call(this, HeaderCellComp.TEMPLATE, ctrl) || this;\n _this.headerCompVersion = 0;\n _this.column = ctrl.getColumnGroupChild();\n _this.pinned = ctrl.getPinned();\n return _this;\n }\n HeaderCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (name, value, element) {\n var actualElement = element ? element : eGui;\n if (value != null && value != '') {\n actualElement.setAttribute(name, value);\n }\n else {\n actualElement.removeAttribute(name);\n }\n };\n var compProxy = {\n setWidth: function (width) { return eGui.style.width = width; },\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setColId: function (id) { return setAttribute('col-id', id); },\n setTitle: function (title) { return setAttribute('title', title); },\n setAriaDescription: function (label) { return setAriaDescription(eGui, label); },\n setAriaSort: function (sort) { return sort ? setAriaSort(eGui, sort) : removeAriaSort(eGui); },\n setUserCompDetails: function (compDetails) { return _this.setUserCompDetails(compDetails); },\n getUserCompInstance: function () { return _this.headerComp; }\n };\n this.ctrl.setComp(compProxy, this.getGui(), this.eResize, this.eHeaderCompWrapper);\n var selectAllGui = this.ctrl.getSelectAllGui();\n this.eResize.insertAdjacentElement('afterend', selectAllGui);\n };\n HeaderCellComp.prototype.destroyHeaderComp = function () {\n if (this.headerComp) {\n this.eHeaderCompWrapper.removeChild(this.headerCompGui);\n this.headerComp = this.destroyBean(this.headerComp);\n this.headerCompGui = undefined;\n }\n };\n HeaderCellComp.prototype.setUserCompDetails = function (compDetails) {\n var _this = this;\n this.headerCompVersion++;\n var versionCopy = this.headerCompVersion;\n compDetails.newAgStackInstance().then(function (comp) { return _this.afterCompCreated(versionCopy, comp); });\n };\n HeaderCellComp.prototype.afterCompCreated = function (version, headerComp) {\n if (version != this.headerCompVersion || !this.isAlive()) {\n this.destroyBean(headerComp);\n return;\n }\n this.destroyHeaderComp();\n this.headerComp = headerComp;\n this.headerCompGui = headerComp.getGui();\n this.eHeaderCompWrapper.appendChild(this.headerCompGui);\n this.ctrl.setDragSource(this.getGui());\n };\n HeaderCellComp.TEMPLATE = \"
\\n
\\n
\\n
\";\n __decorate$1v([\n RefSelector('eResize')\n ], HeaderCellComp.prototype, \"eResize\", void 0);\n __decorate$1v([\n RefSelector('eHeaderCompWrapper')\n ], HeaderCellComp.prototype, \"eHeaderCompWrapper\", void 0);\n __decorate$1v([\n PostConstruct\n ], HeaderCellComp.prototype, \"postConstruct\", null);\n __decorate$1v([\n PreDestroy\n ], HeaderCellComp.prototype, \"destroyHeaderComp\", null);\n return HeaderCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellComp = /** @class */ (function (_super) {\n __extends$1B(HeaderGroupCellComp, _super);\n function HeaderGroupCellComp(ctrl) {\n return _super.call(this, HeaderGroupCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderGroupCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (key, value) {\n return value != undefined ? eGui.setAttribute(key, value) : eGui.removeAttribute(key);\n };\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveResizableCssClass: function (cssClassName, on) { return _this.eResize.classList.toggle(cssClassName, on); },\n setWidth: function (width) { return eGui.style.width = width; },\n setColId: function (id) { return eGui.setAttribute(\"col-id\", id); },\n setAriaExpanded: function (expanded) { return setAttribute('aria-expanded', expanded); },\n setTitle: function (title) { return setAttribute(\"title\", title); },\n setUserCompDetails: function (details) { return _this.setUserCompDetails(details); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eResize);\n };\n HeaderGroupCellComp.prototype.setUserCompDetails = function (details) {\n var _this = this;\n details.newAgStackInstance().then(function (comp) { return _this.afterHeaderCompCreated(comp); });\n };\n HeaderGroupCellComp.prototype.afterHeaderCompCreated = function (headerGroupComp) {\n var _this = this;\n var destroyFunc = function () { return _this.destroyBean(headerGroupComp); };\n if (!this.isAlive()) {\n destroyFunc();\n return;\n }\n this.getGui().appendChild(headerGroupComp.getGui());\n this.addDestroyFunc(destroyFunc);\n this.ctrl.setDragSource(headerGroupComp.getGui());\n };\n HeaderGroupCellComp.TEMPLATE = \"
\\n
\\n
\";\n __decorate$1u([\n Autowired('userComponentFactory')\n ], HeaderGroupCellComp.prototype, \"userComponentFactory\", void 0);\n __decorate$1u([\n RefSelector('eResize')\n ], HeaderGroupCellComp.prototype, \"eResize\", void 0);\n __decorate$1u([\n PostConstruct\n ], HeaderGroupCellComp.prototype, \"postConstruct\", null);\n return HeaderGroupCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderRowType;\n(function (HeaderRowType) {\n HeaderRowType[\"COLUMN_GROUP\"] = \"group\";\n HeaderRowType[\"COLUMN\"] = \"column\";\n HeaderRowType[\"FLOATING_FILTER\"] = \"filter\";\n})(HeaderRowType || (HeaderRowType = {}));\nvar HeaderRowComp = /** @class */ (function (_super) {\n __extends$1A(HeaderRowComp, _super);\n function HeaderRowComp(ctrl) {\n var _this = _super.call(this) || this;\n _this.headerComps = {};\n var extraClass = ctrl.getType() == HeaderRowType.COLUMN_GROUP ? \"ag-header-row-column-group\" :\n ctrl.getType() == HeaderRowType.FLOATING_FILTER ? \"ag-header-row-column-filter\" : \"ag-header-row-column\";\n _this.setTemplate(/* html */ \"
\");\n _this.ctrl = ctrl;\n return _this;\n }\n //noinspection JSUnusedLocalSymbols\n HeaderRowComp.prototype.init = function () {\n var _this = this;\n var compProxy = {\n setTransform: function (transform) { return _this.getGui().style.transform = transform; },\n setHeight: function (height) { return _this.getGui().style.height = height; },\n setTop: function (top) { return _this.getGui().style.top = top; },\n setHeaderCtrls: function (ctrls) { return _this.setHeaderCtrls(ctrls); },\n setWidth: function (width) { return _this.getGui().style.width = width; },\n setAriaRowIndex: function (rowIndex) { return setAriaRowIndex(_this.getGui(), rowIndex); }\n };\n this.ctrl.setComp(compProxy);\n };\n HeaderRowComp.prototype.destroyHeaderCtrls = function () {\n this.setHeaderCtrls([]);\n };\n HeaderRowComp.prototype.setHeaderCtrls = function (ctrls) {\n var _this = this;\n if (!this.isAlive()) {\n return;\n }\n var oldComps = this.headerComps;\n this.headerComps = {};\n ctrls.forEach(function (ctrl) {\n var id = ctrl.getInstanceId();\n var comp = oldComps[id];\n delete oldComps[id];\n if (comp == null) {\n comp = _this.createHeaderComp(ctrl);\n _this.getGui().appendChild(comp.getGui());\n }\n _this.headerComps[id] = comp;\n });\n iterateObject(oldComps, function (id, comp) {\n _this.getGui().removeChild(comp.getGui());\n _this.destroyBean(comp);\n });\n var ensureDomOrder = this.gridOptionsWrapper.isEnsureDomOrder();\n if (ensureDomOrder) {\n var comps = getAllValuesInObject(this.headerComps);\n // ordering the columns by left position orders them in the order they appear on the screen\n comps.sort(function (a, b) {\n var leftA = a.getCtrl().getColumnGroupChild().getLeft();\n var leftB = b.getCtrl().getColumnGroupChild().getLeft();\n return leftA - leftB;\n });\n var elementsInOrder = comps.map(function (c) { return c.getGui(); });\n setDomChildOrder(this.getGui(), elementsInOrder);\n }\n };\n HeaderRowComp.prototype.createHeaderComp = function (headerCtrl) {\n var result;\n switch (this.ctrl.getType()) {\n case HeaderRowType.COLUMN_GROUP:\n result = new HeaderGroupCellComp(headerCtrl);\n break;\n case HeaderRowType.FLOATING_FILTER:\n result = new HeaderFilterCellComp(headerCtrl);\n break;\n default:\n result = new HeaderCellComp(headerCtrl);\n break;\n }\n this.createBean(result);\n result.setParentComponent(this);\n return result;\n };\n __decorate$1t([\n PostConstruct\n ], HeaderRowComp.prototype, \"init\", null);\n __decorate$1t([\n PreDestroy\n ], HeaderRowComp.prototype, \"destroyHeaderCtrls\", null);\n return HeaderRowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence$1 = 0;\nvar AbstractHeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1z(AbstractHeaderCellCtrl, _super);\n function AbstractHeaderCellCtrl(columnGroupChild, parentRowCtrl) {\n var _this = _super.call(this) || this;\n _this.lastFocusEvent = null;\n _this.columnGroupChild = columnGroupChild;\n _this.parentRowCtrl = parentRowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = columnGroupChild.getUniqueId() + '-' + instanceIdSequence$1++;\n return _this;\n }\n AbstractHeaderCellCtrl.prototype.shouldStopEventPropagation = function (e) {\n var _a = this.focusService.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;\n return isUserSuppressingHeaderKeyboardEvent(this.gridOptionsWrapper, e, headerRowIndex, column);\n };\n AbstractHeaderCellCtrl.prototype.getWrapperHasFocus = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n return activeEl === this.eGui;\n };\n AbstractHeaderCellCtrl.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n this.addDomData();\n };\n AbstractHeaderCellCtrl.prototype.handleKeyDown = function (e) {\n var wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (wrapperHasFocus) {\n e.preventDefault();\n }\n }\n };\n AbstractHeaderCellCtrl.prototype.addDomData = function () {\n var _this = this;\n var key = AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL;\n this.gridOptionsWrapper.setDomData(this.eGui, key, this);\n this.addDestroyFunc(function () { return _this.gridOptionsWrapper.setDomData(_this.eGui, key, null); });\n };\n AbstractHeaderCellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n AbstractHeaderCellCtrl.prototype.focus = function (event) {\n if (!this.eGui) {\n return false;\n }\n this.lastFocusEvent = event || null;\n this.eGui.focus();\n return true;\n };\n AbstractHeaderCellCtrl.prototype.getRowIndex = function () {\n return this.parentRowCtrl.getRowIndex();\n };\n AbstractHeaderCellCtrl.prototype.getParentRowCtrl = function () {\n return this.parentRowCtrl;\n };\n AbstractHeaderCellCtrl.prototype.getPinned = function () {\n return this.parentRowCtrl.getPinned();\n };\n AbstractHeaderCellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n AbstractHeaderCellCtrl.prototype.getColumnGroupChild = function () {\n return this.columnGroupChild;\n };\n AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL = 'headerCtrl';\n __decorate$1s([\n Autowired('focusService')\n ], AbstractHeaderCellCtrl.prototype, \"focusService\", void 0);\n __decorate$1s([\n Autowired('beans')\n ], AbstractHeaderCellCtrl.prototype, \"beans\", void 0);\n __decorate$1s([\n Autowired('userComponentFactory')\n ], AbstractHeaderCellCtrl.prototype, \"userComponentFactory\", void 0);\n return AbstractHeaderCellCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ClientSideRowModelSteps;\n(function (ClientSideRowModelSteps) {\n ClientSideRowModelSteps[\"EVERYTHING\"] = \"group\";\n ClientSideRowModelSteps[\"FILTER\"] = \"filter\";\n ClientSideRowModelSteps[\"SORT\"] = \"sort\";\n ClientSideRowModelSteps[\"MAP\"] = \"map\";\n ClientSideRowModelSteps[\"AGGREGATE\"] = \"aggregate\";\n ClientSideRowModelSteps[\"FILTER_AGGREGATES\"] = \"filter_aggregates\";\n ClientSideRowModelSteps[\"PIVOT\"] = \"pivot\";\n ClientSideRowModelSteps[\"NOTHING\"] = \"nothing\";\n})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction unwrapUserComp(comp) {\n var compAsAny = comp;\n var isProxy = compAsAny != null && compAsAny.getFrameworkComponentInstance != null;\n return isProxy ? compAsAny.getFrameworkComponentInstance() : comp;\n}\nvar GridApi = /** @class */ (function () {\n function GridApi() {\n this.detailGridInfoMap = {};\n this.destroyCalled = false;\n }\n GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {\n this.overlayWrapperComp = overlayWrapperComp;\n };\n GridApi.prototype.registerSideBarComp = function (sideBarComp) {\n this.sideBarComp = sideBarComp;\n };\n GridApi.prototype.init = function () {\n var _this = this;\n switch (this.rowModel.getType()) {\n case Constants.ROW_MODEL_TYPE_CLIENT_SIDE:\n this.clientSideRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_INFINITE:\n this.infiniteRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_SERVER_SIDE:\n this.serverSideRowModel = this.rowModel;\n break;\n }\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getAlignedGridService = function () {\n return this.alignedGridsService;\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getContext = function () {\n return this.context;\n };\n /** Register a detail grid with the master grid when it is created. */\n GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {\n this.detailGridInfoMap[id] = gridInfo;\n };\n /** Unregister a detail grid from the master grid when it is destroyed. */\n GridApi.prototype.removeDetailGridInfo = function (id) {\n this.detailGridInfoMap[id] = undefined;\n };\n /** Returns the `DetailGridInfo` corresponding to the supplied `detailGridId`. */\n GridApi.prototype.getDetailGridInfo = function (id) {\n return this.detailGridInfoMap[id];\n };\n /** Iterates through each `DetailGridInfo` in the grid and calls the supplied callback on each. */\n GridApi.prototype.forEachDetailGridInfo = function (callback) {\n var index = 0;\n iterateObject(this.detailGridInfoMap, function (id, gridInfo) {\n // check for undefined, as old references will still be lying around\n if (exists(gridInfo)) {\n callback(gridInfo, index);\n index++;\n }\n });\n };\n /** Similar to `exportDataAsCsv`, except returns the result as a string rather than download it. */\n GridApi.prototype.getDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.CsvExportModule, 'api.getDataAsCsv')) {\n return this.csvCreator.getDataAsCsv(params);\n }\n };\n /** Downloads a CSV export of the grid's data. */\n GridApi.prototype.exportDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.CsvExportModule, 'api.exportDataAsCSv')) {\n this.csvCreator.exportDataAsCsv(params);\n }\n };\n GridApi.prototype.getExcelExportMode = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('excel');\n var mergedParams = Object.assign({ exportMode: 'xlsx' }, baseParams, params);\n return mergedParams.exportMode;\n };\n /** Similar to `exportDataAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getDataAsExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(ModuleNames.ExcelExportModule, 'api.getDataAsExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n if (this.excelCreator.getFactoryMode(exportMode) === ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n return this.excelCreator.getDataAsExcel(params);\n };\n /** Downloads an Excel export of the grid's data. */\n GridApi.prototype.exportDataAsExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(ModuleNames.ExcelExportModule, 'api.exportDataAsExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n if (this.excelCreator.getFactoryMode(exportMode) === ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n this.excelCreator.exportDataAsExcel(params);\n };\n /** This is method to be used to get the grid's data as a sheet, that will later be exported either by `getMultipleSheetsAsExcel()` or `exportMultipleSheetsAsExcel()`. */\n GridApi.prototype.getSheetDataForExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(ModuleNames.ExcelExportModule, 'api.getSheetDataForExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n this.excelCreator.setFactoryMode(ExcelFactoryMode.MULTI_SHEET, exportMode);\n return this.excelCreator.getSheetDataForExcel(params);\n };\n /** Similar to `exportMultipleSheetsAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {\n return this.excelCreator.getMultipleSheetsAsExcel(params);\n }\n };\n /** Downloads an Excel export of multiple sheets in one file. */\n GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {\n return this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n };\n /** @deprecated AG Grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource() */\n GridApi.prototype.setEnterpriseDatasource = function (datasource) {\n console.warn(\"AG Grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource()\");\n this.setServerSideDatasource(datasource);\n };\n /**\n * Sets an ARIA property in the grid panel (element with `role=\\\"grid\\\"`), and removes an ARIA property when the value is null.\n *\n * Example: `api.setGridAriaProperty('label', 'my grid')` will set `aria-label=\\\"my grid\\\"`.\n *\n * `api.setGridAriaProperty('label', null)` will remove the `aria-label` attribute from the grid element.\n */\n GridApi.prototype.setGridAriaProperty = function (property, value) {\n if (!property) {\n return;\n }\n var eGrid = this.ctrlsService.getGridBodyCtrl().getGui();\n var ariaProperty = \"aria-\" + property;\n if (value === null) {\n eGrid.removeAttribute(ariaProperty);\n }\n else {\n eGrid.setAttribute(ariaProperty, value);\n }\n };\n /** Set new datasource for Server-Side Row Model. */\n GridApi.prototype.setServerSideDatasource = function (datasource) {\n if (this.serverSideRowModel) {\n // should really have an IEnterpriseRowModel interface, so we are not casting to any\n this.serverSideRowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use an enterprise datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_SERVER_SIDE + \"'\");\n }\n };\n /**\n * Updates the `cacheBlockSize` used by `serverSideInfiniteScroll` when requesting data from the server.\n *\n * Note this purges all the cached data and reloads all the rows of the grid.\n * */\n GridApi.prototype.setCacheBlockSize = function (blockSize) {\n if (!this.serverSideRowModel) {\n console.warn(\"AG Grid: you can only set cacheBlockSize with gridOptions.rowModelType '\" + Constants.ROW_MODEL_TYPE_SERVER_SIDE + \"'\");\n return;\n }\n this.gridOptionsWrapper.setProperty('cacheBlockSize', blockSize);\n this.serverSideRowModel.resetRootStore();\n };\n /** Set new datasource for Infinite Row Model. */\n GridApi.prototype.setDatasource = function (datasource) {\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n this.rowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_INFINITE + \"'\");\n }\n };\n /** Set new datasource for Viewport Row Model. */\n GridApi.prototype.setViewportDatasource = function (viewportDatasource) {\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n // this is bad coding, because it's using an interface that's exposed in the enterprise.\n // really we should create an interface in the core for viewportDatasource and let\n // the enterprise implement it, rather than casting to 'any' here\n this.rowModel.setViewportDatasource(viewportDatasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a viewport datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_VIEWPORT + \"'\");\n }\n };\n /** Set the row data. */\n GridApi.prototype.setRowData = function (rowData) {\n // immutable service is part of the CSRM module, if missing, no CSRM\n var missingImmutableService = this.immutableService == null;\n if (missingImmutableService) {\n console.warn('AG Grid: you can only set rowData when using the Client Side Row Model');\n return;\n }\n // if no keys provided provided for rows, then we can tread the operation as Immutable\n if (this.immutableService.isActive()) {\n this.immutableService.setRowData(rowData);\n }\n else {\n this.selectionService.reset();\n this.clientSideRowModel.setRowData(rowData);\n }\n };\n /** @deprecated AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData() */\n GridApi.prototype.setFloatingTopRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData()');\n this.setPinnedTopRowData(rows);\n };\n /** @deprecated AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData() */\n GridApi.prototype.setFloatingBottomRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData()');\n this.setPinnedBottomRowData(rows);\n };\n /** @deprecated AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount() */\n GridApi.prototype.getFloatingTopRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount()');\n return this.getPinnedTopRowCount();\n };\n /** @deprecated AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount() */\n GridApi.prototype.getFloatingBottomRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount()');\n return this.getPinnedBottomRowCount();\n };\n /** @deprecated AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow() */\n GridApi.prototype.getFloatingTopRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow()');\n return this.getPinnedTopRow(index);\n };\n /** @deprecated AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow() */\n GridApi.prototype.getFloatingBottomRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow()');\n return this.getPinnedBottomRow(index);\n };\n /** Set the top pinned rows. Call with no rows / undefined to clear top pinned rows. */\n GridApi.prototype.setPinnedTopRowData = function (rows) {\n this.pinnedRowModel.setPinnedTopRowData(rows);\n };\n /** Set the bottom pinned rows. Call with no rows / undefined to clear bottom pinned rows. */\n GridApi.prototype.setPinnedBottomRowData = function (rows) {\n this.pinnedRowModel.setPinnedBottomRowData(rows);\n };\n /** Gets the number of top pinned rows. */\n GridApi.prototype.getPinnedTopRowCount = function () {\n return this.pinnedRowModel.getPinnedTopRowCount();\n };\n /** Gets the number of bottom pinned rows. */\n GridApi.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedRowModel.getPinnedBottomRowCount();\n };\n /** Gets the top pinned row with the specified index. */\n GridApi.prototype.getPinnedTopRow = function (index) {\n return this.pinnedRowModel.getPinnedTopRow(index);\n };\n /** Gets the top pinned row with the specified index. */\n GridApi.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedRowModel.getPinnedBottomRow(index);\n };\n /**\n * Call to set new column definitions. The grid will redraw all the column headers, and then redraw all of the rows.\n */\n GridApi.prototype.setColumnDefs = function (colDefs, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnModel.setColumnDefs(colDefs, source);\n };\n /** Call to set new auto group column definition. The grid will recreate any auto-group columns if present. */\n GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_AUTO_GROUP_COLUMN_DEF, colDef, true);\n };\n /** Call to set new Default Column Definition. */\n GridApi.prototype.setDefaultColDef = function (colDef, source) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DEFAULT_COL_DEF, colDef, true);\n };\n GridApi.prototype.expireValueCache = function () {\n this.valueCache.expire();\n };\n /**\n * Returns an object with two properties:\n * - `top`: The top pixel position of the current scroll in the grid\n * - `bottom`: The bottom pixel position of the current scroll in the grid\n */\n GridApi.prototype.getVerticalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getVScrollPosition();\n };\n /**\n * Returns an object with two properties:\n * - `left`: The left pixel position of the current scroll in the grid\n * - `right`: The right pixel position of the current scroll in the grid\n */\n GridApi.prototype.getHorizontalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getHScrollPosition();\n };\n /** If `true`, the horizontal scrollbar will always be present, even if not required. Otherwise, it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowHorizontalScroll', show);\n };\n /** If `true`, the vertical scrollbar will always be present, even if not required. Otherwise it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowVerticalScroll', show);\n };\n /** Force refresh all tool panels by calling their `refresh` method. */\n GridApi.prototype.refreshToolPanel = function () {\n if (!this.sideBarComp) {\n return;\n }\n this.sideBarComp.refresh();\n };\n /** Performs change detection on all cells, refreshing cells where required. */\n GridApi.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n if (Array.isArray(params)) {\n // the old version of refreshCells() took an array of rowNodes for the first argument\n console.warn('since AG Grid v11.1, refreshCells() now takes parameters, please see the documentation.');\n return;\n }\n this.rowRenderer.refreshCells(params);\n };\n /** Flash rows, columns or individual cells. */\n GridApi.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n this.rowRenderer.flashCells(params);\n };\n /** Remove row(s) from the DOM and recreate them again from scratch. */\n GridApi.prototype.redrawRows = function (params) {\n if (params === void 0) { params = {}; }\n var rowNodes = params ? params.rowNodes : undefined;\n this.rowRenderer.redrawRows(rowNodes);\n };\n GridApi.prototype.setFunctionsReadOnly = function (readOnly) {\n this.gridOptionsWrapper.setProperty('functionsReadOnly', readOnly);\n };\n /** Redraws the header. Useful if a column name changes, or something else that changes how the column header is displayed. */\n GridApi.prototype.refreshHeader = function () {\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (c) { return c.refresh(); });\n };\n /** Returns `true` if any filter is set. This includes quick filter, advanced filter or external filter. */\n GridApi.prototype.isAnyFilterPresent = function () {\n return this.filterManager.isAnyFilterPresent();\n };\n /** Returns `true` if any column filter is set, otherwise `false`. */\n GridApi.prototype.isColumnFilterPresent = function () {\n return this.filterManager.isColumnFilterPresent() || this.filterManager.isAggregateFilterPresent();\n };\n /** Returns `true` if the quick filter is set, otherwise `false`. */\n GridApi.prototype.isQuickFilterPresent = function () {\n return this.filterManager.isQuickFilterPresent();\n };\n /**\n * Returns the row model inside the table.\n * From here you can see the original rows, rows after filter has been applied,\n * rows after aggregation has been applied, and the final set of 'to be displayed' rows.\n */\n GridApi.prototype.getModel = function () {\n return this.rowModel;\n };\n /** Expand or collapse a specific row node. */\n GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded) {\n if (rowNode) {\n rowNode.setExpanded(expanded);\n }\n };\n /**\n * If after getting the model, you expand or collapse a group, call this method to inform the grid.\n * It will work out the final set of 'to be displayed' rows again (i.e. expand or collapse the group visually).\n */\n GridApi.prototype.onGroupExpandedOrCollapsed = function (deprecated_refreshFromIndex) {\n if (missing(this.clientSideRowModel)) {\n console.warn('AG Grid: cannot call onGroupExpandedOrCollapsed unless using normal row model');\n }\n if (exists(deprecated_refreshFromIndex)) {\n console.warn('AG Grid: api.onGroupExpandedOrCollapsed - refreshFromIndex parameter is no longer used, the grid will refresh all rows');\n }\n // we don't really want the user calling this if only one rowNode was expanded, instead they should be\n // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole\n // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,\n // and thus the expand icon in the group cell won't get 'opened' or 'closed'.\n this.clientSideRowModel.refreshModel({ step: ClientSideRowModelSteps.MAP });\n };\n /** @deprecated AG Grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel() */\n GridApi.prototype.refreshInMemoryRowModel = function (step) {\n console.warn(\"AG Grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel()\");\n this.refreshClientSideRowModel(step);\n };\n /**\n * Refresh the Client-Side Row Model, executing the grouping, filtering and sorting again.\n * Optionally provide the step you wish the refresh to apply from. Defaults to `everything`.\n */\n GridApi.prototype.refreshClientSideRowModel = function (step) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call refreshClientSideRowModel unless using normal row model');\n }\n var paramsStep = ClientSideRowModelSteps.EVERYTHING;\n var stepsMapped = {\n everything: ClientSideRowModelSteps.EVERYTHING,\n group: ClientSideRowModelSteps.EVERYTHING,\n filter: ClientSideRowModelSteps.FILTER,\n map: ClientSideRowModelSteps.MAP,\n aggregate: ClientSideRowModelSteps.AGGREGATE,\n sort: ClientSideRowModelSteps.SORT,\n pivot: ClientSideRowModelSteps.PIVOT\n };\n if (exists(step)) {\n paramsStep = stepsMapped[step];\n }\n if (missing(paramsStep)) {\n console.error(\"AG Grid: invalid step \" + step + \", available steps are \" + Object.keys(stepsMapped).join(', '));\n return;\n }\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n var modelParams = {\n step: paramsStep,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n };\n this.clientSideRowModel.refreshModel(modelParams);\n };\n /** Returns `true` when there are no more animation frames left to process. */\n GridApi.prototype.isAnimationFrameQueueEmpty = function () {\n return this.animationFrameService.isQueueEmpty();\n };\n GridApi.prototype.flushAllAnimationFrames = function () {\n this.animationFrameService.flushAllFrames();\n };\n /**\n * Returns the row node with the given ID.\n * The row node ID is the one you provide from the callback `getRowId(params)`,\n * otherwise the ID is a number (cast as string) auto-generated by the grid when\n * the row data is set.\n */\n GridApi.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n /**\n * Gets the sizes that various UI elements will be rendered at with the current theme.\n * If you override the row or header height using `gridOptions`, the override value you provided will be returned.\n */\n GridApi.prototype.getSizesForCurrentTheme = function () {\n return {\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n headerHeight: this.gridOptionsWrapper.getHeaderHeight()\n };\n };\n /** Expand all groups. */\n GridApi.prototype.expandAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(true);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(true);\n }\n else {\n console.warn('AG Grid: expandAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n /** Collapse all groups. */\n GridApi.prototype.collapseAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(false);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(false);\n }\n else {\n console.warn('AG Grid: collapseAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n /** Gets the tool panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getToolPanelInstance = function (id) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n var comp = this.sideBarComp.getToolPanelInstance(id);\n return unwrapUserComp(comp);\n };\n GridApi.prototype.addVirtualRowListener = function (eventName, rowIndex, callback) {\n if (typeof eventName !== 'string') {\n console.warn('AG Grid: addVirtualRowListener is deprecated, please use addRenderedRowListener.');\n }\n this.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /**\n * Registers a callback to a virtual row.\n * A virtual row is a row that is visually rendered on the screen (rows that are not visible because of the scroll position are not rendered).\n * Unlike normal events, you do not need to unregister rendered row listeners.\n * When the rendered row is removed from the grid, all associated rendered row listeners will also be removed.\n * listen for this event if your `cellRenderer` needs to do cleanup when the row no longer exists.\n */\n GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n if (eventName === 'virtualRowSelected') {\n console.warn(\"AG Grid: event virtualRowSelected is deprecated, to register for individual row\\n selection events, add a listener directly to the row node.\");\n }\n this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /** Pass a quick filter text into the grid for filtering. */\n GridApi.prototype.setQuickFilter = function (newFilter) {\n this.filterManager.setQuickFilter(newFilter);\n };\n /** @deprecated AG Grid: do not use api for selection, call rowNode.setSelected(value) instead */\n GridApi.prototype.selectIndex = function (index, tryMulti, suppressEvents) {\n console.warn('AG Grid: do not use api for selection, call rowNode.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionService.selectIndex(index, tryMulti);\n };\n /** @deprecated AG Grid: do not use api for selection, call rowNode.setSelected(value) instead. */\n GridApi.prototype.deselectIndex = function (index, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: do not use api for selection, call rowNode.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionService.deselectIndex(index);\n };\n /** @deprecated AG Grid: API for selection is deprecated, call rowNode.setSelected(value) instead. */\n GridApi.prototype.selectNode = function (node, tryMulti, suppressEvents) {\n if (tryMulti === void 0) { tryMulti = false; }\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call rowNode.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n };\n /** @deprecated AG Grid: API for selection is deprecated, call rowNode.setSelected(value) instead. */\n GridApi.prototype.deselectNode = function (node, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call rowNode.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: false });\n };\n /** Select all rows, regardless of filtering and rows that are not visible due to grouping being enabled and their groups not expanded. */\n GridApi.prototype.selectAll = function () {\n this.selectionService.selectAllRowNodes();\n };\n /** Clear all row selections, regardless of filtering. */\n GridApi.prototype.deselectAll = function () {\n this.selectionService.deselectAllRowNodes();\n };\n /** Select all filtered rows. */\n GridApi.prototype.selectAllFiltered = function () {\n this.selectionService.selectAllRowNodes(true);\n };\n /** Clear all filtered selections. */\n GridApi.prototype.deselectAllFiltered = function () {\n this.selectionService.deselectAllRowNodes(true);\n };\n /** @deprecated recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead */\n GridApi.prototype.recomputeAggregates = function () {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call recomputeAggregates unless using normal row model');\n }\n console.warn(\"recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead\");\n this.clientSideRowModel.refreshModel({ step: ClientSideRowModelSteps.AGGREGATE });\n };\n /**\n * Sets columns to adjust in size to fit the grid horizontally.\n **/\n GridApi.prototype.sizeColumnsToFit = function (params) {\n this.gridBodyCtrl.sizeColumnsToFit(params);\n };\n /** Show the 'loading' overlay. */\n GridApi.prototype.showLoadingOverlay = function () {\n this.overlayWrapperComp.showLoadingOverlay();\n };\n /** Show the 'no rows' overlay. */\n GridApi.prototype.showNoRowsOverlay = function () {\n this.overlayWrapperComp.showNoRowsOverlay();\n };\n /** Hides the overlay if showing. */\n GridApi.prototype.hideOverlay = function () {\n this.overlayWrapperComp.hideOverlay();\n };\n GridApi.prototype.isNodeSelected = function (node) {\n console.warn('AG Grid: no need to call api.isNodeSelected(), just call node.isSelected() instead');\n return node.isSelected();\n };\n /** @deprecated Use getSelectedNodesById no longer exists, use getSelectedNodes(). */\n GridApi.prototype.getSelectedNodesById = function () {\n console.error('AG Grid: since version 3.4, getSelectedNodesById no longer exists, use getSelectedNodes() instead');\n return null;\n };\n /**\n * Returns an unsorted list of selected nodes.\n * Getting the underlying node (rather than the data) is useful when working with tree / aggregated data,\n * as the node can be traversed.\n */\n GridApi.prototype.getSelectedNodes = function () {\n return this.selectionService.getSelectedNodes();\n };\n /** Returns an unsorted list of selected rows (i.e. row data that you provided). */\n GridApi.prototype.getSelectedRows = function () {\n return this.selectionService.getSelectedRows();\n };\n /**\n * Returns a list of all selected nodes at 'best cost', a feature to be used with groups / trees.\n * If a group has all its children selected, then the group appears in the result, but not the children.\n * Designed for use with `'children'` as the group selection type, where groups don't actually appear in the selection normally.\n */\n GridApi.prototype.getBestCostNodeSelection = function () {\n return this.selectionService.getBestCostNodeSelection();\n };\n /** Retrieve rendered nodes. Due to virtualisation this will contain only the current visible rows and those in the buffer. */\n GridApi.prototype.getRenderedNodes = function () {\n return this.rowRenderer.getRenderedNodes();\n };\n /** @deprecated ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead. */\n GridApi.prototype.ensureColIndexVisible = function (index) {\n console.warn('AG Grid: ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead.');\n };\n /**\n * Ensures the column is visible by scrolling the table if needed.\n *\n * This will have no effect before the firstDataRendered event has fired.\n *\n * @param key - The column to ensure visible\n * @param position - Where the column will be positioned.\n * - `auto` - Scrolls the minimum amount to make sure the column is visible.\n * - `start` - Scrolls the column to the start of the viewport.\n * - `middle` - Scrolls the column to the middle of the viewport.\n * - `end` - Scrolls the column to the end of the viewport.\n */\n GridApi.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n this.gridBodyCtrl.getScrollFeature().ensureColumnVisible(key, position);\n };\n /**\n * Vertically scrolls the grid until the provided row index is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n GridApi.prototype.ensureIndexVisible = function (index, position) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(index, position);\n };\n /**\n * Vertically scrolls the grid until the provided row (or a row matching the provided comparator) is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n GridApi.prototype.ensureNodeVisible = function (nodeSelector, position) {\n if (position === void 0) { position = null; }\n this.gridBodyCtrl.getScrollFeature().ensureNodeVisible(nodeSelector, position);\n };\n /**\n * Similar to `forEachNode`, except lists all the leaf nodes.\n * This effectively goes through all the data that you provided to the grid before the grid performed any grouping.\n * If using tree data, goes through all the nodes for the data you provided, including nodes that have children,\n * but excluding groups the grid created where gaps were missing in the hierarchy.\n */\n GridApi.prototype.forEachLeafNode = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNode unless using normal row model');\n }\n this.clientSideRowModel.forEachLeafNode(callback);\n };\n /**\n * Iterates through each node (row) in the grid and calls the callback for each node.\n * This works similar to the `forEach` method on a JavaScript array.\n * This is called for every node, ignoring any filtering or sorting applied within the grid.\n * If using the Infinite Row Model, then this gets called for each page loaded in the page cache.\n */\n GridApi.prototype.forEachNode = function (callback) {\n this.rowModel.forEachNode(callback);\n };\n /** Similar to `forEachNode`, except skips any filtered out data. */\n GridApi.prototype.forEachNodeAfterFilter = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilter unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilter(callback);\n };\n /** Similar to `forEachNodeAfterFilter`, except the callbacks are called in the order the rows are displayed in the grid. */\n GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilterAndSort unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);\n };\n /**\n * Returns the filter component instance for a column.\n * `key` can be a string field name or a ColDef object (matches on object reference, useful if field names are not unique).\n * If your filter is created asynchronously, `getFilterInstance` will return `null` so you will need to use the `callback` to access the filter instance instead.\n */\n GridApi.prototype.getFilterInstance = function (key, callback) {\n var res = this.getFilterInstanceImpl(key, function (instance) {\n if (!callback) {\n return;\n }\n var unwrapped = unwrapUserComp(instance);\n callback(unwrapped);\n });\n var unwrapped = unwrapUserComp(res);\n return unwrapped;\n };\n GridApi.prototype.getFilterInstanceImpl = function (key, callback) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (!column) {\n return undefined;\n }\n var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');\n var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });\n if (currentValue) {\n setTimeout(callback, 0, currentValue);\n }\n else if (filterPromise) {\n filterPromise.then(function (comp) {\n callback(comp);\n });\n }\n return currentValue;\n };\n /** Destroys a filter. Useful to force a particular filter to be created from scratch again. */\n GridApi.prototype.destroyFilter = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return this.filterManager.destroyFilter(column, \"filterDestroyed\");\n }\n };\n /** Gets the status panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getStatusPanel = function (key) {\n if (!this.statusBarService) {\n return;\n }\n var comp = this.statusBarService.getStatusPanel(key);\n return unwrapUserComp(comp);\n };\n GridApi.prototype.getColumnDef = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return column.getColDef();\n }\n return null;\n };\n /**\n * Returns the current column definitions.\n */\n GridApi.prototype.getColumnDefs = function () { return this.columnModel.getColumnDefs(); };\n /** Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs. */\n GridApi.prototype.onFilterChanged = function () {\n this.filterManager.onFilterChanged();\n };\n /**\n * Gets the grid to act as if the sort was changed.\n * Useful if you update some values and want to get the grid to reorder them according to the new values.\n */\n GridApi.prototype.onSortChanged = function () {\n this.sortController.onSortChanged('api');\n };\n /** Sets the state of all the advanced filters. Provide it with what you get from `getFilterModel()` to restore filter state. */\n GridApi.prototype.setFilterModel = function (model) {\n this.filterManager.setFilterModel(model);\n };\n /** Gets the current state of all the advanced filters. Used for saving filter state. */\n GridApi.prototype.getFilterModel = function () {\n return this.filterManager.getFilterModel();\n };\n /** Returns the focused cell (or the last focused cell if the grid lost focus). */\n GridApi.prototype.getFocusedCell = function () {\n return this.focusService.getFocusedCell();\n };\n /** Clears the focused cell. */\n GridApi.prototype.clearFocusedCell = function () {\n return this.focusService.clearFocusedCell();\n };\n /** Sets the focus to the specified cell. `rowPinned` can be either 'top', 'bottom' or null (for not pinned). */\n GridApi.prototype.setFocusedCell = function (rowIndex, colKey, rowPinned) {\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: colKey, rowPinned: rowPinned, forceBrowserFocus: true });\n };\n /** Sets the `suppressRowDrag` property. */\n GridApi.prototype.setSuppressRowDrag = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG, value);\n };\n /** Sets the `suppressMoveWhenRowDragging` property. */\n GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG, value);\n };\n /** Sets the `suppressRowClickSelection` property. */\n GridApi.prototype.setSuppressRowClickSelection = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION, value);\n };\n /** Adds a drop zone outside of the grid where rows can be dropped. */\n GridApi.prototype.addRowDropZone = function (params) {\n this.gridBodyCtrl.getRowDragFeature().addRowDropZone(params);\n };\n /** Removes an external drop zone added by `addRowDropZone`. */\n GridApi.prototype.removeRowDropZone = function (params) {\n var activeDropTarget = this.dragAndDropService.findExternalZone(params);\n if (activeDropTarget) {\n this.dragAndDropService.removeDropTarget(activeDropTarget);\n }\n };\n /** Returns the `RowDropZoneParams` to be used by another grid's `addRowDropZone` method. */\n GridApi.prototype.getRowDropZoneParams = function (events) {\n return this.gridBodyCtrl.getRowDragFeature().getRowDropZone(events);\n };\n /** Sets the height in pixels for the row containing the column label header. */\n GridApi.prototype.setHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_HEADER_HEIGHT, headerHeight);\n };\n /**\n * Switch between layout options: `normal`, `autoHeight`, `print`.\n * Defaults to `normal` if no domLayout provided.\n */\n GridApi.prototype.setDomLayout = function (domLayout) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOM_LAYOUT, domLayout);\n };\n /** Sets the `enableCellTextSelection` property. */\n GridApi.prototype.setEnableCellTextSelection = function (selectable) {\n this.gridBodyCtrl.setCellTextSelection(selectable);\n };\n /** Sets the preferred direction for the selection fill handle. */\n GridApi.prototype.setFillHandleDirection = function (direction) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION, direction);\n };\n /** Sets the height in pixels for the rows containing header column groups. */\n GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing the floating filters. */\n GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing the columns when in pivot mode. */\n GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing header column groups when in pivot mode. */\n GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT, isExternalFilterPresentFunc);\n };\n GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS, doesExternalFilterPassFunc);\n };\n GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL, navigateToNextCellFunc);\n };\n GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL, tabToNextCellFunc);\n };\n GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER, tabToNextHeaderFunc);\n };\n GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER, navigateToNextHeaderFunc);\n };\n GridApi.prototype.setRowGroupPanelShow = function (rowGroupPanelShow) {\n this.gridOptionsWrapper.setProperty('rowGroupPanelShow', rowGroupPanelShow);\n };\n GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES, groupRowAggNodesFunc);\n };\n GridApi.prototype.setGetGroupRowAgg = function (getGroupRowAggFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_GROUP_ROW_AGG, getGroupRowAggFunc);\n };\n GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE, getBusinessKeyForNodeFunc);\n };\n GridApi.prototype.setGetChildCount = function (getChildCountFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHILD_COUNT, getChildCountFunc);\n };\n GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE, processRowPostCreateFunc);\n };\n GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_NODE_ID, getRowNodeIdFunc);\n };\n GridApi.prototype.setGetRowId = function (getRowIdFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_ID, getRowIdFunc);\n };\n GridApi.prototype.setGetRowClass = function (rowClassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_CLASS, rowClassFunc);\n };\n GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL, isFullWidthCellFunc);\n };\n GridApi.prototype.setIsFullWidthRow = function (isFullWidthRowFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_FULL_WIDTH_ROW, isFullWidthRowFunc);\n };\n GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_SELECTABLE, isRowSelectableFunc);\n };\n GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_MASTER, isRowMasterFunc);\n };\n GridApi.prototype.setPostSort = function (postSortFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_SORT, postSortFunc);\n };\n GridApi.prototype.setPostSortRows = function (postSortRowsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_SORT_ROWS, postSortRowsFunc);\n };\n GridApi.prototype.setGetDocument = function (getDocumentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_DOCUMENT, getDocumentFunc);\n };\n GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS, getContextMenuItemsFunc);\n };\n GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS, getMainMenuItemsFunc);\n };\n GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD, processCellForClipboardFunc);\n };\n GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD, sendToClipboardFunc);\n };\n GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD, processCellFromClipboardFunc);\n };\n /** @deprecated use `setProcessPivotResultColDef` instead */\n GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {\n console.warn('AG Grid: since version 28.0.x setProcessSecondaryColDef has been renamed, please use setProcessPivotResultColDef instead');\n this.setProcessPivotResultColDef(processSecondaryColDefFunc);\n };\n /** @deprecated use `setProcessPivotResultColGroupDef` instead */\n GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {\n console.warn('AG Grid: since version 28.0.x setProcessSecondaryColGroupDef has been renamed, please use setProcessPivotResultColGroupDef instead');\n this.setProcessPivotResultColGroupDef(processSecondaryColGroupDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColDef = function (processPivotResultColDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_PIVOT_RESULT_COL_DEF, processPivotResultColDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColGroupDef = function (processPivotResultColGroupDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_PIVOT_RESULT_COL_GROUP_DEF, processPivotResultColGroupDefFunc);\n };\n GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_PROCESS_POPUP, postProcessPopupFunc);\n };\n GridApi.prototype.setDefaultGroupOrderComparator = function (defaultGroupOrderComparatorFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DEFAULT_GROUP_ORDER_COMPARATOR, defaultGroupOrderComparatorFunc);\n };\n GridApi.prototype.setInitialGroupOrderComparator = function (initialGroupOrderComparatorFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_INITIAL_GROUP_ORDER_COMPARATOR, initialGroupOrderComparatorFunc);\n };\n GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS, getChartToolbarItemsFunc);\n };\n GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER, paginationNumberFormatterFunc);\n };\n /** @deprecated use setGetServerSideGroupLevelParams instead */\n GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {\n this.setGetServerSideGroupLevelParams(getServerSideStoreParamsFunc);\n };\n GridApi.prototype.setGetServerSideGroupLevelParams = function (getServerSideGroupLevelParamsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_PARAMS, getServerSideGroupLevelParamsFunc);\n };\n GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT, isServerSideGroupOpenByDefaultFunc);\n };\n GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION, isApplyServerSideTransactionFunc);\n };\n GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP, isServerSideGroupFunc);\n };\n GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY, getServerSideGroupKeyFunc);\n };\n GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_STYLE, rowStyleFunc);\n };\n GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_HEIGHT, rowHeightFunc);\n };\n /** Returns `true` if the side bar is visible. */\n GridApi.prototype.isSideBarVisible = function () {\n return this.sideBarComp ? this.sideBarComp.isDisplayed() : false;\n };\n /** Show/hide the entire side bar, including any visible panel and the tab buttons. */\n GridApi.prototype.setSideBarVisible = function (show) {\n if (!this.sideBarComp) {\n if (show) {\n console.warn('AG Grid: sideBar is not loaded');\n }\n return;\n }\n this.sideBarComp.setDisplayed(show);\n };\n /** Sets the side bar position relative to the grid. Possible values are `'left'` or `'right'`. */\n GridApi.prototype.setSideBarPosition = function (position) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: sideBar is not loaded');\n return;\n }\n this.sideBarComp.setSideBarPosition(position);\n };\n /** Opens a particular tool panel. Provide the ID of the tool panel to open. */\n GridApi.prototype.openToolPanel = function (key) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.openToolPanel(key);\n };\n /** Closes the currently open tool panel (if any). */\n GridApi.prototype.closeToolPanel = function () {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.close();\n };\n /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */\n GridApi.prototype.getOpenedToolPanel = function () {\n return this.sideBarComp ? this.sideBarComp.openedItem() : null;\n };\n /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */\n GridApi.prototype.getSideBar = function () {\n return this.gridOptionsWrapper.getSideBar();\n };\n /** Resets the side bar to the provided configuration. The parameter is the same as the sideBar grid property. The side bar is re-created from scratch with the new config. */\n GridApi.prototype.setSideBar = function (def) {\n this.gridOptionsWrapper.setProperty('sideBar', SideBarDefParser.parse(def));\n };\n GridApi.prototype.setSuppressClipboardPaste = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE, value);\n };\n /** Returns `true` if the tool panel is showing, otherwise `false`. */\n GridApi.prototype.isToolPanelShowing = function () {\n return this.sideBarComp.isToolPanelShowing();\n };\n /** @deprecated AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically. */\n GridApi.prototype.doLayout = function () {\n var message = \"AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically\";\n doOnce(function () { return console.warn(message); }, 'doLayoutDeprecated');\n };\n /** Tells the grid to recalculate the row heights. */\n GridApi.prototype.resetRowHeights = function () {\n if (exists(this.clientSideRowModel)) {\n if (this.columnModel.isAutoRowHeightActive()) {\n console.warn('AG Grid: calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.');\n return;\n }\n this.clientSideRowModel.resetRowHeights();\n }\n };\n GridApi.prototype.setGroupRemoveSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, value);\n };\n GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, value);\n };\n GridApi.prototype.setGroupDisplayType = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_DISPLAY_TYPE, value);\n };\n /** Tells the grid a row height has changed. To be used after calling `rowNode.setRowHeight(newHeight)`. */\n GridApi.prototype.onRowHeightChanged = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.onRowHeightChanged();\n }\n };\n /**\n * Gets the value for a column for a particular `rowNode` (row).\n * This is useful if you want the raw value of a cell e.g. if implementing your own CSV export.\n */\n GridApi.prototype.getValue = function (colKey, rowNode) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (missing(column)) {\n column = this.columnModel.getGridColumn(colKey);\n }\n if (missing(column)) {\n return null;\n }\n return this.valueService.getValue(column, rowNode);\n };\n /** Add an event listener for the specified `eventType`. Works similar to `addEventListener` for a browser DOM element. */\n GridApi.prototype.addEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addEventListener(eventType, listener, async);\n };\n /** Add an event listener for all event types coming from the grid. */\n GridApi.prototype.addGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addGlobalListener(listener, async);\n };\n /** Remove an event listener. */\n GridApi.prototype.removeEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeEventListener(eventType, listener, async);\n };\n /** Remove a global event listener. */\n GridApi.prototype.removeGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeGlobalListener(listener, async);\n };\n GridApi.prototype.dispatchEvent = function (event) {\n this.eventService.dispatchEvent(event);\n };\n /** Will destroy the grid and release resources. If you are using a framework you do not need to call this, as the grid links in with the framework lifecycle. However if you are using Web Components or native JavaScript, you do need to call this, to avoid a memory leak in your application. */\n GridApi.prototype.destroy = function () {\n // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part\n // of context.destroy(). so we need to stop the infinite loop.\n if (this.destroyCalled) {\n return;\n }\n this.destroyCalled = true;\n // destroy the UI first (as they use the services)\n var gridCtrl = this.ctrlsService.getGridCtrl();\n if (gridCtrl) {\n gridCtrl.destroyGridUi();\n }\n // destroy the services\n this.context.destroy();\n };\n GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(removeAllReferences.bind(window, this, 'Grid API'), 100);\n };\n GridApi.prototype.warnIfDestroyed = function (methodName) {\n if (this.destroyCalled) {\n console.warn(\"AG Grid: Grid API method \" + methodName + \" was called on a grid that was destroyed.\");\n }\n return this.destroyCalled;\n };\n /** Reset the quick filter cache text on every rowNode. */\n GridApi.prototype.resetQuickFilter = function () {\n if (this.warnIfDestroyed('resetQuickFilter')) {\n return;\n }\n this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });\n };\n /** @deprecated AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead. */\n GridApi.prototype.getRangeSelections = function () {\n console.warn(\"AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead.\\n We had to change how cell selections works a small bit to allow charting to integrate. The return type of\\n getCellRanges() is a bit different, please check the AG Grid documentation.\");\n return null;\n };\n /** Returns the list of selected cell ranges. */\n GridApi.prototype.getCellRanges = function () {\n if (this.rangeService) {\n return this.rangeService.getCellRanges();\n }\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n return null;\n };\n GridApi.prototype.camelCaseToHumanReadable = function (camelCase) {\n return camelCaseToHumanText(camelCase);\n };\n /** @deprecated AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection() */\n GridApi.prototype.addRangeSelection = function (deprecatedNoLongerUsed) {\n console.warn('AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection()');\n };\n /** Adds the provided cell range to the selected ranges. */\n GridApi.prototype.addCellRange = function (params) {\n if (!this.rangeService) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeService.addCellRange(params);\n };\n /** Clears the selected ranges. */\n GridApi.prototype.clearRangeSelection = function () {\n if (!this.rangeService) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeService.removeAllCellRanges();\n };\n /** Reverts the last cell edit. */\n GridApi.prototype.undoCellEditing = function () {\n this.undoRedoService.undo();\n };\n /** Re-applies the most recently undone cell edit. */\n GridApi.prototype.redoCellEditing = function () {\n this.undoRedoService.redo();\n };\n /** Returns current number of available cell edit undo operations. */\n GridApi.prototype.getCurrentUndoSize = function () {\n return this.undoRedoService.getCurrentUndoStackSize();\n };\n /** Returns current number of available cell edit redo operations. */\n GridApi.prototype.getCurrentRedoSize = function () {\n return this.undoRedoService.getCurrentRedoStackSize();\n };\n /** Returns a list of models with information about the charts that are currently rendered from the grid. */\n GridApi.prototype.getChartModels = function () {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.getChartModels') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.getChartModels')) {\n return this.chartService.getChartModels();\n }\n };\n /** Returns the `ChartRef` using the supplied `chartId`. */\n GridApi.prototype.getChartRef = function (chartId) {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.getChartRef') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.getChartRef')) {\n return this.chartService.getChartRef(chartId);\n }\n };\n /** Returns a string containing the requested data URL which contains a representation of the chart image. */\n GridApi.prototype.getChartImageDataURL = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.getChartImageDataURL')) {\n return this.chartService.getChartImageDataURL(params);\n }\n };\n /** Downloads the chart image in the browser. */\n GridApi.prototype.downloadChart = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.downloadChart')) {\n return this.chartService.downloadChart(params);\n }\n };\n /** Open the Chart Tool Panel. */\n GridApi.prototype.openChartToolPanel = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.openChartToolPanel')) {\n return this.chartService.openChartToolPanel(params);\n }\n };\n /** Close the Chart Tool Panel. */\n GridApi.prototype.closeChartToolPanel = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.closeChartToolPanel')) {\n return this.chartService.closeChartToolPanel(params.chartId);\n }\n };\n /** Used to programmatically create charts from a range. */\n GridApi.prototype.createRangeChart = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.createRangeChart') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.createRangeChart')) {\n return this.chartService.createRangeChart(params);\n }\n };\n /** Used to programmatically create cross filter charts from a range. */\n GridApi.prototype.createCrossFilterChart = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.createCrossFilterChart') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.createCrossFilterChart')) {\n return this.chartService.createCrossFilterChart(params);\n }\n };\n /** Restores a chart using the `ChartModel` that was previously obtained from `getChartModels()`. */\n GridApi.prototype.restoreChart = function (chartModel, chartContainer) {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.restoreChart') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.restoreChart')) {\n return this.chartService.restoreChart(chartModel, chartContainer);\n }\n };\n /** Used to programmatically create pivot charts from a grid. */\n GridApi.prototype.createPivotChart = function (params) {\n if (ModuleRegistry.assertRegistered(ModuleNames.RangeSelectionModule, 'api.createPivotChart') &&\n ModuleRegistry.assertRegistered(ModuleNames.GridChartsModule, 'api.createPivotChart')) {\n return this.chartService.createPivotChart(params);\n }\n };\n /** Copies data to clipboard by following the same rules as pressing Ctrl+C. */\n GridApi.prototype.copyToClipboard = function (params) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copyToClipboard(params);\n };\n /** Copies the selected rows to the clipboard. */\n GridApi.prototype.copySelectedRowsToClipboard = function (params) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRowsToClipboard(params);\n };\n /** Copies the selected ranges to the clipboard. */\n GridApi.prototype.copySelectedRangeToClipboard = function (params) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRangeToClipboard(params);\n };\n /** Copies the selected range down, similar to `Ctrl + D` in Excel. */\n GridApi.prototype.copySelectedRangeDown = function () {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copyRangeDown();\n };\n /** Shows the column menu after and positions it relative to the provided button element. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n this.menuFactory.showMenuAfterButtonClick(column, buttonElement, 'columnMenu');\n };\n /** Shows the column menu after and positions it relative to the mouse event. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n column = this.columnModel.getPrimaryColumn(colKey);\n }\n if (!column) {\n console.error(\"AG Grid: column '\" + colKey + \"' not found\");\n return;\n }\n this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);\n };\n /** Hides any visible context menu or column menu. */\n GridApi.prototype.hidePopupMenu = function () {\n // hide the context menu if in enterprise\n if (this.contextMenuFactory) {\n this.contextMenuFactory.hideActiveMenu();\n }\n // and hide the column menu always\n this.menuFactory.hideActiveMenu();\n };\n /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */\n GridApi.prototype.setPopupParent = function (ePopupParent) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POPUP_PARENT, ePopupParent);\n };\n /** Navigates the grid focus to the next cell, as if tabbing. */\n GridApi.prototype.tabToNextCell = function (event) {\n return this.navigationService.tabToNextCell(false, event);\n };\n /** Navigates the grid focus to the previous cell, as if shift-tabbing. */\n GridApi.prototype.tabToPreviousCell = function (event) {\n return this.navigationService.tabToNextCell(true, event);\n };\n /** Returns the list of active cell renderer instances. */\n GridApi.prototype.getCellRendererInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellRendererInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** Returns the list of active cell editor instances. Optionally provide parameters to restrict to certain columns / row nodes. */\n GridApi.prototype.getCellEditorInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellEditorInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** If the grid is editing, returns back details of the editing cell(s). */\n GridApi.prototype.getEditingCells = function () {\n return this.rowRenderer.getEditingCells();\n };\n /** If a cell is editing, it stops the editing. Pass `true` if you want to cancel the editing (i.e. don't accept changes). */\n GridApi.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.rowRenderer.stopEditing(cancel);\n };\n /** Start editing the provided cell. If another cell is editing, the editing will be stopped in that other cell. */\n GridApi.prototype.startEditingCell = function (params) {\n var column = this.columnModel.getGridColumn(params.colKey);\n if (!column) {\n console.warn(\"AG Grid: no column found for \" + params.colKey);\n return;\n }\n var cellPosition = {\n rowIndex: params.rowIndex,\n rowPinned: params.rowPinned || null,\n column: column\n };\n var notPinned = params.rowPinned == null;\n if (notPinned) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(params.rowIndex);\n }\n var cell = this.navigationService.getCellByPosition(cellPosition);\n if (!cell) {\n return;\n }\n cell.startRowOrCellEdit(params.key, params.charPress);\n };\n /** Add an aggregation function with the specified key. */\n GridApi.prototype.addAggFunc = function (key, aggFunc) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFunc(key, aggFunc);\n }\n };\n /** Add aggregations function with the specified keys. */\n GridApi.prototype.addAggFuncs = function (aggFuncs) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs(aggFuncs);\n }\n };\n /** Clears all aggregation functions (including those provided by the grid). */\n GridApi.prototype.clearAggFuncs = function () {\n if (this.aggFuncService) {\n this.aggFuncService.clear();\n }\n };\n /** Apply transactions to the server side row model. */\n GridApi.prototype.applyServerSideTransaction = function (transaction) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n };\n GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n };\n /** Gets all failed server side loads to retry. */\n GridApi.prototype.retryServerSideLoads = function () {\n if (!this.serverSideRowModel) {\n console.warn('AG Grid: API retryServerSideLoads() can only be used when using Server-Side Row Model.');\n return;\n }\n this.serverSideRowModel.retryLoads();\n };\n GridApi.prototype.flushServerSideAsyncTransactions = function () {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot flush Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.flushAsyncTransactions();\n };\n /** Update row data. Pass a transaction object with lists for `add`, `remove` and `update`. */\n GridApi.prototype.applyTransaction = function (rowDataTransaction) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: updateRowData() only works with ClientSideRowModel. Working with InfiniteRowModel was deprecated in v23.1 and removed in v24.1');\n return;\n }\n var res = this.clientSideRowModel.updateRowData(rowDataTransaction);\n // refresh all the full width rows\n this.rowRenderer.refreshFullWidthRows(res.update);\n // do change detection for all present cells\n if (!this.gridOptionsWrapper.isSuppressChangeDetection()) {\n this.rowRenderer.refreshCells();\n }\n return res;\n };\n /** Sets the `deltaSort` property */\n GridApi.prototype.setDeltaSort = function (enable) {\n this.gridOptionsWrapper.setProperty('deltaSort', enable);\n };\n /** @deprecated AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). */\n GridApi.prototype.updateRowData = function (rowDataTransaction) {\n var message = 'AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). updateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'updateRowData deprecated');\n return this.applyTransaction(rowDataTransaction);\n };\n /** Same as `applyTransaction` except executes asynchronously for efficiency. */\n GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);\n };\n /** Executes any remaining asynchronous grid transactions, if any are waiting to be executed. */\n GridApi.prototype.flushAsyncTransactions = function () {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.flushAsyncTransactions();\n };\n /** @deprecated AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). */\n GridApi.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var message = 'AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). batchUpdateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'batchUpdateRowData deprecated');\n this.applyTransactionAsync(rowDataTransaction, callback);\n };\n /** @deprecated AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.*/\n GridApi.prototype.insertItemsAtIndex = function (index, items, skipRefresh) {\n console.warn('AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: index, update: null, remove: null });\n };\n /** @deprecated AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead. */\n GridApi.prototype.removeItems = function (rowNodes, skipRefresh) {\n console.warn('AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead.');\n var dataToRemove = rowNodes.map(function (rowNode) { return rowNode.data; });\n this.updateRowData({ add: null, addIndex: null, update: null, remove: dataToRemove });\n };\n /** @deprecated AG Grid: addItems() is deprecated, use updateRowData(transaction) instead. */\n GridApi.prototype.addItems = function (items, skipRefresh) {\n console.warn('AG Grid: addItems() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: null, update: null, remove: null });\n };\n /** @deprecated AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead */\n GridApi.prototype.refreshVirtualPageCache = function () {\n console.warn('AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n /** @deprecated AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead */\n GridApi.prototype.refreshInfinitePageCache = function () {\n console.warn('AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n /**\n * Marks all the currently loaded blocks in the cache for reload.\n * If you have 10 blocks in the cache, all 10 will be marked for reload.\n * The old data will continue to be displayed until the new data is loaded.\n */\n GridApi.prototype.refreshInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.refreshCache();\n }\n else {\n console.warn(\"AG Grid: api.refreshInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n /** @deprecated AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead */\n GridApi.prototype.purgeVirtualPageCache = function () {\n console.warn('AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfinitePageCache();\n };\n /** @deprecated AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead */\n GridApi.prototype.purgeInfinitePageCache = function () {\n console.warn('AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfiniteCache();\n };\n /**\n * Purges the cache.\n * The grid is then told to refresh. Only the blocks required to display the current data on screen are fetched (typically no more than 2).\n * The grid will display nothing while the new blocks are loaded.\n * Use this to immediately remove the old data from the user.\n */\n GridApi.prototype.purgeInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.purgeCache();\n }\n else {\n console.warn(\"AG Grid: api.purgeInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n /** @deprecated AG Grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.refreshServerSide({purge: true}) */\n GridApi.prototype.purgeEnterpriseCache = function (route) {\n console.warn(\"AG Grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.refreshServerSide({purge: true})\");\n this.purgeServerSideCache(route);\n };\n /** @deprecated AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSide({purge: true}) instead. */\n GridApi.prototype.purgeServerSideCache = function (route) {\n if (route === void 0) { route = []; }\n if (this.serverSideRowModel) {\n console.warn(\"AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSide({purge: true}) instead.\");\n this.refreshServerSide({\n route: route,\n purge: true\n });\n }\n else {\n console.warn(\"AG Grid: api.purgeServerSideCache is only available when rowModelType='serverSide'.\");\n }\n };\n /**\n * Refresh a server-side level.\n * If you pass no parameters, then the top level store is purged.\n * To purge a child level, pass in the string of keys to get to the desired level.\n */\n GridApi.prototype.refreshServerSide = function (params) {\n if (!this.serverSideRowModel) {\n console.warn(\"AG Grid: api.refreshServerSide is only available when rowModelType='serverSide'.\");\n return;\n }\n this.serverSideRowModel.refreshStore(params);\n };\n /** @deprecated use `refreshServerSide` instead */\n GridApi.prototype.refreshServerSideStore = function (params) {\n var message = \"AG Grid: Grid API refreshServerSideStore() was renamed to refreshServerSide() in v28.0\";\n doOnce(function () { return console.warn(message); }, 'refreshServerSideStore-renamed');\n return this.refreshServerSide(params);\n };\n /** @deprecated use `getServerSideGroupLevelState` instead */\n GridApi.prototype.getServerSideStoreState = function () {\n var message = \"AG Grid: Grid API getServerSideStoreState() was renamed to getServerSideGroupLevelState() in v28.0\";\n doOnce(function () { return console.warn(message); }, 'getServerSideStoreState-renamed');\n return this.getServerSideGroupLevelState();\n };\n /** Returns info on all server side group levels. */\n GridApi.prototype.getServerSideGroupLevelState = function () {\n if (!this.serverSideRowModel) {\n console.warn(\"AG Grid: api.getServerSideGroupLevelState is only available when rowModelType='serverSide'.\");\n return [];\n }\n return this.serverSideRowModel.getStoreState();\n };\n /** @deprecated AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead */\n GridApi.prototype.getVirtualRowCount = function () {\n console.warn('AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead');\n return this.getInfiniteRowCount();\n };\n /** The row count defines how many rows the grid allows scrolling to. */\n GridApi.prototype.getInfiniteRowCount = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.getRowCount();\n }\n else {\n console.warn(\"AG Grid: api.getVirtualRowCount is only available when rowModelType='virtual'.\");\n }\n };\n /** @deprecated AG Grid: api.isMaxRowFound is deprecated, please use api.isLastRowIndexKnown() */\n GridApi.prototype.isMaxRowFound = function () {\n console.warn(\"AG Grid: api.isMaxRowFound is deprecated, please use api.isLastRowIndexKnown()\");\n return this.isLastRowIndexKnown();\n };\n /** Returns `true` if grid allows for scrolling past the last row to load more rows, thus providing infinite scroll. */\n GridApi.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.isLastRowIndexKnown();\n }\n else {\n console.warn(\"AG Grid: api.isMaxRowFound is only available when rowModelType='virtual'.\");\n }\n };\n /** @deprecated AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead */\n GridApi.prototype.setVirtualRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n /** @deprecated AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead */\n GridApi.prototype.setInfiniteRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n /**\n * Sets the `rowCount` and `lastRowIndexKnown` properties.\n * The second parameter, `lastRowIndexKnown`, is optional and if left out, only `rowCount` is set.\n * Set `rowCount` to adjust the height of the vertical scroll.\n * Set `lastRowIndexKnown` to enable / disable searching for more rows.\n * Use this method if you add or remove rows into the dataset and need to reset the number of rows or put the data back into 'look for data' mode.\n */\n GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n }\n else {\n console.warn(\"AG Grid: api.setRowCount is only available for Infinite Row Model.\");\n }\n };\n /** @deprecated AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead */\n GridApi.prototype.getVirtualPageState = function () {\n console.warn('AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n /** @deprecated getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead */\n GridApi.prototype.getInfinitePageState = function () {\n console.warn('AG Grid: getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n /**\n * Returns an object representing the state of the cache. This is useful for debugging and understanding how the cache is working.\n */\n GridApi.prototype.getCacheBlockState = function () {\n return this.rowNodeBlockLoader.getBlockState();\n };\n /** @deprecated In AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything useful. */\n GridApi.prototype.checkGridSize = function () {\n console.warn(\"In AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything useful.\");\n };\n /** @deprecated In AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow() */\n GridApi.prototype.getFirstRenderedRow = function () {\n console.warn('In AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow()');\n return this.getFirstDisplayedRow();\n };\n /** Get the index of the first displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getFirstDisplayedRow = function () {\n return this.rowRenderer.getFirstVirtualRenderedRow();\n };\n /** @deprecated In AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow() */\n GridApi.prototype.getLastRenderedRow = function () {\n console.warn('in AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow()');\n return this.getLastDisplayedRow();\n };\n /** Get the index of the last displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getLastDisplayedRow = function () {\n return this.rowRenderer.getLastVirtualRenderedRow();\n };\n /** Returns the displayed `RowNode` at the given `index`. */\n GridApi.prototype.getDisplayedRowAtIndex = function (index) {\n return this.rowModel.getRow(index);\n };\n /** Returns the total number of displayed rows. */\n GridApi.prototype.getDisplayedRowCount = function () {\n return this.rowModel.getRowCount();\n };\n /**\n * Returns `true` when the last page is known.\n * This will always be `true` if you are using the Client-Side Row Model for pagination.\n * Returns `false` when the last page is not known; this only happens when using Infinite Row Model.\n */\n GridApi.prototype.paginationIsLastPageFound = function () {\n return this.paginationProxy.isLastPageFound();\n };\n /** Returns how many rows are being shown per page. */\n GridApi.prototype.paginationGetPageSize = function () {\n return this.paginationProxy.getPageSize();\n };\n /** Sets the `paginationPageSize`, then re-paginates the grid so the changes are applied immediately. */\n GridApi.prototype.paginationSetPageSize = function (size) {\n this.gridOptionsWrapper.setProperty('paginationPageSize', size);\n };\n /** Returns the 0-based index of the page which is showing. */\n GridApi.prototype.paginationGetCurrentPage = function () {\n return this.paginationProxy.getCurrentPage();\n };\n /** Returns the total number of pages. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetTotalPages = function () {\n return this.paginationProxy.getTotalPages();\n };\n /** The total number of rows. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetRowCount = function () {\n return this.paginationProxy.getMasterRowCount();\n };\n /** Navigates to the next page. */\n GridApi.prototype.paginationGoToNextPage = function () {\n this.paginationProxy.goToNextPage();\n };\n /** Navigates to the previous page. */\n GridApi.prototype.paginationGoToPreviousPage = function () {\n this.paginationProxy.goToPreviousPage();\n };\n /** Navigates to the first page. */\n GridApi.prototype.paginationGoToFirstPage = function () {\n this.paginationProxy.goToFirstPage();\n };\n /** Navigates to the last page. */\n GridApi.prototype.paginationGoToLastPage = function () {\n this.paginationProxy.goToLastPage();\n };\n /** Goes to the specified page. If the page requested doesn't exist, it will go to the last page. */\n GridApi.prototype.paginationGoToPage = function (page) {\n this.paginationProxy.goToPage(page);\n };\n GridApi.prototype.setRowClass = function (className) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_ROW_CLASS, className);\n };\n __decorate$1r([\n Optional('immutableService')\n ], GridApi.prototype, \"immutableService\", void 0);\n __decorate$1r([\n Optional('csvCreator')\n ], GridApi.prototype, \"csvCreator\", void 0);\n __decorate$1r([\n Optional('excelCreator')\n ], GridApi.prototype, \"excelCreator\", void 0);\n __decorate$1r([\n Autowired('rowRenderer')\n ], GridApi.prototype, \"rowRenderer\", void 0);\n __decorate$1r([\n Autowired('navigationService')\n ], GridApi.prototype, \"navigationService\", void 0);\n __decorate$1r([\n Autowired('filterManager')\n ], GridApi.prototype, \"filterManager\", void 0);\n __decorate$1r([\n Autowired('columnModel')\n ], GridApi.prototype, \"columnModel\", void 0);\n __decorate$1r([\n Autowired('selectionService')\n ], GridApi.prototype, \"selectionService\", void 0);\n __decorate$1r([\n Autowired('gridOptionsWrapper')\n ], GridApi.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1r([\n Autowired('valueService')\n ], GridApi.prototype, \"valueService\", void 0);\n __decorate$1r([\n Autowired('alignedGridsService')\n ], GridApi.prototype, \"alignedGridsService\", void 0);\n __decorate$1r([\n Autowired('eventService')\n ], GridApi.prototype, \"eventService\", void 0);\n __decorate$1r([\n Autowired('pinnedRowModel')\n ], GridApi.prototype, \"pinnedRowModel\", void 0);\n __decorate$1r([\n Autowired('context')\n ], GridApi.prototype, \"context\", void 0);\n __decorate$1r([\n Autowired('rowModel')\n ], GridApi.prototype, \"rowModel\", void 0);\n __decorate$1r([\n Autowired('sortController')\n ], GridApi.prototype, \"sortController\", void 0);\n __decorate$1r([\n Autowired('paginationProxy')\n ], GridApi.prototype, \"paginationProxy\", void 0);\n __decorate$1r([\n Autowired('focusService')\n ], GridApi.prototype, \"focusService\", void 0);\n __decorate$1r([\n Autowired('dragAndDropService')\n ], GridApi.prototype, \"dragAndDropService\", void 0);\n __decorate$1r([\n Optional('rangeService')\n ], GridApi.prototype, \"rangeService\", void 0);\n __decorate$1r([\n Optional('clipboardService')\n ], GridApi.prototype, \"clipboardService\", void 0);\n __decorate$1r([\n Optional('aggFuncService')\n ], GridApi.prototype, \"aggFuncService\", void 0);\n __decorate$1r([\n Autowired('menuFactory')\n ], GridApi.prototype, \"menuFactory\", void 0);\n __decorate$1r([\n Optional('contextMenuFactory')\n ], GridApi.prototype, \"contextMenuFactory\", void 0);\n __decorate$1r([\n Autowired('valueCache')\n ], GridApi.prototype, \"valueCache\", void 0);\n __decorate$1r([\n Autowired('animationFrameService')\n ], GridApi.prototype, \"animationFrameService\", void 0);\n __decorate$1r([\n Optional('statusBarService')\n ], GridApi.prototype, \"statusBarService\", void 0);\n __decorate$1r([\n Optional('chartService')\n ], GridApi.prototype, \"chartService\", void 0);\n __decorate$1r([\n Optional('undoRedoService')\n ], GridApi.prototype, \"undoRedoService\", void 0);\n __decorate$1r([\n Optional('rowNodeBlockLoader')\n ], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1r([\n Optional('ssrmTransactionManager')\n ], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n __decorate$1r([\n Autowired('ctrlsService')\n ], GridApi.prototype, \"ctrlsService\", void 0);\n __decorate$1r([\n Optional('frameworkComponentWrapper')\n ], GridApi.prototype, \"frameworkComponentWrapper\", void 0);\n __decorate$1r([\n PostConstruct\n ], GridApi.prototype, \"init\", null);\n __decorate$1r([\n PreDestroy\n ], GridApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n GridApi = __decorate$1r([\n Bean('gridApi')\n ], GridApi);\n return GridApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetLeftFeature = /** @class */ (function (_super) {\n __extends$1y(SetLeftFeature, _super);\n function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {\n var _this = _super.call(this) || this;\n _this.columnOrGroup = columnOrGroup;\n _this.eCell = eCell;\n _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;\n _this.colsSpanning = colsSpanning;\n _this.beans = beans;\n return _this;\n }\n SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n };\n SetLeftFeature.prototype.getColumnOrGroup = function () {\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n return last(this.colsSpanning);\n }\n return this.columnOrGroup;\n };\n SetLeftFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.columnOrGroup, Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n // when in print layout, the left position is also dependent on the width of the pinned sections.\n // so additionally update left if any column width changes.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));\n // setting left has a dependency on print layout\n this.addManagedListener(this.beans.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onLeftChanged.bind(this));\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();\n var oldLeftExists = exists(this.columnOrGroup.getOldLeft());\n var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n };\n SetLeftFeature.prototype.animateInLeft = function () {\n var _this = this;\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n var oldLeft = colOrGroup.getOldLeft();\n var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);\n var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(oldActualLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = actualLeft;\n this.beans.columnAnimationService.executeNextVMTurn(function () {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (_this.actualLeft === actualLeft) {\n _this.setLeft(actualLeft);\n }\n });\n };\n SetLeftFeature.prototype.onLeftChanged = function () {\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n };\n SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {\n var printLayout = this.beans.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (!printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n // is in body\n return leftWidth + leftPosition;\n };\n SetLeftFeature.prototype.setLeft = function (value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (exists(value)) {\n this.eCell.style.left = value + \"px\";\n }\n var indexColumn;\n if (this.columnOrGroup instanceof Column) {\n indexColumn = this.columnOrGroup;\n }\n else {\n var columnGroup = this.columnOrGroup;\n var children = columnGroup.getLeafColumns();\n if (!children.length) {\n return;\n }\n if (children.length > 1) {\n setAriaColSpan(this.ariaEl, children.length);\n }\n indexColumn = children[0];\n }\n var index = this.beans.columnModel.getAriaColumnIndex(indexColumn);\n setAriaColIndex(this.ariaEl, index);\n };\n __decorate$1q([\n PostConstruct\n ], SetLeftFeature.prototype, \"postConstruct\", null);\n return SetLeftFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HoverFeature = /** @class */ (function (_super) {\n __extends$1x(HoverFeature, _super);\n function HoverFeature(columns, element) {\n var _this = _super.call(this) || this;\n _this.columns = columns;\n _this.element = element;\n return _this;\n }\n HoverFeature.prototype.postConstruct = function () {\n if (this.gridOptionsWrapper.isColumnHoverHighlight()) {\n this.addMouseHoverListeners();\n }\n };\n HoverFeature.prototype.addMouseHoverListeners = function () {\n this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));\n this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));\n };\n HoverFeature.prototype.onMouseOut = function () {\n this.columnHoverService.clearMouseOver();\n };\n HoverFeature.prototype.onMouseOver = function () {\n this.columnHoverService.setMouseOver(this.columns);\n };\n __decorate$1p([\n Autowired('columnHoverService')\n ], HoverFeature.prototype, \"columnHoverService\", void 0);\n __decorate$1p([\n PostConstruct\n ], HoverFeature.prototype, \"postConstruct\", null);\n return HoverFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellCtrl = /** @class */ (function (_super) {\n __extends$1w(HeaderFilterCellCtrl, _super);\n function HeaderFilterCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.column = column;\n return _this;\n }\n HeaderFilterCellCtrl.prototype.setComp = function (comp, eGui, eButtonShowMainFilter, eFloatingFilterBody) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.eButtonShowMainFilter = eButtonShowMainFilter;\n this.eFloatingFilterBody = eFloatingFilterBody;\n var colDef = this.column.getColDef();\n var filterExists = !!colDef.filter || !!colDef.filterFramework;\n var floatingFilterExists = !!colDef.floatingFilter;\n this.active = filterExists && floatingFilterExists;\n this.setupWidth();\n this.setupLeft();\n this.setupHover();\n this.setupFocus();\n this.setupUserComp();\n this.setupSyncWithFilter();\n this.setupUi();\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n };\n HeaderFilterCellCtrl.prototype.setupUi = function () {\n this.comp.addOrRemoveButtonWrapperCssClass('ag-hidden', !this.active || this.suppressFilterButton);\n if (!this.active) {\n return;\n }\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);\n var eMenuIcon = createIconNoSpan('filter', this.gridOptionsWrapper, this.column);\n if (eMenuIcon) {\n this.eButtonShowMainFilter.appendChild(eMenuIcon);\n }\n };\n HeaderFilterCellCtrl.prototype.setupFocus = function () {\n this.createManagedBean(new ManagedFocusFeature(this.eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderFilterCellCtrl.prototype.onTabKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var wrapperHasFocus = activeEl === this.eGui;\n if (wrapperHasFocus) {\n return;\n }\n var nextFocusableEl = this.focusService.findNextFocusableElement(this.eGui, null, e.shiftKey);\n if (nextFocusableEl) {\n this.beans.headerNavigationService.scrollToColumn(this.column);\n e.preventDefault();\n nextFocusableEl.focus();\n return;\n }\n var nextFocusableColumn = this.findNextColumnWithFloatingFilter(e.shiftKey);\n if (!nextFocusableColumn) {\n return;\n }\n if (this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: this.getParentRowCtrl().getRowIndex(),\n column: nextFocusableColumn\n },\n event: e\n })) {\n e.preventDefault();\n }\n };\n HeaderFilterCellCtrl.prototype.findNextColumnWithFloatingFilter = function (backwards) {\n var columModel = this.beans.columnModel;\n var nextCol = this.column;\n do {\n nextCol = backwards\n ? columModel.getDisplayedColBefore(nextCol)\n : columModel.getDisplayedColAfter(nextCol);\n if (!nextCol) {\n break;\n }\n } while (!nextCol.getColDef().filter || !nextCol.getColDef().floatingFilter);\n return nextCol;\n };\n HeaderFilterCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n var wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!wrapperHasFocus) {\n e.preventDefault();\n }\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n if (wrapperHasFocus) {\n return;\n }\n e.stopPropagation();\n case KeyCode.ENTER:\n if (wrapperHasFocus) {\n if (this.focusService.focusInto(this.eGui)) {\n e.preventDefault();\n }\n }\n break;\n case KeyCode.ESCAPE:\n if (!wrapperHasFocus) {\n this.eGui.focus();\n }\n }\n };\n HeaderFilterCellCtrl.prototype.onFocusIn = function (e) {\n var isRelatedWithin = this.eGui.contains(e.relatedTarget);\n // when the focus is already within the component,\n // we default to the browser's behavior\n if (isRelatedWithin) {\n return;\n }\n var notFromHeaderWrapper = !!e.relatedTarget && !e.relatedTarget.classList.contains('ag-floating-filter');\n var fromWithinHeader = !!e.relatedTarget && isElementChildOfClass(e.relatedTarget, 'ag-floating-filter');\n if (notFromHeaderWrapper && fromWithinHeader && e.target === this.eGui) {\n var lastFocusEvent = this.lastFocusEvent;\n var fromTab = !!(lastFocusEvent && lastFocusEvent.key === KeyCode.TAB);\n if (lastFocusEvent && fromTab) {\n var shouldFocusLast = lastFocusEvent.shiftKey;\n this.focusService.focusInto(this.eGui, shouldFocusLast);\n }\n }\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.column);\n };\n HeaderFilterCellCtrl.prototype.setupHover = function () {\n var _this = this;\n this.createManagedBean(new HoverFeature([this.column], this.eGui));\n var listener = function () {\n if (!_this.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var hovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', hovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderFilterCellCtrl.prototype.setupLeft = function () {\n var setLeftFeature = new SetLeftFeature(this.column, this.eGui, this.beans);\n this.createManagedBean(setLeftFeature);\n };\n HeaderFilterCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var colDef = this.column.getColDef();\n var filterParams = this.filterManager.createFilterParams(this.column, colDef);\n var finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, FilterComponent, filterParams);\n var defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef);\n if (defaultFloatingFilterType == null) {\n defaultFloatingFilterType = 'agReadOnlyFloatingFilter';\n }\n var params = {\n column: this.column,\n filterParams: finalFilterParams,\n currentParentModel: function () { return _this.currentParentModel(); },\n parentFilterInstance: function (cb) { return _this.parentFilterInstance(cb); },\n showParentFilter: function () { return _this.showParentFilter(); },\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n // this is unusual - we need a params value OUTSIDE the component the params are for.\n // the params are for the floating filter component, but this property is actually for the wrapper.\n this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;\n var compDetails = this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);\n if (compDetails) {\n this.comp.setCompDetails(compDetails);\n }\n };\n HeaderFilterCellCtrl.prototype.currentParentModel = function () {\n var filterComponent = this.getFilterComponent(false);\n return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;\n };\n HeaderFilterCellCtrl.prototype.getFilterComponent = function (createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n return this.filterManager.getFilterComponent(this.column, 'NO_UI', createIfDoesNotExist);\n };\n HeaderFilterCellCtrl.prototype.parentFilterInstance = function (callback) {\n var filterComponent = this.getFilterComponent();\n if (filterComponent == null) {\n return;\n }\n filterComponent.then(function (instance) {\n callback(unwrapUserComp(instance));\n });\n };\n HeaderFilterCellCtrl.prototype.showParentFilter = function () {\n var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;\n this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'floatingFilter', 'filterMenuTab', ['filterMenuTab']);\n };\n HeaderFilterCellCtrl.prototype.setupSyncWithFilter = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var syncWithFilter = function (filterChangedEvent) {\n var compPromise = _this.comp.getFloatingFilterComp();\n if (!compPromise) {\n return;\n }\n var parentModel = _this.currentParentModel();\n compPromise.then(function (comp) {\n if (comp) {\n comp.onParentModelChanged(parentModel, filterChangedEvent);\n }\n });\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, syncWithFilter);\n if (this.filterManager.isFilterActive(this.column)) {\n syncWithFilter(null);\n }\n };\n HeaderFilterCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n var width = _this.column.getActualWidth() + \"px\";\n _this.comp.setWidth(width);\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n __decorate$1o([\n Autowired('filterManager')\n ], HeaderFilterCellCtrl.prototype, \"filterManager\", void 0);\n __decorate$1o([\n Autowired('columnHoverService')\n ], HeaderFilterCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1o([\n Autowired('menuFactory')\n ], HeaderFilterCellCtrl.prototype, \"menuFactory\", void 0);\n return HeaderFilterCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ResizeFeature = /** @class */ (function (_super) {\n __extends$1v(ResizeFeature, _super);\n function ResizeFeature(pinned, column, eResize, comp, ctrl) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.column = column;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.ctrl = ctrl;\n return _this;\n }\n ResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var destroyResizeFuncs = [];\n var canResize;\n var canAutosize;\n var addResize = function () {\n setDisplayed(_this.eResize, canResize);\n if (!canResize) {\n return;\n }\n var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({\n eResizeBar: _this.eResize,\n onResizeStart: _this.onResizeStart.bind(_this),\n onResizing: _this.onResizing.bind(_this, false),\n onResizeEnd: _this.onResizing.bind(_this, true)\n });\n destroyResizeFuncs.push(finishedWithResizeFunc);\n if (canAutosize) {\n var skipHeaderOnAutoSize_1 = _this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n var autoSizeColListener_1 = function () {\n _this.columnModel.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, \"uiColumnResized\");\n };\n _this.eResize.addEventListener('dblclick', autoSizeColListener_1);\n var touchListener_1 = new TouchListener(_this.eResize);\n touchListener_1.addEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n _this.addDestroyFunc(function () {\n _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);\n touchListener_1.removeEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n touchListener_1.destroy();\n });\n }\n };\n var removeResize = function () {\n destroyResizeFuncs.forEach(function (f) { return f(); });\n destroyResizeFuncs.length = 0;\n };\n var refresh = function () {\n var resize = _this.column.isResizable();\n var autoSize = !_this.gridOptionsWrapper.isSuppressAutoSize() && !colDef.suppressAutoSize;\n var propertyChange = resize !== canResize || autoSize !== canAutosize;\n if (propertyChange) {\n canResize = resize;\n canAutosize = autoSize;\n removeResize();\n addResize();\n }\n };\n refresh();\n this.addDestroyFunc(removeResize);\n this.ctrl.addRefreshFunction(refresh);\n };\n ResizeFeature.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);\n var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];\n this.columnModel.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, \"uiColumnDragged\");\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n ResizeFeature.prototype.onResizeStart = function (shiftKey) {\n this.resizeStartWidth = this.column.getActualWidth();\n this.resizeWithShiftKey = shiftKey;\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?\n ResizeFeature.prototype.normaliseResizeAmount = function (dragChange) {\n var result = dragChange;\n var notPinningLeft = this.pinned !== Constants.PINNED_LEFT;\n var pinningRight = this.pinned === Constants.PINNED_RIGHT;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (notPinningLeft) {\n result *= -1;\n }\n }\n else {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n if (pinningRight) {\n result *= -1;\n }\n }\n return result;\n };\n __decorate$1n([\n Autowired('horizontalResizeService')\n ], ResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1n([\n Autowired('columnModel')\n ], ResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1n([\n PostConstruct\n ], ResizeFeature.prototype, \"postConstruct\", null);\n return ResizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgCheckbox = /** @class */ (function (_super) {\n __extends$1u(AgCheckbox, _super);\n function AgCheckbox(config, className, inputType) {\n if (className === void 0) { className = 'ag-checkbox'; }\n if (inputType === void 0) { inputType = 'checkbox'; }\n var _this = _super.call(this, config, className, inputType) || this;\n _this.labelAlignment = 'right';\n _this.selected = false;\n _this.readOnly = false;\n _this.passive = false;\n return _this;\n }\n AgCheckbox.prototype.addInputListeners = function () {\n this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));\n };\n AgCheckbox.prototype.getNextValue = function () {\n return this.selected === undefined ? true : !this.selected;\n };\n AgCheckbox.prototype.setPassive = function (passive) {\n this.passive = passive;\n };\n AgCheckbox.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n AgCheckbox.prototype.setReadOnly = function (readOnly) {\n this.eWrapper.classList.toggle('ag-disabled', readOnly);\n this.eInput.disabled = readOnly;\n this.readOnly = readOnly;\n };\n AgCheckbox.prototype.setDisabled = function (disabled) {\n this.eWrapper.classList.toggle('ag-disabled', disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n AgCheckbox.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var nextValue = this.getNextValue();\n if (this.passive) {\n this.dispatchChange(nextValue, previousValue);\n }\n else {\n this.setValue(nextValue);\n }\n };\n AgCheckbox.prototype.getValue = function () {\n return this.isSelected();\n };\n AgCheckbox.prototype.setValue = function (value, silent) {\n this.refreshSelectedClass(value);\n this.setSelected(value, silent);\n return this;\n };\n AgCheckbox.prototype.setName = function (name) {\n var input = this.getInputElement();\n input.name = name;\n return this;\n };\n AgCheckbox.prototype.isSelected = function () {\n return this.selected;\n };\n AgCheckbox.prototype.setSelected = function (selected, silent) {\n if (this.isSelected() === selected) {\n return;\n }\n this.previousValue = this.isSelected();\n selected = this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = selected;\n this.eInput.indeterminate = selected === undefined;\n if (!silent) {\n this.dispatchChange(this.selected, this.previousValue);\n }\n };\n AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {\n this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });\n var input = this.getInputElement();\n var checkboxChangedEvent = {\n type: Events.EVENT_CHECKBOX_CHANGED,\n id: input.id,\n name: input.name,\n selected: selected,\n previousValue: previousValue\n };\n this.eventService.dispatchEvent(checkboxChangedEvent);\n };\n AgCheckbox.prototype.onCheckboxClick = function (e) {\n if (this.passive || this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var selected = this.selected = e.target.checked;\n this.refreshSelectedClass(selected);\n this.dispatchChange(selected, previousValue, e);\n };\n AgCheckbox.prototype.refreshSelectedClass = function (value) {\n this.eWrapper.classList.toggle('ag-checked', value === true);\n this.eWrapper.classList.toggle('ag-indeterminate', value == null);\n };\n return AgCheckbox;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectAllFeature = /** @class */ (function (_super) {\n __extends$1t(SelectAllFeature, _super);\n function SelectAllFeature(column) {\n var _this = _super.call(this) || this;\n _this.cbSelectAllVisible = false;\n _this.processingEventFromCheckbox = false;\n _this.column = column;\n var colDef = column.getColDef();\n _this.filteredOnly = colDef ? !!colDef.headerCheckboxSelectionFilteredOnly : false;\n return _this;\n }\n SelectAllFeature.prototype.onSpaceKeyPressed = function (e) {\n var checkbox = this.cbSelectAll;\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (checkbox.isDisplayed() && !checkbox.getGui().contains(eDocument.activeElement)) {\n e.preventDefault();\n checkbox.setValue(!checkbox.getValue());\n }\n };\n SelectAllFeature.prototype.getCheckboxGui = function () {\n return this.cbSelectAll.getGui();\n };\n SelectAllFeature.prototype.setComp = function (ctrl) {\n this.headerCellCtrl = ctrl;\n this.cbSelectAll = this.createManagedBean(new AgCheckbox());\n this.cbSelectAll.addCssClass('ag-header-select-all');\n setAriaRole(this.cbSelectAll.getGui(), 'presentation');\n this.showOrHideSelectAll();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, AgCheckbox.EVENT_CHANGED, this.onCbSelectAll.bind(this));\n setAriaHidden(this.cbSelectAll.getGui(), true);\n this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.showOrHideSelectAll = function () {\n this.cbSelectAllVisible = this.isCheckboxSelection();\n this.cbSelectAll.setDisplayed(this.cbSelectAllVisible);\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType();\n // make sure checkbox is showing the right state\n this.updateStateOfCheckbox();\n }\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.onModelChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.onSelectionChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.getNextCheckboxState = function (selectionCount) {\n // if no rows, always have it unselected\n if (selectionCount.selected === 0 && selectionCount.notSelected === 0) {\n return false;\n }\n // if mix of selected and unselected, this is the tri-state\n if (selectionCount.selected > 0 && selectionCount.notSelected > 0) {\n return null;\n }\n // only selected\n if (selectionCount.selected > 0) {\n return true;\n }\n // nothing selected\n return false;\n };\n SelectAllFeature.prototype.updateStateOfCheckbox = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n var selectionCount = this.getSelectionCount();\n var allSelected = this.getNextCheckboxState(selectionCount);\n this.cbSelectAll.setValue(allSelected);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n };\n SelectAllFeature.prototype.refreshSelectAllLabel = function () {\n if (!this.cbSelectAllVisible) {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);\n this.cbSelectAll.setInputAriaLabel(null);\n }\n else {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var checked = this.cbSelectAll.getValue();\n var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');\n var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', ariaLabel + \" (\" + ariaStatus + \")\");\n this.cbSelectAll.setInputAriaLabel(ariaLabel + \" (\" + ariaStatus + \")\");\n }\n this.headerCellCtrl.refreshAriaDescription();\n };\n SelectAllFeature.prototype.getSelectionCount = function () {\n var _this = this;\n var selectedCount = 0;\n var notSelectedCount = 0;\n var callback = function (node) {\n if (_this.gridOptionsWrapper.isGroupSelectsChildren() && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) ;\n else {\n notSelectedCount++;\n }\n };\n if (this.filteredOnly) {\n this.gridApi.forEachNodeAfterFilter(callback);\n }\n else {\n this.gridApi.forEachNode(callback);\n }\n return {\n notSelected: notSelectedCount,\n selected: selectedCount\n };\n };\n SelectAllFeature.prototype.checkRightRowModelType = function () {\n var rowModelType = this.rowModel.getType();\n var rowModelMatches = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (!rowModelMatches) {\n console.warn(\"AG Grid: selectAllCheckbox is only available if using normal row model, you are using \" + rowModelType);\n }\n };\n SelectAllFeature.prototype.onCbSelectAll = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n if (!this.cbSelectAllVisible) {\n return;\n }\n var value = this.cbSelectAll.getValue();\n if (value) {\n this.selectionService.selectAllRowNodes(this.filteredOnly);\n }\n else {\n this.selectionService.deselectAllRowNodes(this.filteredOnly);\n }\n };\n SelectAllFeature.prototype.isCheckboxSelection = function () {\n var result = this.column.getColDef().headerCheckboxSelection;\n if (typeof result === 'function') {\n var func = result;\n var params = {\n column: this.column,\n colDef: this.column.getColDef(),\n columnApi: this.columnApi,\n api: this.gridApi,\n context: this.gridOptionsWrapper.getContext()\n };\n result = func(params);\n }\n if (result) {\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Server Side Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Infinite Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Viewport Row Model');\n return false;\n }\n // otherwise the row model is compatible, so return true\n return true;\n }\n return false;\n };\n __decorate$1m([\n Autowired('gridApi')\n ], SelectAllFeature.prototype, \"gridApi\", void 0);\n __decorate$1m([\n Autowired('columnApi')\n ], SelectAllFeature.prototype, \"columnApi\", void 0);\n __decorate$1m([\n Autowired('rowModel')\n ], SelectAllFeature.prototype, \"rowModel\", void 0);\n __decorate$1m([\n Autowired('selectionService')\n ], SelectAllFeature.prototype, \"selectionService\", void 0);\n return SelectAllFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1s(HeaderCellCtrl, _super);\n function HeaderCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.refreshFunctions = [];\n _this.userHeaderClasses = new Set();\n _this.ariaDescriptionProperties = new Map();\n _this.column = column;\n return _this;\n }\n HeaderCellCtrl.prototype.setComp = function (comp, eGui, eResize, eHeaderCompWrapper) {\n var _this = this;\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.updateState();\n this.setupWidth();\n this.setupMovingCss();\n this.setupMenuClass();\n this.setupSortableClass();\n this.setupWrapTextClass();\n this.setupAutoHeight(eHeaderCompWrapper);\n this.addColumnHoverListener();\n this.setupFilterCss();\n this.setupColId();\n this.setupClassesFromColDef();\n this.setupTooltip();\n this.addActiveHeaderMouseListeners();\n this.setupSelectAll();\n this.setupUserComp();\n this.refreshAria();\n this.createManagedBean(new ResizeFeature(this.getPinned(), this.column, eResize, comp, this));\n this.createManagedBean(new HoverFeature([this.column], eGui));\n this.createManagedBean(new SetLeftFeature(this.column, eGui, this.beans));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: function (e) { return _this.shouldStopEventPropagation(e); },\n onTabKeyDown: function () { return null; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));\n };\n HeaderCellCtrl.prototype.setupUserComp = function () {\n var compDetails = this.lookupUserCompDetails();\n this.setCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.setCompDetails = function (compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.lookupUserCompDetails = function () {\n var params = this.createParams();\n var colDef = this.column.getColDef();\n return this.userComponentFactory.getHeaderCompDetails(colDef, params);\n };\n HeaderCellCtrl.prototype.createParams = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var params = {\n column: this.column,\n displayName: this.displayName,\n enableSorting: colDef.sortable,\n enableMenu: this.menuEnabled,\n showColumnMenu: function (source) {\n _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);\n },\n progressSort: function (multiSort) {\n _this.sortController.progressSort(_this.column, !!multiSort, \"uiColumnSorted\");\n },\n setSort: function (sort, multiSort) {\n _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, \"uiColumnSorted\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext(),\n eGridHeader: this.getGui()\n };\n return params;\n };\n HeaderCellCtrl.prototype.setupSelectAll = function () {\n this.selectAllFeature = this.createManagedBean(new SelectAllFeature(this.column));\n this.selectAllFeature.setComp(this);\n };\n HeaderCellCtrl.prototype.getSelectAllGui = function () {\n return this.selectAllFeature.getCheckboxGui();\n };\n HeaderCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n if (e.key === KeyCode.SPACE) {\n this.selectAllFeature.onSpaceKeyPressed(e);\n }\n if (e.key === KeyCode.ENTER) {\n this.onEnterKeyPressed(e);\n }\n };\n HeaderCellCtrl.prototype.onEnterKeyPressed = function (e) {\n /// THIS IS BAD - we are assuming the header is not a user provided comp\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return;\n }\n if (e.ctrlKey || e.metaKey) {\n if (this.menuEnabled && headerComp.showMenu) {\n e.preventDefault();\n headerComp.showMenu();\n }\n }\n else if (this.sortable) {\n var multiSort = e.shiftKey;\n this.sortController.progressSort(this.column, multiSort, \"uiColumnSorted\");\n }\n };\n HeaderCellCtrl.prototype.isMenuEnabled = function () {\n return this.menuEnabled;\n };\n HeaderCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.focusService.setFocusedHeader(rowIndex, this.column);\n }\n this.setActiveHeader(true);\n };\n HeaderCellCtrl.prototype.onFocusOut = function (e) {\n if (this.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.setActiveHeader(false);\n };\n HeaderCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'header'; },\n getTooltipValue: function () {\n var res = _this.column.getColDef().headerTooltip;\n return res;\n },\n };\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.comp);\n this.refreshFunctions.push(function () { return tooltipFeature.refreshToolTip(); });\n };\n HeaderCellCtrl.prototype.setupClassesFromColDef = function () {\n var _this = this;\n var refreshHeaderClasses = function () {\n var colDef = _this.column.getColDef();\n var goa = _this.gridOptionsWrapper;\n var classes = CssClassApplier.getHeaderClassesFromColDef(colDef, goa, _this.column, null);\n var oldClasses = _this.userHeaderClasses;\n _this.userHeaderClasses = new Set(classes);\n classes.forEach(function (c) {\n if (oldClasses.has(c)) {\n // class already added, no need to apply it, but remove from old set\n oldClasses.delete(c);\n }\n else {\n // class new since last time, so apply it\n _this.comp.addOrRemoveCssClass(c, true);\n }\n });\n // now old set only has classes that were applied last time, but not this time, so remove them\n oldClasses.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, false); });\n };\n this.refreshFunctions.push(refreshHeaderClasses);\n refreshHeaderClasses();\n };\n HeaderCellCtrl.prototype.setDragSource = function (eSource) {\n var _this = this;\n this.dragSourceElement = eSource;\n this.removeDragSource();\n if (!eSource) {\n return;\n }\n if (!this.draggable) {\n return;\n }\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns();\n this.moveDragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eSource,\n defaultIconName: hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n onDragStarted: function () { return _this.column.setMoving(true, \"uiColumnMoved\"); },\n onDragStopped: function () { return _this.column.setMoving(false, \"uiColumnMoved\"); },\n onGridEnter: function (dragItem) {\n var _a, _b;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_b = (_a = dragItem) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a, _b;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_b = (_a = dragItem) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n this.dragAndDropService.addDragSource(this.moveDragSource, true);\n };\n HeaderCellCtrl.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n HeaderCellCtrl.prototype.removeDragSource = function () {\n if (this.moveDragSource) {\n this.dragAndDropService.removeDragSource(this.moveDragSource);\n this.moveDragSource = undefined;\n }\n };\n HeaderCellCtrl.prototype.onColDefChanged = function () {\n this.refresh();\n };\n HeaderCellCtrl.prototype.updateState = function () {\n var colDef = this.column.getColDef();\n this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;\n this.sortable = colDef.sortable;\n this.displayName = this.calculateDisplayName();\n this.draggable = this.workOutDraggable();\n };\n HeaderCellCtrl.prototype.addRefreshFunction = function (func) {\n this.refreshFunctions.push(func);\n };\n HeaderCellCtrl.prototype.refresh = function () {\n this.updateState();\n this.refreshHeaderComp();\n this.refreshAria();\n this.refreshFunctions.forEach(function (f) { return f(); });\n };\n HeaderCellCtrl.prototype.refreshHeaderComp = function () {\n var newCompDetails = this.lookupUserCompDetails();\n var compInstance = this.comp.getUserCompInstance();\n // only try refresh if old comp exists adn it is the correct type\n var attemptRefresh = compInstance != null && this.userCompDetails.componentClass == newCompDetails.componentClass;\n var headerCompRefreshed = attemptRefresh ? this.attemptHeaderCompRefresh(newCompDetails.params) : false;\n if (headerCompRefreshed) {\n // we do this as a refresh happens after colDefs change, and it's possible the column has had it's\n // draggable property toggled. no need to call this if not refreshing, as setDragSource is done\n // as part of appendHeaderComp\n this.setDragSource(this.dragSourceElement);\n }\n else {\n this.setCompDetails(newCompDetails);\n }\n };\n HeaderCellCtrl.prototype.attemptHeaderCompRefresh = function (params) {\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return false;\n }\n // if no refresh method, then we want to replace the headerComp\n if (!headerComp.refresh) {\n return false;\n }\n var res = headerComp.refresh(params);\n return res;\n };\n HeaderCellCtrl.prototype.calculateDisplayName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'header', true);\n };\n HeaderCellCtrl.prototype.checkDisplayName = function () {\n // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)\n if (this.displayName !== this.calculateDisplayName()) {\n this.refresh();\n }\n };\n HeaderCellCtrl.prototype.workOutDraggable = function () {\n var colDef = this.column.getColDef();\n var isSuppressMovableColumns = this.gridOptionsWrapper.isSuppressMovableColumns();\n var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;\n // we should still be allowed drag the column, even if it can't be moved, if the column\n // can be dragged to a rowGroup or pivot drop zone\n return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;\n };\n HeaderCellCtrl.prototype.onColumnRowGroupChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnPivotChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnValueChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n _this.comp.setWidth(_this.column.getActualWidth() + 'px');\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var listener = function () {\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.column.isMoving());\n };\n this.addManagedListener(this.column, Column.EVENT_MOVING_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMenuClass = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-column-menu-visible', _this.column.isMenuVisible());\n };\n this.addManagedListener(this.column, Column.EVENT_MENU_VISIBLE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupSortableClass = function () {\n var _this = this;\n var updateSortableCssClass = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-sortable', !!_this.sortable);\n };\n updateSortableCssClass();\n this.addRefreshFunction(updateSortableCssClass);\n this.addManagedListener(this.column, Column.EVENT_SORT_CHANGED, this.refreshAriaSort.bind(this));\n };\n HeaderCellCtrl.prototype.setupWrapTextClass = function () {\n var _this = this;\n var listener = function () {\n var wrapText = !!_this.column.getColDef().wrapHeaderText;\n _this.comp.addOrRemoveCssClass('ag-header-cell-wrap-text', wrapText);\n };\n listener();\n this.addRefreshFunction(listener);\n };\n HeaderCellCtrl.prototype.setupAutoHeight = function (wrapperElement) {\n var _this = this;\n var measureHeight = function (timesCalled) {\n if (!_this.isAlive()) {\n return;\n }\n var _a = getElementSize(_this.getGui()), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;\n var wrapperHeight = wrapperElement.offsetHeight;\n var autoHeight = wrapperHeight + paddingTop + paddingBottom;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n var doc = _this.beans.gridOptionsWrapper.getDocument();\n var notYetInDom = !doc || !doc.contains(wrapperElement);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n var possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);\n return;\n }\n }\n _this.columnModel.setColumnHeaderHeight(_this.column, autoHeight);\n };\n var isMeasuring = false;\n var stopResizeObserver;\n var checkMeasuring = function () {\n var newValue = _this.column.isAutoHeaderHeight();\n if (newValue && !isMeasuring) {\n startMeasuring();\n }\n if (!newValue && isMeasuring) {\n stopMeasuring();\n }\n };\n var startMeasuring = function () {\n isMeasuring = true;\n measureHeight(0);\n _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', true);\n stopResizeObserver = _this.resizeObserverService.observeResize(wrapperElement, function () { return measureHeight(0); });\n };\n var stopMeasuring = function () {\n isMeasuring = false;\n if (stopResizeObserver) {\n stopResizeObserver();\n }\n _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', false);\n stopResizeObserver = undefined;\n };\n checkMeasuring();\n this.addDestroyFunc(function () { return stopMeasuring(); });\n // In theory we could rely on the resize observer for everything - but since it's debounced\n // it can be a little janky for smooth movement. in this case its better to react to our own events\n // And unfortunately we cant _just_ rely on our own events, since custom components can change whenever\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, function () { return isMeasuring && measureHeight(0); });\n // Displaying the sort icon changes the available area for text, so sort changes can affect height\n this.addManagedListener(this.column, Column.EVENT_SORT_CHANGED, function () {\n // Rendering changes for sort, happen after the event... not ideal\n if (isMeasuring) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(0); });\n }\n });\n this.addRefreshFunction(checkMeasuring);\n };\n HeaderCellCtrl.prototype.refreshAriaSort = function () {\n if (this.sortable) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.comp.setAriaSort(getAriaSortState(this.column));\n this.setAriaDescriptionProperty('sort', translate('ariaSortableColumn', 'Press ENTER to sort.'));\n }\n else {\n this.comp.setAriaSort();\n this.setAriaDescriptionProperty('sort', null);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaMenu = function () {\n if (this.menuEnabled) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.setAriaDescriptionProperty('menu', translate('ariaMenuColumn', 'Press CTRL ENTER to open column menu.'));\n }\n else {\n this.setAriaDescriptionProperty('menu', null);\n }\n };\n HeaderCellCtrl.prototype.setAriaDescriptionProperty = function (property, value) {\n if (value != null) {\n this.ariaDescriptionProperties.set(property, value);\n }\n else {\n this.ariaDescriptionProperties.delete(property);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaDescription = function () {\n var descriptionArray = Array.from(this.ariaDescriptionProperties.values());\n this.comp.setAriaDescription(descriptionArray.length ? descriptionArray.join(' ') : undefined);\n };\n HeaderCellCtrl.prototype.refreshAria = function () {\n this.refreshAriaSort();\n this.refreshAriaMenu();\n this.refreshAriaDescription();\n };\n HeaderCellCtrl.prototype.addColumnHoverListener = function () {\n var _this = this;\n var listener = function () {\n if (!_this.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var isHovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', isHovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupFilterCss = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-filtered', _this.column.isFilterActive());\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_ACTIVE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupColId = function () {\n this.comp.setColId(this.column.getColId());\n };\n HeaderCellCtrl.prototype.addActiveHeaderMouseListeners = function () {\n var _this = this;\n var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n };\n HeaderCellCtrl.prototype.setActiveHeader = function (active) {\n this.comp.addOrRemoveCssClass('ag-header-active', active);\n };\n __decorate$1l([\n Autowired('columnModel')\n ], HeaderCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1l([\n Autowired('columnHoverService')\n ], HeaderCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1l([\n Autowired('sortController')\n ], HeaderCellCtrl.prototype, \"sortController\", void 0);\n __decorate$1l([\n Autowired('menuFactory')\n ], HeaderCellCtrl.prototype, \"menuFactory\", void 0);\n __decorate$1l([\n Autowired('dragAndDropService')\n ], HeaderCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1l([\n Autowired('resizeObserverService')\n ], HeaderCellCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1l([\n Autowired('gridApi')\n ], HeaderCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1l([\n Autowired('columnApi')\n ], HeaderCellCtrl.prototype, \"columnApi\", void 0);\n __decorate$1l([\n PreDestroy\n ], HeaderCellCtrl.prototype, \"removeDragSource\", null);\n return HeaderCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupResizeFeature = /** @class */ (function (_super) {\n __extends$1r(GroupResizeFeature, _super);\n function GroupResizeFeature(comp, eResize, pinned, columnGroup) {\n var _this = _super.call(this) || this;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.pinned = pinned;\n _this.columnGroup = columnGroup;\n return _this;\n }\n GroupResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.columnGroup.isResizable()) {\n this.comp.addOrRemoveResizableCssClass('ag-hidden', true);\n return;\n }\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n if (!this.gridOptionsWrapper.isSuppressAutoSize()) {\n var skipHeaderOnAutoSize_1 = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n this.eResize.addEventListener('dblclick', function () {\n // get list of all the column keys we are responsible for\n var keys = [];\n var leafCols = _this.columnGroup.getDisplayedLeafColumns();\n leafCols.forEach(function (column) {\n // not all cols in the group may be participating with auto-resize\n if (!column.getColDef().suppressAutoSize) {\n keys.push(column.getColId());\n }\n });\n if (keys.length > 0) {\n _this.columnModel.autoSizeColumns({\n columns: keys,\n skipHeader: skipHeaderOnAutoSize_1,\n stopAtGroup: _this.columnGroup,\n source: 'uiColumnResized'\n });\n }\n _this.resizeLeafColumnsToFit();\n });\n }\n };\n GroupResizeFeature.prototype.onResizeStart = function (shiftKey) {\n var _this = this;\n this.calculateInitialValues();\n var takeFromGroup = null;\n if (shiftKey) {\n takeFromGroup = this.columnModel.getDisplayedGroupAfter(this.columnGroup);\n }\n if (takeFromGroup) {\n var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();\n this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });\n this.resizeTakeFromStartWidth = 0;\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });\n this.resizeTakeFromRatios = [];\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });\n }\n else {\n this.resizeTakeFromCols = null;\n this.resizeTakeFromStartWidth = null;\n this.resizeTakeFromRatios = null;\n }\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n GroupResizeFeature.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n var width = this.resizeStartWidth + resizeAmountNormalised;\n this.resizeColumns(width, finished);\n };\n GroupResizeFeature.prototype.resizeLeafColumnsToFit = function () {\n var preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);\n this.calculateInitialValues();\n if (preferredSize > this.resizeStartWidth) {\n this.resizeColumns(preferredSize, true);\n }\n };\n GroupResizeFeature.prototype.resizeColumns = function (totalWidth, finished) {\n if (finished === void 0) { finished = true; }\n var resizeSets = [];\n resizeSets.push({\n columns: this.resizeCols,\n ratios: this.resizeRatios,\n width: totalWidth\n });\n if (this.resizeTakeFromCols) {\n var diff = totalWidth - this.resizeStartWidth;\n resizeSets.push({\n columns: this.resizeTakeFromCols,\n ratios: this.resizeTakeFromRatios,\n width: this.resizeTakeFromStartWidth - diff\n });\n }\n this.columnModel.resizeColumnSets({\n resizeSets: resizeSets,\n finished: finished,\n source: 'uiColumnDragged'\n });\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n GroupResizeFeature.prototype.calculateInitialValues = function () {\n var _this = this;\n var leafCols = this.columnGroup.getDisplayedLeafColumns();\n this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });\n this.resizeStartWidth = 0;\n this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });\n this.resizeRatios = [];\n this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderCell - should refactor out?\n GroupResizeFeature.prototype.normaliseDragChange = function (dragChange) {\n var result = dragChange;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== Constants.PINNED_LEFT) {\n result *= -1;\n }\n }\n else if (this.pinned === Constants.PINNED_RIGHT) {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n result *= -1;\n }\n return result;\n };\n __decorate$1k([\n Autowired('horizontalResizeService')\n ], GroupResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1k([\n Autowired('autoWidthCalculator')\n ], GroupResizeFeature.prototype, \"autoWidthCalculator\", void 0);\n __decorate$1k([\n Autowired('columnModel')\n ], GroupResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1k([\n PostConstruct\n ], GroupResizeFeature.prototype, \"postConstruct\", null);\n return GroupResizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupWidthFeature = /** @class */ (function (_super) {\n __extends$1q(GroupWidthFeature, _super);\n function GroupWidthFeature(comp, columnGroup) {\n var _this = _super.call(this) || this;\n // the children can change, we keep destroy functions related to listening to the children here\n _this.removeChildListenersFuncs = [];\n _this.columnGroup = columnGroup;\n _this.comp = comp;\n return _this;\n }\n GroupWidthFeature.prototype.postConstruct = function () {\n // we need to listen to changes in child columns, as they impact our width\n this.addListenersToChildrenColumns();\n // the children belonging to this group can change, so we need to add and remove listeners as they change\n this.addManagedListener(this.columnGroup, ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));\n this.onWidthChanged();\n // the child listeners are not tied to this components life-cycle, as children can get added and removed\n // to the group - hence they are on a different life-cycle. so we must make sure the existing children\n // listeners are removed when we finally get destroyed\n this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));\n };\n GroupWidthFeature.prototype.addListenersToChildrenColumns = function () {\n var _this = this;\n // first destroy any old listeners\n this.removeListenersOnChildrenColumns();\n // now add new listeners to the new set of children\n var widthChangedListener = this.onWidthChanged.bind(this);\n this.columnGroup.getLeafColumns().forEach(function (column) {\n column.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.addEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n _this.removeChildListenersFuncs.push(function () {\n column.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.removeEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n });\n });\n };\n GroupWidthFeature.prototype.removeListenersOnChildrenColumns = function () {\n this.removeChildListenersFuncs.forEach(function (func) { return func(); });\n this.removeChildListenersFuncs = [];\n };\n GroupWidthFeature.prototype.onDisplayedChildrenChanged = function () {\n this.addListenersToChildrenColumns();\n this.onWidthChanged();\n };\n GroupWidthFeature.prototype.onWidthChanged = function () {\n this.comp.setWidth(this.columnGroup.getActualWidth() + 'px');\n };\n __decorate$1j([\n PostConstruct\n ], GroupWidthFeature.prototype, \"postConstruct\", null);\n return GroupWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellCtrl = /** @class */ (function (_super) {\n __extends$1p(HeaderGroupCellCtrl, _super);\n function HeaderGroupCellCtrl(columnGroup, parentRowCtrl) {\n var _this = _super.call(this, columnGroup, parentRowCtrl) || this;\n _this.columnGroup = columnGroup;\n return _this;\n }\n HeaderGroupCellCtrl.prototype.setComp = function (comp, eGui, eResize) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.displayName = this.columnModel.getDisplayNameForColumnGroup(this.columnGroup, 'header');\n this.addClasses();\n this.addAttributes();\n this.setupMovingCss();\n this.setupExpandable();\n this.setupTooltip();\n this.setupUserComp();\n var pinned = this.getParentRowCtrl().getPinned();\n var leafCols = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n this.createManagedBean(new HoverFeature(leafCols, eGui));\n this.createManagedBean(new SetLeftFeature(this.columnGroup, eGui, this.beans));\n this.createManagedBean(new GroupWidthFeature(comp, this.columnGroup));\n this.groupResizeFeature = this.createManagedBean(new GroupResizeFeature(comp, eResize, pinned, this.columnGroup));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: function () { return undefined; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderGroupCellCtrl.prototype.resizeLeafColumnsToFit = function () {\n this.groupResizeFeature.onResizeStart(false);\n this.groupResizeFeature.resizeLeafColumnsToFit();\n };\n HeaderGroupCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n var displayName = this.displayName;\n var params = {\n displayName: this.displayName,\n columnGroup: this.columnGroup,\n setExpanded: function (expanded) {\n _this.columnModel.setColumnGroupOpened(_this.columnGroup.getProvidedColumnGroup(), expanded, \"gridInitializing\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n if (!displayName) {\n var columnGroup = this.columnGroup;\n var leafCols = columnGroup.getLeafColumns();\n // find the top most column group that represents the same columns. so if we are dragging a group, we also\n // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels\n // of grouping, with each group only containing the next group, and the last group containing three columns,\n // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all\n // the groups represent the same column set.\n while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {\n columnGroup = columnGroup.getParent();\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef) {\n displayName = colGroupDef.headerName;\n }\n if (!displayName) {\n displayName = leafCols ? this.columnModel.getDisplayNameForColumn(leafCols[0], 'header', true) : '';\n }\n }\n var compDetails = this.userComponentFactory.getHeaderGroupCompDetails(params);\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderGroupCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var tooltipCtrl = {\n getColumn: function () { return _this.columnGroup; },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'headerGroup'; },\n getTooltipValue: function () { return colGroupDef && colGroupDef.headerTooltip; }\n };\n if (colGroupDef) {\n tooltipCtrl.getColDef = function () { return colGroupDef; };\n }\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.comp);\n };\n HeaderGroupCellCtrl.prototype.setupExpandable = function () {\n var providedColGroup = this.columnGroup.getProvidedColumnGroup();\n this.refreshExpanded();\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));\n };\n HeaderGroupCellCtrl.prototype.refreshExpanded = function () {\n var column = this.columnGroup;\n this.expandable = column.isExpandable();\n var expanded = column.isExpanded();\n if (this.expandable) {\n this.comp.setAriaExpanded(expanded ? 'true' : 'false');\n }\n else {\n this.comp.setAriaExpanded(undefined);\n }\n };\n HeaderGroupCellCtrl.prototype.addAttributes = function () {\n this.comp.setColId(this.columnGroup.getUniqueId());\n };\n HeaderGroupCellCtrl.prototype.addClasses = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var classes = CssClassApplier.getHeaderClassesFromColDef(colGroupDef, this.gridOptionsWrapper, null, this.columnGroup);\n // having different classes below allows the style to not have a bottom border\n // on the group header, if no group is specified\n classes.push(this.columnGroup.isPadding() ? \"ag-header-group-cell-no-group\" : \"ag-header-group-cell-with-group\");\n classes.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, true); });\n };\n HeaderGroupCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var providedColumnGroup = this.columnGroup.getProvidedColumnGroup();\n var leafColumns = providedColumnGroup.getLeafColumns();\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n var listener = function () { return _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.columnGroup.isMoving()); };\n leafColumns.forEach(function (col) {\n _this.addManagedListener(col, Column.EVENT_MOVING_CHANGED, listener);\n });\n listener();\n };\n HeaderGroupCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.eGui.contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.columnGroup);\n }\n };\n HeaderGroupCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n var wrapperHasFocus = this.getWrapperHasFocus();\n if (!this.expandable || !wrapperHasFocus) {\n return;\n }\n if (e.key === KeyCode.ENTER) {\n var column = this.columnGroup;\n var newExpandedValue = !column.isExpanded();\n this.columnModel.setColumnGroupOpened(column.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n }\n };\n // unlike columns, this will only get called once, as we don't react on props on column groups\n // (we will always destroy and recreate this comp if something changes)\n HeaderGroupCellCtrl.prototype.setDragSource = function (eHeaderGroup) {\n var _this = this;\n if (this.isSuppressMoving()) {\n return;\n }\n var allLeafColumns = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns();\n var dragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n defaultIconName: hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n dragItemName: this.displayName,\n // we add in the original group leaf columns, so we move both visible and non-visible items\n getDragItem: this.getDragItemForGroup.bind(this),\n onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, \"uiColumnDragged\"); }); },\n onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, \"uiColumnDragged\"); }); },\n onGridEnter: function (dragItem) {\n var _a, _b;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_b = (_a = dragItem) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a, _b;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_b = (_a = dragItem) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,\n // and in the order they are currently in the screen.\n HeaderGroupCellCtrl.prototype.getDragItemForGroup = function () {\n var allColumnsOriginalOrder = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n // capture visible state, used when re-entering grid to dictate which columns should be visible\n var visibleState = {};\n allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });\n var allColumnsCurrentOrder = [];\n this.columnModel.getAllDisplayedColumns().forEach(function (column) {\n if (allColumnsOriginalOrder.indexOf(column) >= 0) {\n allColumnsCurrentOrder.push(column);\n removeFromArray(allColumnsOriginalOrder, column);\n }\n });\n // we are left with non-visible columns, stick these in at the end\n allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });\n // create and return dragItem\n return {\n columns: allColumnsCurrentOrder,\n visibleState: visibleState\n };\n };\n HeaderGroupCellCtrl.prototype.isSuppressMoving = function () {\n // if any child is fixed, then don't allow moving\n var childSuppressesMoving = false;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {\n childSuppressesMoving = true;\n }\n });\n var result = childSuppressesMoving || this.gridOptionsWrapper.isSuppressMovableColumns();\n return result;\n };\n __decorate$1i([\n Autowired('columnModel')\n ], HeaderGroupCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1i([\n Autowired('dragAndDropService')\n ], HeaderGroupCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1i([\n Autowired('gridApi')\n ], HeaderGroupCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1i([\n Autowired('columnApi')\n ], HeaderGroupCellCtrl.prototype, \"columnApi\", void 0);\n return HeaderGroupCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence = 0;\nvar HeaderRowCtrl = /** @class */ (function (_super) {\n __extends$1o(HeaderRowCtrl, _super);\n function HeaderRowCtrl(rowIndex, pinned, type) {\n var _this = _super.call(this) || this;\n _this.instanceId = instanceIdSequence++;\n _this.headerCellCtrls = {};\n _this.rowIndex = rowIndex;\n _this.pinned = pinned;\n _this.type = type;\n return _this;\n }\n HeaderRowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n HeaderRowCtrl.prototype.setComp = function (comp) {\n this.comp = comp;\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.addEventListeners();\n if (isBrowserSafari()) {\n // fix for a Safari rendering bug that caused the header to flicker above chart panels\n // as you move the mouse over the header\n this.comp.setTransform('translateZ(0)');\n }\n comp.setAriaRowIndex(this.rowIndex + 1);\n };\n HeaderRowCtrl.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n // when print layout changes, it changes what columns are in what section\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, this.onRowHeightChanged.bind(this));\n };\n HeaderRowCtrl.prototype.getHeaderCellCtrl = function (column) {\n return values(this.headerCellCtrls).find(function (cellCtrl) { return cellCtrl.getColumnGroupChild() === column; });\n };\n HeaderRowCtrl.prototype.onDisplayedColumnsChanged = function () {\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.onRowHeightChanged();\n };\n HeaderRowCtrl.prototype.getType = function () {\n return this.type;\n };\n HeaderRowCtrl.prototype.onColumnResized = function () {\n this.setWidth();\n };\n HeaderRowCtrl.prototype.setWidth = function () {\n var width = this.getWidthForRow();\n this.comp.setWidth(width + \"px\");\n };\n HeaderRowCtrl.prototype.getWidthForRow = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (printLayout) {\n var pinned = this.pinned != null;\n if (pinned) {\n return 0;\n }\n return this.columnModel.getContainerWidth(Constants.PINNED_RIGHT)\n + this.columnModel.getContainerWidth(Constants.PINNED_LEFT)\n + this.columnModel.getContainerWidth(null);\n }\n // if not printing, just return the width as normal\n return this.columnModel.getContainerWidth(this.pinned);\n };\n HeaderRowCtrl.prototype.onRowHeightChanged = function () {\n var headerRowCount = this.columnModel.getHeaderRowCount();\n var sizes = [];\n var numberOfFloating = 0;\n if (this.columnModel.hasFloatingFilters()) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();\n var headerHeight = this.columnModel.getColumnHeaderRowHeight();\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n for (var i = 0; i < numberOfGroups; i++) {\n sizes.push(groupHeight);\n }\n sizes.push(headerHeight);\n for (var i = 0; i < numberOfFloating; i++) {\n sizes.push(this.gridOptionsWrapper.getFloatingFiltersHeight());\n }\n var topOffset = 0;\n for (var i = 0; i < this.rowIndex; i++) {\n topOffset += sizes[i];\n }\n var thisRowHeight = sizes[this.rowIndex] + 'px';\n this.comp.setTop(topOffset + 'px');\n this.comp.setHeight(thisRowHeight);\n };\n HeaderRowCtrl.prototype.getPinned = function () {\n return this.pinned;\n };\n HeaderRowCtrl.prototype.getRowIndex = function () {\n return this.rowIndex;\n };\n HeaderRowCtrl.prototype.onVirtualColumnsChanged = function () {\n var _this = this;\n var oldCtrls = this.headerCellCtrls;\n this.headerCellCtrls = {};\n var columns = this.getColumnsInViewport();\n columns.forEach(function (child) {\n // skip groups that have no displayed children. this can happen when the group is broken,\n // and this section happens to have nothing to display for the open / closed state.\n // (a broken group is one that is split, ie columns in the group have a non-group column\n // in between them)\n if (child.isEmptyGroup()) {\n return;\n }\n var idOfChild = child.getUniqueId();\n // if we already have this cell rendered, do nothing\n var headerCtrl = oldCtrls[idOfChild];\n delete oldCtrls[idOfChild];\n // it's possible there is a new Column with the same ID, but it's for a different Column.\n // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,\n // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are\n // about to replace it in the this.headerComps map.\n var forOldColumn = headerCtrl && headerCtrl.getColumnGroupChild() != child;\n if (forOldColumn) {\n _this.destroyBean(headerCtrl);\n headerCtrl = undefined;\n }\n if (headerCtrl == null) {\n switch (_this.type) {\n case HeaderRowType.FLOATING_FILTER:\n headerCtrl = _this.createBean(new HeaderFilterCellCtrl(child, _this));\n break;\n case HeaderRowType.COLUMN_GROUP:\n headerCtrl = _this.createBean(new HeaderGroupCellCtrl(child, _this));\n break;\n default:\n headerCtrl = _this.createBean(new HeaderCellCtrl(child, _this));\n break;\n }\n }\n _this.headerCellCtrls[idOfChild] = headerCtrl;\n });\n // we want to keep columns that are focused, otherwise keyboard navigation breaks\n var isFocusedAndDisplayed = function (ctrl) {\n var isFocused = _this.focusService.isHeaderWrapperFocused(ctrl);\n if (!isFocused) {\n return false;\n }\n var isDisplayed = _this.columnModel.isDisplayed(ctrl.getColumnGroupChild());\n return isDisplayed;\n };\n iterateObject(oldCtrls, function (id, oldCtrl) {\n var keepCtrl = isFocusedAndDisplayed(oldCtrl);\n if (keepCtrl) {\n _this.headerCellCtrls[id] = oldCtrl;\n }\n else {\n _this.destroyBean(oldCtrl);\n }\n });\n var ctrlsToDisplay = getAllValuesInObject(this.headerCellCtrls);\n this.comp.setHeaderCtrls(ctrlsToDisplay);\n };\n HeaderRowCtrl.prototype.destroyCtrls = function () {\n var _this = this;\n iterateObject(this.headerCellCtrls, function (key, ctrl) {\n _this.destroyBean(ctrl);\n });\n this.headerCellCtrls = {};\n };\n HeaderRowCtrl.prototype.getColumnsInViewport = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();\n };\n HeaderRowCtrl.prototype.getColumnsInViewportPrintLayout = function () {\n var _this = this;\n // for print layout, we add all columns into the center\n if (this.pinned != null) {\n return [];\n }\n var viewportColumns = [];\n var actualDepth = this.getActualDepth();\n [Constants.PINNED_LEFT, null, Constants.PINNED_RIGHT].forEach(function (pinned) {\n var items = _this.columnModel.getVirtualHeaderGroupRow(pinned, actualDepth);\n viewportColumns = viewportColumns.concat(items);\n });\n return viewportColumns;\n };\n HeaderRowCtrl.prototype.getActualDepth = function () {\n return this.type == HeaderRowType.FLOATING_FILTER ? this.rowIndex - 1 : this.rowIndex;\n };\n HeaderRowCtrl.prototype.getColumnsInViewportNormalLayout = function () {\n // when in normal layout, we add the columns for that container only\n return this.columnModel.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());\n };\n HeaderRowCtrl.prototype.focusHeader = function (column, event) {\n var allCtrls = getAllValuesInObject(this.headerCellCtrls);\n var ctrl = allCtrls.find(function (ctrl) { return ctrl.getColumnGroupChild() == column; });\n if (!ctrl) {\n return false;\n }\n ctrl.focus(event);\n return true;\n };\n __decorate$1h([\n Autowired('columnModel')\n ], HeaderRowCtrl.prototype, \"columnModel\", void 0);\n __decorate$1h([\n Autowired('focusService')\n ], HeaderRowCtrl.prototype, \"focusService\", void 0);\n __decorate$1h([\n PreDestroy\n ], HeaderRowCtrl.prototype, \"destroyCtrls\", null);\n return HeaderRowCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$a = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$c(arguments[i]));\n return ar;\n};\nvar HeaderRowContainerCtrl = /** @class */ (function (_super) {\n __extends$1n(HeaderRowContainerCtrl, _super);\n function HeaderRowContainerCtrl(pinned) {\n var _this = _super.call(this) || this;\n _this.groupsRowCtrls = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerCtrl.prototype.setComp = function (comp, eGui) {\n this.comp = comp;\n this.eViewport = eGui;\n this.setupCenterWidth();\n this.setupPinnedWidth();\n this.setupDragAndDrop(this.eViewport);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eViewport, 'scroll', this.resetScrollLeft.bind(this));\n this.ctrlsService.registerHeaderContainer(this, this.pinned);\n if (this.columnModel.isReady()) {\n this.refresh();\n }\n };\n HeaderRowContainerCtrl.prototype.setupDragAndDrop = function (dropContainer) {\n var bodyDropTarget = new BodyDropTarget(this.pinned, dropContainer);\n this.createManagedBean(bodyDropTarget);\n };\n HeaderRowContainerCtrl.prototype.refresh = function (keepColumns) {\n var _this = this;\n if (keepColumns === void 0) { keepColumns = false; }\n var sequence = new NumberSequence();\n var focusedHeaderPosition = this.focusService.getFocusHeaderToUseAfterRefresh();\n var refreshColumnGroups = function () {\n var groupRowCount = _this.columnModel.getHeaderRowCount() - 1;\n _this.groupsRowCtrls = _this.destroyBeans(_this.groupsRowCtrls);\n for (var i = 0; i < groupRowCount; i++) {\n var ctrl = _this.createBean(new HeaderRowCtrl(sequence.next(), _this.pinned, HeaderRowType.COLUMN_GROUP));\n _this.groupsRowCtrls.push(ctrl);\n }\n };\n var refreshColumns = function () {\n var rowIndex = sequence.next();\n var needNewInstance = _this.columnsRowCtrl == null || !keepColumns || _this.columnsRowCtrl.getRowIndex() !== rowIndex;\n if (needNewInstance) {\n _this.destroyBean(_this.columnsRowCtrl);\n _this.columnsRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, HeaderRowType.COLUMN));\n }\n };\n var refreshFilters = function () {\n var includeFloatingFilter = _this.columnModel.hasFloatingFilters();\n var destroyPreviousComp = function () {\n _this.filtersRowCtrl = _this.destroyBean(_this.filtersRowCtrl);\n };\n if (!includeFloatingFilter) {\n destroyPreviousComp();\n return;\n }\n var rowIndex = sequence.next();\n if (_this.filtersRowCtrl) {\n var rowIndexMismatch = _this.filtersRowCtrl.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n destroyPreviousComp();\n }\n }\n if (!_this.filtersRowCtrl) {\n _this.filtersRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, HeaderRowType.FLOATING_FILTER));\n }\n };\n refreshColumnGroups();\n refreshColumns();\n refreshFilters();\n var allCtrls = this.getAllCtrls();\n this.comp.setCtrls(allCtrls);\n this.restoreFocusOnHeader(focusedHeaderPosition);\n };\n HeaderRowContainerCtrl.prototype.restoreFocusOnHeader = function (position) {\n if (position == null || position.column.getPinned() != this.pinned) {\n return;\n }\n this.focusService.focusHeaderPosition({ headerPosition: position });\n };\n HeaderRowContainerCtrl.prototype.getAllCtrls = function () {\n var res = __spread$a(this.groupsRowCtrls, [this.columnsRowCtrl]);\n if (this.filtersRowCtrl) {\n res.push(this.filtersRowCtrl);\n }\n return res;\n };\n // grid cols have changed - this also means the number of rows in the header can have\n // changed. so we remove all the old rows and insert new ones for a complete refresh\n HeaderRowContainerCtrl.prototype.onGridColumnsChanged = function () {\n this.refresh(true);\n };\n HeaderRowContainerCtrl.prototype.setupCenterWidth = function () {\n var _this = this;\n if (this.pinned != null) {\n return;\n }\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setCenterWidth(width + \"px\"); }));\n };\n HeaderRowContainerCtrl.prototype.setHorizontalScroll = function (offset) {\n this.comp.setContainerTransform(\"translateX(\" + offset + \"px)\");\n };\n HeaderRowContainerCtrl.prototype.resetScrollLeft = function () {\n this.eViewport.scrollLeft = 0;\n };\n HeaderRowContainerCtrl.prototype.setupPinnedWidth = function () {\n var _this = this;\n if (this.pinned == null) {\n return;\n }\n var pinningLeft = this.pinned === Constants.PINNED_LEFT;\n var pinningRight = this.pinned === Constants.PINNED_RIGHT;\n var listener = function () {\n var width = pinningLeft ? _this.pinnedWidthService.getPinnedLeftWidth() : _this.pinnedWidthService.getPinnedRightWidth();\n if (width == null) {\n return;\n } // can happen at initialisation, width not yet set\n var hidden = width == 0;\n var isRtl = _this.gridOptionsWrapper.isEnableRtl();\n var scrollbarWidth = _this.gridOptionsWrapper.getScrollbarWidth();\n // if there is a scroll showing (and taking up space, so Windows, and not iOS)\n // in the body, then we add extra space to keep header aligned with the body,\n // as body width fits the cols and the scrollbar\n var addPaddingForScrollbar = _this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));\n var widthWithPadding = addPaddingForScrollbar ? width + scrollbarWidth : width;\n _this.comp.setPinnedContainerWidth(widthWithPadding + 'px');\n _this.comp.addOrRemoveCssClass('ag-hidden', hidden);\n };\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n };\n HeaderRowContainerCtrl.prototype.getHeaderCtrlForColumn = function (column) {\n if (column instanceof Column) {\n if (!this.columnsRowCtrl) {\n return;\n }\n return this.columnsRowCtrl.getHeaderCellCtrl(column);\n }\n if (this.groupsRowCtrls.length === 0) {\n return;\n }\n for (var i = 0; i < this.groupsRowCtrls.length; i++) {\n var ctrl = this.groupsRowCtrls[i].getHeaderCellCtrl(column);\n if (ctrl) {\n return ctrl;\n }\n }\n };\n HeaderRowContainerCtrl.prototype.getHtmlElementForColumnHeader = function (column) {\n /* tslint:enable */\n var cellCtrl = this.getHeaderCtrlForColumn(column);\n if (!cellCtrl) {\n return null;\n }\n return cellCtrl.getGui();\n };\n HeaderRowContainerCtrl.prototype.getRowType = function (rowIndex) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n return ctrl ? ctrl.getType() : undefined;\n };\n HeaderRowContainerCtrl.prototype.focusHeader = function (rowIndex, column, event) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n if (!ctrl) {\n return false;\n }\n return ctrl.focusHeader(column, event);\n };\n HeaderRowContainerCtrl.prototype.getRowCount = function () {\n return this.getAllCtrls().length;\n };\n __decorate$1g([\n Autowired('ctrlsService')\n ], HeaderRowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1g([\n Autowired('scrollVisibleService')\n ], HeaderRowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1g([\n Autowired('pinnedWidthService')\n ], HeaderRowContainerCtrl.prototype, \"pinnedWidthService\", void 0);\n __decorate$1g([\n Autowired('columnModel')\n ], HeaderRowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1g([\n Autowired('focusService')\n ], HeaderRowContainerCtrl.prototype, \"focusService\", void 0);\n return HeaderRowContainerCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderRowContainerComp = /** @class */ (function (_super) {\n __extends$1m(HeaderRowContainerComp, _super);\n function HeaderRowContainerComp(pinned) {\n var _this = _super.call(this) || this;\n _this.headerRowComps = {};\n _this.rowCompsList = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerComp.prototype.init = function () {\n var _this = this;\n this.selectAndSetTemplate();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setCtrls: function (ctrls) { return _this.setCtrls(ctrls); },\n // only gets called for center section\n setCenterWidth: function (width) { return _this.eCenterContainer.style.width = width; },\n setContainerTransform: function (transform) { return _this.eCenterContainer.style.transform = transform; },\n // only gets called for pinned sections\n setPinnedContainerWidth: function (width) {\n var eGui = _this.getGui();\n eGui.style.width = width;\n eGui.style.maxWidth = width;\n eGui.style.minWidth = width;\n }\n };\n var ctrl = this.createManagedBean(new HeaderRowContainerCtrl(this.pinned));\n ctrl.setComp(compProxy, this.getGui());\n };\n HeaderRowContainerComp.prototype.selectAndSetTemplate = function () {\n var pinnedLeft = this.pinned == Constants.PINNED_LEFT;\n var pinnedRight = this.pinned == Constants.PINNED_RIGHT;\n var template = pinnedLeft ? HeaderRowContainerComp.PINNED_LEFT_TEMPLATE :\n pinnedRight ? HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE : HeaderRowContainerComp.CENTER_TEMPLATE;\n this.setTemplate(template);\n // for left and right, we add rows directly to the root element,\n // but for center container we add elements to the child container.\n this.eRowContainer = this.eCenterContainer ? this.eCenterContainer : this.getGui();\n };\n HeaderRowContainerComp.prototype.destroyRowComps = function () {\n this.setCtrls([]);\n };\n HeaderRowContainerComp.prototype.destroyRowComp = function (rowComp) {\n this.destroyBean(rowComp);\n this.eRowContainer.removeChild(rowComp.getGui());\n };\n HeaderRowContainerComp.prototype.setCtrls = function (ctrls) {\n var _this = this;\n var oldRowComps = this.headerRowComps;\n this.headerRowComps = {};\n this.rowCompsList = [];\n var prevGui;\n var appendEnsuringDomOrder = function (rowComp) {\n var eGui = rowComp.getGui();\n var notAlreadyIn = eGui.parentElement != _this.eRowContainer;\n if (notAlreadyIn) {\n _this.eRowContainer.appendChild(eGui);\n }\n if (prevGui) {\n ensureDomOrder(_this.eRowContainer, eGui, prevGui);\n }\n prevGui = eGui;\n };\n ctrls.forEach(function (ctrl) {\n var ctrlId = ctrl.getInstanceId();\n var existingComp = oldRowComps[ctrlId];\n delete oldRowComps[ctrlId];\n var rowComp = existingComp ? existingComp : _this.createBean(new HeaderRowComp(ctrl));\n _this.headerRowComps[ctrlId] = rowComp;\n _this.rowCompsList.push(rowComp);\n appendEnsuringDomOrder(rowComp);\n });\n getAllValuesInObject(oldRowComps).forEach(function (c) { return _this.destroyRowComp(c); });\n };\n HeaderRowContainerComp.PINNED_LEFT_TEMPLATE = \"
\";\n HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE = \"
\";\n HeaderRowContainerComp.CENTER_TEMPLATE = \"
\\n
\\n
\";\n __decorate$1f([\n RefSelector('eCenterContainer')\n ], HeaderRowContainerComp.prototype, \"eCenterContainer\", void 0);\n __decorate$1f([\n PostConstruct\n ], HeaderRowContainerComp.prototype, \"init\", null);\n __decorate$1f([\n PreDestroy\n ], HeaderRowContainerComp.prototype, \"destroyRowComps\", null);\n return HeaderRowContainerComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderNavigationDirection;\n(function (HeaderNavigationDirection) {\n HeaderNavigationDirection[HeaderNavigationDirection[\"UP\"] = 0] = \"UP\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"LEFT\"] = 2] = \"LEFT\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"RIGHT\"] = 3] = \"RIGHT\";\n})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));\nvar HeaderNavigationService = /** @class */ (function (_super) {\n __extends$1l(HeaderNavigationService, _super);\n function HeaderNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderNavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n HeaderNavigationService.prototype.getHeaderRowCount = function () {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n return centerHeaderContainer ? centerHeaderContainer.getRowCount() : 0;\n };\n HeaderNavigationService.prototype.getHeaderRowType = function (rowIndex) {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n if (centerHeaderContainer) {\n return centerHeaderContainer.getRowType(rowIndex);\n }\n };\n /*\n * This method navigates grid header vertically\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {\n if (!fromHeader) {\n fromHeader = this.focusService.getFocusedHeader();\n }\n if (!fromHeader) {\n return false;\n }\n var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;\n var rowLen = this.getHeaderRowCount();\n var isUp = direction === HeaderNavigationDirection.UP;\n var nextRow = isUp ? headerRowIndex - 1 : headerRowIndex + 1;\n var nextFocusColumn = null;\n var skipColumn = false;\n if (nextRow < 0) {\n nextRow = 0;\n nextFocusColumn = column;\n skipColumn = true;\n }\n if (nextRow >= rowLen) {\n nextRow = -1; // -1 indicates the focus should move to grid rows.\n }\n var currentRowType = this.getHeaderRowType(headerRowIndex);\n if (!skipColumn) {\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var currentColumn = column;\n nextFocusColumn = isUp ? column.getParent() : currentColumn.getDisplayedChildren()[0];\n }\n else if (currentRowType === HeaderRowType.FLOATING_FILTER) {\n nextFocusColumn = column;\n }\n else {\n var currentColumn = column;\n nextFocusColumn = isUp ? currentColumn.getParent() : currentColumn;\n }\n if (!nextFocusColumn) {\n return false;\n }\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: nextRow, column: nextFocusColumn },\n allowUserOverride: true,\n event: event\n });\n };\n /*\n * This method navigates grid header horizontally\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {\n if (fromTab === void 0) { fromTab = false; }\n var focusedHeader = this.focusService.getFocusedHeader();\n var isLeft = direction === HeaderNavigationDirection.LEFT;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var nextHeader;\n var normalisedDirection;\n // either navigating to the left or isRtl (cannot be both)\n if (isLeft !== isRtl) {\n normalisedDirection = 'Before';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n else {\n normalisedDirection = 'After';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n if (nextHeader || !fromTab) {\n return this.focusService.focusHeaderPosition({\n headerPosition: nextHeader,\n direction: normalisedDirection,\n fromTab: fromTab,\n allowUserOverride: true,\n event: event\n });\n }\n return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);\n };\n HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {\n var currentIndex = focusedHeader.headerRowIndex;\n var nextPosition = null;\n var nextRowIndex;\n if (direction === 'Before') {\n if (currentIndex > 0) {\n nextRowIndex = currentIndex - 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');\n }\n }\n else {\n nextRowIndex = currentIndex + 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: nextPosition,\n direction: direction,\n fromTab: true,\n allowUserOverride: true,\n event: event\n });\n };\n HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {\n if (direction === void 0) { direction = 'After'; }\n if (column.getPinned()) {\n return;\n }\n var columnToScrollTo;\n if (column instanceof ColumnGroup) {\n var columns = column.getDisplayedLeafColumns();\n columnToScrollTo = direction === 'Before' ? last(columns) : columns[0];\n }\n else {\n columnToScrollTo = column;\n }\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);\n };\n __decorate$1e([\n Autowired('focusService')\n ], HeaderNavigationService.prototype, \"focusService\", void 0);\n __decorate$1e([\n Autowired('headerPositionUtils')\n ], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n __decorate$1e([\n Autowired('animationFrameService')\n ], HeaderNavigationService.prototype, \"animationFrameService\", void 0);\n __decorate$1e([\n Autowired('ctrlsService')\n ], HeaderNavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1e([\n PostConstruct\n ], HeaderNavigationService.prototype, \"postConstruct\", null);\n HeaderNavigationService = __decorate$1e([\n Bean('headerNavigationService')\n ], HeaderNavigationService);\n return HeaderNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderCtrl = /** @class */ (function (_super) {\n __extends$1k(GridHeaderCtrl, _super);\n function GridHeaderCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridHeaderCtrl.prototype.setComp = function (comp, eGui, eFocusableElement) {\n this.comp = comp;\n this.eGui = eGui;\n this.createManagedBean(new ManagedFocusFeature(eFocusableElement, {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n // for setting ag-pivot-on / ag-pivot-off CSS classes\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n this.onPivotModeChanged();\n this.setupHeaderHeight();\n this.ctrlsService.registerGridHeaderCtrl(this);\n };\n GridHeaderCtrl.prototype.setupHeaderHeight = function () {\n var listener = this.setHeaderHeight.bind(this);\n listener();\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, listener);\n };\n GridHeaderCtrl.prototype.getHeaderHeight = function () {\n return this.headerHeight;\n };\n GridHeaderCtrl.prototype.setHeaderHeight = function () {\n var _a = this, columnModel = _a.columnModel, gridOptionsWrapper = _a.gridOptionsWrapper;\n var numberOfFloating = 0;\n var headerRowCount = columnModel.getHeaderRowCount();\n var totalHeaderHeight;\n var hasFloatingFilters = columnModel.hasFloatingFilters();\n if (hasFloatingFilters) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();\n var headerHeight = this.columnModel.getColumnHeaderRowHeight();\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n if (this.headerHeight === totalHeaderHeight) {\n return;\n }\n this.headerHeight = totalHeaderHeight;\n // one extra pixel is needed here to account for the\n // height of the border\n var px = totalHeaderHeight + 1 + \"px\";\n this.comp.setHeightAndMinHeight(px);\n this.eventService.dispatchEvent({\n type: Events.EVENT_HEADER_HEIGHT_CHANGED\n });\n };\n GridHeaderCtrl.prototype.onPivotModeChanged = function () {\n var pivotMode = this.columnModel.isPivotMode();\n this.comp.addOrRemoveCssClass('ag-pivot-on', pivotMode);\n this.comp.addOrRemoveCssClass('ag-pivot-off', !pivotMode);\n };\n GridHeaderCtrl.prototype.onTabKeyDown = function (e) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var direction = e.shiftKey !== isRtl\n ? HeaderNavigationDirection.LEFT\n : HeaderNavigationDirection.RIGHT;\n if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||\n this.focusService.focusNextGridCoreContainer(e.shiftKey)) {\n e.preventDefault();\n }\n };\n GridHeaderCtrl.prototype.handleKeyDown = function (e) {\n var direction = null;\n switch (e.key) {\n case KeyCode.LEFT:\n direction = HeaderNavigationDirection.LEFT;\n case KeyCode.RIGHT:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.RIGHT;\n }\n this.headerNavigationService.navigateHorizontally(direction, false, e);\n break;\n case KeyCode.UP:\n direction = HeaderNavigationDirection.UP;\n case KeyCode.DOWN:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.DOWN;\n }\n if (this.headerNavigationService.navigateVertically(direction, null, e)) {\n e.preventDefault();\n }\n break;\n default:\n return;\n }\n };\n GridHeaderCtrl.prototype.onFocusOut = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var relatedTarget = e.relatedTarget;\n if (!relatedTarget && this.eGui.contains(eDocument.activeElement)) {\n return;\n }\n if (!this.eGui.contains(relatedTarget)) {\n this.focusService.clearFocusedHeader();\n }\n };\n __decorate$1d([\n Autowired('headerNavigationService')\n ], GridHeaderCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1d([\n Autowired('focusService')\n ], GridHeaderCtrl.prototype, \"focusService\", void 0);\n __decorate$1d([\n Autowired('columnModel')\n ], GridHeaderCtrl.prototype, \"columnModel\", void 0);\n __decorate$1d([\n Autowired('ctrlsService')\n ], GridHeaderCtrl.prototype, \"ctrlsService\", void 0);\n return GridHeaderCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderComp = /** @class */ (function (_super) {\n __extends$1j(GridHeaderComp, _super);\n function GridHeaderComp() {\n return _super.call(this, GridHeaderComp.TEMPLATE) || this;\n }\n GridHeaderComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setHeightAndMinHeight: function (height) {\n _this.getGui().style.height = height;\n _this.getGui().style.minHeight = height;\n }\n };\n var ctrl = this.createManagedBean(new GridHeaderCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.getFocusableElement());\n var addContainer = function (container) {\n _this.createManagedBean(container);\n _this.appendChild(container);\n };\n addContainer(new HeaderRowContainerComp(Constants.PINNED_LEFT));\n addContainer(new HeaderRowContainerComp(null));\n addContainer(new HeaderRowContainerComp(Constants.PINNED_RIGHT));\n };\n GridHeaderComp.TEMPLATE = \"
\";\n __decorate$1c([\n PostConstruct\n ], GridHeaderComp.prototype, \"postConstruct\", null);\n return GridHeaderComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeService = /** @class */ (function (_super) {\n __extends$1i(HorizontalResizeService, _super);\n function HorizontalResizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalResizeService.prototype.addResizeBar = function (params) {\n var _this = this;\n var dragSource = {\n dragStartPixels: params.dragStartPixels || 0,\n eElement: params.eResizeBar,\n onDragStart: this.onDragStart.bind(this, params),\n onDragStop: this.onDragStop.bind(this, params),\n onDragging: this.onDragging.bind(this, params)\n };\n this.dragService.addDragSource(dragSource, true);\n // we pass remove func back to the caller, so call can tell us when they\n // are finished, and then we remove the listener from the drag source\n var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };\n return finishedWithResizeFunc;\n };\n HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {\n this.dragStartX = mouseEvent.clientX;\n this.setResizeIcons();\n var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;\n params.onResizeStart(shiftKey);\n };\n HorizontalResizeService.prototype.setResizeIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'\n ctrl.setResizeCursor(true);\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n ctrl.disableUserSelect(true);\n };\n HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {\n params.onResizeEnd(this.resizeAmount);\n this.resetIcons();\n };\n HorizontalResizeService.prototype.resetIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n ctrl.setResizeCursor(false);\n ctrl.disableUserSelect(false);\n };\n HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {\n this.resizeAmount = mouseEvent.clientX - this.dragStartX;\n params.onResizing(this.resizeAmount);\n };\n __decorate$1b([\n Autowired('dragService')\n ], HorizontalResizeService.prototype, \"dragService\", void 0);\n __decorate$1b([\n Autowired('ctrlsService')\n ], HorizontalResizeService.prototype, \"ctrlsService\", void 0);\n HorizontalResizeService = __decorate$1b([\n Bean('horizontalResizeService')\n ], HorizontalResizeService);\n return HorizontalResizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StandardMenuFactory = /** @class */ (function (_super) {\n __extends$1h(StandardMenuFactory, _super);\n function StandardMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StandardMenuFactory.prototype.hideActiveMenu = function () {\n if (this.hidePopup) {\n this.hidePopup();\n }\n };\n StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderMouseEvent({\n column: column,\n type: 'columnMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenu\n });\n }, mouseEvent.target);\n };\n StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderComponent({\n type: containerType,\n eventSource: eventSource,\n ePopup: eMenu,\n keepWithinBounds: true,\n column: column\n });\n }, eventSource);\n };\n StandardMenuFactory.prototype.showPopup = function (column, positionCallback, eventSource) {\n var _this = this;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - unable to show popup filter, filter instantiation failed');\n }\n var eMenu = document.createElement('div');\n setAriaRole(eMenu, 'presentation');\n eMenu.classList.add('ag-menu');\n this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });\n filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });\n var hidePopup;\n var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();\n var closedCallback = function (e) {\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (_this.tabListener) {\n _this.tabListener = _this.tabListener();\n }\n if (isKeyboardEvent && eventSource && isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenu,\n closeOnEsc: true,\n closedCallback: closedCallback,\n positionCallback: function () { return positionCallback(eMenu); },\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (addPopupRes) {\n this.hidePopup = hidePopup = addPopupRes.hideFunc;\n }\n filterWrapper.filterPromise.then(function (filter) {\n // need to make sure the filter is present before positioning, as only\n // after filter it is visible can we find out what the width of it is\n positionCallback(eMenu);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'columnMenu', hidePopup: hidePopup });\n }\n });\n column.setMenuVisible(true, 'contextMenu');\n };\n StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {\n if (e.key !== KeyCode.TAB ||\n e.defaultPrevented ||\n this.focusService.findNextFocusableElement(menu, false, e.shiftKey)) {\n return;\n }\n e.preventDefault();\n this.focusService.focusInto(menu, e.shiftKey);\n };\n StandardMenuFactory.prototype.isMenuEnabled = function (column) {\n // for standard, we show menu if filter is enabled, and the menu is not suppressed\n return column.isFilterAllowed();\n };\n __decorate$1a([\n Autowired('filterManager')\n ], StandardMenuFactory.prototype, \"filterManager\", void 0);\n __decorate$1a([\n Autowired('popupService')\n ], StandardMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1a([\n Autowired('focusService')\n ], StandardMenuFactory.prototype, \"focusService\", void 0);\n __decorate$1a([\n Autowired('ctrlsService')\n ], StandardMenuFactory.prototype, \"ctrlsService\", void 0);\n StandardMenuFactory = __decorate$1a([\n Bean('menuFactory')\n ], StandardMenuFactory);\n return StandardMenuFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedLayout = /** @class */ (function (_super) {\n __extends$1g(TabbedLayout, _super);\n function TabbedLayout(params) {\n var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;\n _this.items = [];\n _this.tabbedItemScrollMap = new Map();\n _this.params = params;\n if (params.items) {\n params.items.forEach(function (item) { return _this.addItem(item); });\n }\n return _this;\n }\n TabbedLayout.prototype.postConstruct = function () {\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n TabbedLayout.getTemplate = function (cssClass) {\n return /* html */ \"
\\n
\\n
\\n
\";\n };\n TabbedLayout.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n switch (e.key) {\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n if (!this.eHeader.contains(eDocument.activeElement)) {\n return;\n }\n var isRightKey = e.key === KeyCode.RIGHT;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var currentPosition = this.items.indexOf(this.activeItem);\n var nextPosition = isRightKey !== isRtl ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);\n if (currentPosition === nextPosition) {\n return;\n }\n e.preventDefault();\n var nextItem = this.items[nextPosition];\n this.showItemWrapper(nextItem);\n nextItem.eHeaderButton.focus();\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n e.stopPropagation();\n break;\n }\n };\n TabbedLayout.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n e.preventDefault();\n if (eHeader.contains(activeElement)) {\n // focus is in header, move into body of popup\n focusService.focusInto(eBody, e.shiftKey);\n }\n else {\n // focus is in body, establish if it should return to header\n if (focusService.isFocusUnderManagedComponent(eBody)) {\n // focus was in a managed focus component and has now left, so we can return to the header\n activeItem.eHeaderButton.focus();\n }\n else {\n var nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);\n if (nextEl) {\n // if another element exists in the body that can be focussed, go to that\n nextEl.focus();\n }\n else {\n // otherwise return to the header\n activeItem.eHeaderButton.focus();\n }\n }\n }\n };\n TabbedLayout.prototype.setAfterAttachedParams = function (params) {\n this.afterAttachedParams = params;\n };\n TabbedLayout.prototype.showFirstItem = function () {\n if (this.items.length > 0) {\n this.showItemWrapper(this.items[0]);\n }\n };\n TabbedLayout.prototype.addItem = function (item) {\n var eHeaderButton = document.createElement('span');\n setAriaRole(eHeaderButton, 'tab');\n eHeaderButton.setAttribute('tabIndex', '-1');\n eHeaderButton.appendChild(item.title);\n eHeaderButton.classList.add('ag-tab');\n this.eHeader.appendChild(eHeaderButton);\n setAriaLabel(eHeaderButton, item.titleLabel);\n var wrapper = {\n tabbedItem: item,\n eHeaderButton: eHeaderButton\n };\n this.items.push(wrapper);\n eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));\n };\n TabbedLayout.prototype.showItem = function (tabbedItem) {\n var itemWrapper = this.items.find(function (wrapper) { return wrapper.tabbedItem === tabbedItem; });\n if (itemWrapper) {\n this.showItemWrapper(itemWrapper);\n }\n };\n TabbedLayout.prototype.showItemWrapper = function (wrapper) {\n var _this = this;\n var tabbedItem = wrapper.tabbedItem, eHeaderButton = wrapper.eHeaderButton;\n if (this.params.onItemClicked) {\n this.params.onItemClicked({ item: tabbedItem });\n }\n if (this.activeItem === wrapper) {\n callIfPresent(this.params.onActiveItemClicked);\n return;\n }\n if (this.lastScrollListener) {\n this.lastScrollListener = this.lastScrollListener();\n }\n clearElement(this.eBody);\n tabbedItem.bodyPromise.then(function (body) {\n _this.eBody.appendChild(body);\n var onlyUnmanaged = !_this.focusService.isKeyboardMode();\n _this.focusService.focusInto(_this.eBody, false, onlyUnmanaged);\n if (tabbedItem.afterAttachedCallback) {\n tabbedItem.afterAttachedCallback(_this.afterAttachedParams);\n }\n if (_this.params.keepScrollPosition) {\n var scrollableContainer_1 = (tabbedItem.getScrollableContainer && tabbedItem.getScrollableContainer()) || body;\n _this.lastScrollListener = _this.addManagedListener(scrollableContainer_1, 'scroll', function () {\n _this.tabbedItemScrollMap.set(tabbedItem.name, scrollableContainer_1.scrollTop);\n });\n var scrollPosition_1 = _this.tabbedItemScrollMap.get(tabbedItem.name);\n if (scrollPosition_1 !== undefined) {\n // Safari needs a small timeout or it will fire a scroll event to position 0\n setTimeout(function () {\n scrollableContainer_1.scrollTop = scrollPosition_1;\n }, 0);\n }\n }\n });\n if (this.activeItem) {\n this.activeItem.eHeaderButton.classList.remove('ag-tab-selected');\n }\n eHeaderButton.classList.add('ag-tab-selected');\n this.activeItem = wrapper;\n };\n __decorate$19([\n Autowired('focusService')\n ], TabbedLayout.prototype, \"focusService\", void 0);\n __decorate$19([\n RefSelector('eHeader')\n ], TabbedLayout.prototype, \"eHeader\", void 0);\n __decorate$19([\n RefSelector('eBody')\n ], TabbedLayout.prototype, \"eBody\", void 0);\n __decorate$19([\n PostConstruct\n ], TabbedLayout.prototype, \"postConstruct\", null);\n return TabbedLayout;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * @deprecated\n */\nfunction simpleHttpRequest(params) {\n return new AgPromise(function (resolve) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', params.url);\n httpRequest.send();\n httpRequest.onreadystatechange = function () {\n if (httpRequest.readyState === 4 && httpRequest.status === 200) {\n resolve(JSON.parse(httpRequest.responseText));\n }\n };\n });\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEBOUNCE_DELAY = 50;\nvar ResizeObserverService = /** @class */ (function (_super) {\n __extends$1f(ResizeObserverService, _super);\n function ResizeObserverService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.polyfillFunctions = [];\n return _this;\n }\n ResizeObserverService.prototype.observeResize = function (element, callback) {\n var _this = this;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n // this gets fired too often and might cause some relayout issues\n // so we add a debounce to the callback here to avoid the flashing effect.\n var debouncedCallback = debounce(callback, DEBOUNCE_DELAY);\n var useBrowserResizeObserver = function () {\n var resizeObserver = new win.ResizeObserver(debouncedCallback);\n resizeObserver.observe(element);\n return function () { return resizeObserver.disconnect(); };\n };\n var usePolyfill = function () {\n // initialise to the current width and height, so first call will have no changes\n var widthLastTime = offsetWidth(element);\n var heightLastTime = offsetHeight(element);\n // when finished, this gets turned to false.\n var running = true;\n var periodicallyCheckWidthAndHeight = function () {\n if (running) {\n var newWidth = offsetWidth(element);\n var newHeight = offsetHeight(element);\n var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;\n if (changed) {\n widthLastTime = newWidth;\n heightLastTime = newHeight;\n callback();\n }\n _this.doNextPolyfillTurn(periodicallyCheckWidthAndHeight);\n }\n };\n periodicallyCheckWidthAndHeight();\n // the callback function we return sets running to false\n return function () { return running = false; };\n };\n var suppressResize = this.gridOptionsWrapper.isSuppressBrowserResizeObserver();\n var resizeObserverExists = !!win.ResizeObserver;\n if (resizeObserverExists && !suppressResize) {\n return useBrowserResizeObserver();\n }\n return usePolyfill();\n };\n ResizeObserverService.prototype.doNextPolyfillTurn = function (func) {\n this.polyfillFunctions.push(func);\n this.schedulePolyfill();\n };\n ResizeObserverService.prototype.schedulePolyfill = function () {\n var _this = this;\n if (this.polyfillScheduled) {\n return;\n }\n var executeAllFuncs = function () {\n var funcs = _this.polyfillFunctions;\n // make sure set scheduled to false and clear clear array\n // before executing the funcs, as the funcs could add more funcs\n _this.polyfillScheduled = false;\n _this.polyfillFunctions = [];\n funcs.forEach(function (f) { return f(); });\n };\n this.polyfillScheduled = true;\n this.getFrameworkOverrides().setTimeout(executeAllFuncs, DEBOUNCE_DELAY);\n };\n ResizeObserverService = __decorate$18([\n Bean('resizeObserverService')\n ], ResizeObserverService);\n return ResizeObserverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimationFrameService = /** @class */ (function (_super) {\n __extends$1e(AnimationFrameService, _super);\n function AnimationFrameService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // p1 and p2 are create tasks are to do with row and cell creation.\n // for them we want to execute according to row order, so we use\n // TaskItem so we know what index the item is for.\n _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows\n _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality\n // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new\n // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as\n // important.\n _this.destroyTasks = [];\n _this.ticking = false;\n // we need to know direction of scroll, to build up rows in the direction of\n // the scroll. eg if user scrolls down, we extend the rows by building down.\n _this.scrollGoingDown = true;\n _this.lastScrollTop = 0;\n _this.taskCount = 0;\n _this.cancelledTasks = new Set();\n return _this;\n }\n AnimationFrameService.prototype.setScrollTop = function (scrollTop) {\n this.scrollGoingDown = scrollTop > this.lastScrollTop;\n this.lastScrollTop = scrollTop;\n };\n AnimationFrameService.prototype.init = function () {\n this.useAnimationFrame = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n };\n AnimationFrameService.prototype.isOn = function () {\n return this.useAnimationFrame;\n };\n // this method is for our AG Grid sanity only - if animation frames are turned off,\n // then no place in the code should be looking to add any work to be done in animation\n // frames. this stops bugs - where some code is asking for a frame to be executed\n // when it should not.\n AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {\n if (this.useAnimationFrame === false) {\n console.warn(\"AG Grid: AnimationFrameService.\" + methodName + \" called but animation frames are off\");\n }\n };\n AnimationFrameService.prototype.createTask = function (task, index, list) {\n this.verifyAnimationFrameOn(list);\n var taskItem = { task: task, index: index, createOrder: ++this.taskCount };\n this.addTaskToList(this[list], taskItem);\n this.schedule();\n };\n AnimationFrameService.prototype.cancelTask = function (task) {\n this.cancelledTasks.add(task);\n };\n AnimationFrameService.prototype.addTaskToList = function (taskList, task) {\n taskList.list.push(task);\n taskList.sorted = false;\n };\n AnimationFrameService.prototype.sortTaskList = function (taskList) {\n if (taskList.sorted) {\n return;\n }\n var sortDirection = this.scrollGoingDown ? 1 : -1;\n // sort first by row index (taking into account scroll direction), then by\n // order of task creation (always ascending, so cells will render left-to-right)\n taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });\n taskList.sorted = true;\n };\n AnimationFrameService.prototype.addDestroyTask = function (task) {\n this.verifyAnimationFrameOn('createTasksP3');\n this.destroyTasks.push(task);\n this.schedule();\n };\n AnimationFrameService.prototype.executeFrame = function (millis) {\n this.verifyAnimationFrameOn('executeFrame');\n var p1TaskList = this.createTasksP1;\n var p1Tasks = p1TaskList.list;\n var p2TaskList = this.createTasksP2;\n var p2Tasks = p2TaskList.list;\n var destroyTasks = this.destroyTasks;\n var frameStart = new Date().getTime();\n var duration = (new Date().getTime()) - frameStart;\n // 16ms is 60 fps\n var noMaxMillis = millis <= 0;\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n while (noMaxMillis || duration < millis) {\n var gridBodyDidSomething = gridBodyCon.getScrollFeature().executeAnimationFrameScroll();\n if (!gridBodyDidSomething) {\n var task = void 0;\n if (p1Tasks.length) {\n this.sortTaskList(p1TaskList);\n task = p1Tasks.pop().task;\n }\n else if (p2Tasks.length) {\n this.sortTaskList(p2TaskList);\n task = p2Tasks.pop().task;\n }\n else if (destroyTasks.length) {\n task = destroyTasks.pop();\n }\n else {\n this.cancelledTasks.clear();\n break;\n }\n if (!this.cancelledTasks.has(task)) {\n task();\n }\n }\n duration = (new Date().getTime()) - frameStart;\n }\n if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {\n this.requestFrame();\n }\n else {\n this.stopTicking();\n }\n };\n AnimationFrameService.prototype.stopTicking = function () {\n this.ticking = false;\n };\n AnimationFrameService.prototype.flushAllFrames = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n this.executeFrame(-1);\n };\n AnimationFrameService.prototype.schedule = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n if (!this.ticking) {\n this.ticking = true;\n this.requestFrame();\n }\n };\n AnimationFrameService.prototype.requestFrame = function () {\n // check for the existence of requestAnimationFrame, and if\n // it's missing, then we polyfill it with setTimeout()\n var callback = this.executeFrame.bind(this, 60);\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(callback);\n }\n else if (win.webkitRequestAnimationFrame) {\n win.webkitRequestAnimationFrame(callback);\n }\n else {\n win.setTimeout(callback, 0);\n }\n };\n AnimationFrameService.prototype.isQueueEmpty = function () {\n return !this.ticking;\n };\n // a debounce utility used for parts of the app involved with rendering.\n // the advantage over normal debounce is the client can call flushAllFrames()\n // to make sure all rendering is complete. we don't wait any milliseconds,\n // as this is intended to batch calls in one VM turn.\n AnimationFrameService.prototype.debounce = function (func) {\n var _this = this;\n var pending = false;\n return function () {\n if (!_this.isOn()) {\n _this.getFrameworkOverrides().setTimeout(func, 0);\n return;\n }\n if (pending) {\n return;\n }\n pending = true;\n _this.addDestroyTask(function () {\n pending = false;\n func();\n });\n };\n };\n __decorate$17([\n Autowired('ctrlsService')\n ], AnimationFrameService.prototype, \"ctrlsService\", void 0);\n __decorate$17([\n PostConstruct\n ], AnimationFrameService.prototype, \"init\", null);\n AnimationFrameService = __decorate$17([\n Bean('animationFrameService')\n ], AnimationFrameService);\n return AnimationFrameService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RESIZE_CONTAINER_STYLE = 'ag-resizer-wrapper';\nvar RESIZE_TEMPLATE = /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar PositionableFeature = /** @class */ (function (_super) {\n __extends$1d(PositionableFeature, _super);\n function PositionableFeature(element, config) {\n var _this = _super.call(this) || this;\n _this.element = element;\n _this.dragStartPosition = {\n x: 0,\n y: 0\n };\n _this.position = {\n x: 0,\n y: 0\n };\n _this.lastSize = {\n width: -1,\n height: -1\n };\n _this.positioned = false;\n _this.resizersAdded = false;\n _this.resizeListeners = [];\n _this.boundaryEl = null;\n _this.isResizing = false;\n _this.isMoving = false;\n _this.resizable = {};\n _this.movable = false;\n _this.currentResizer = null;\n _this.config = Object.assign({}, { popup: false }, config);\n return _this;\n }\n PositionableFeature.prototype.center = function () {\n var _a = this.offsetParent, clientHeight = _a.clientHeight, clientWidth = _a.clientWidth;\n var x = (clientWidth / 2) - (this.getWidth() / 2);\n var y = (clientHeight / 2) - (this.getHeight() / 2);\n this.offsetElement(x, y);\n };\n PositionableFeature.prototype.initialisePosition = function () {\n var _a = this.config, centered = _a.centered, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, x = _a.x, y = _a.y;\n if (!this.offsetParent) {\n this.setOffsetParent();\n }\n var computedMinHeight = 0;\n var computedMinWidth = 0;\n // here we don't use the main offset parent but the element's offsetParent\n // in order to calculated the minWidth and minHeight correctly\n var isVisible = !!this.element.offsetParent;\n if (isVisible) {\n var boundaryEl = this.findBoundaryElement();\n var offsetParentComputedStyles = window.getComputedStyle(boundaryEl);\n if (offsetParentComputedStyles.minWidth != null) {\n var paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;\n computedMinWidth = parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;\n }\n if (offsetParentComputedStyles.minHeight != null) {\n var paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;\n computedMinHeight = parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;\n }\n }\n this.minHeight = minHeight || computedMinHeight;\n this.minWidth = minWidth || computedMinWidth;\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center();\n }\n else if (x || y) {\n this.offsetElement(x, y);\n }\n else if (isVisible && forcePopupParentAsOffsetParent && this.boundaryEl) {\n var top_1 = parseFloat(this.boundaryEl.style.top);\n var left = parseFloat(this.boundaryEl.style.left);\n this.offsetElement(isNaN(left) ? 0 : left, isNaN(top_1) ? 0 : top_1);\n }\n this.positioned = !!this.offsetParent;\n };\n PositionableFeature.prototype.isPositioned = function () {\n return this.positioned;\n };\n PositionableFeature.prototype.getPosition = function () {\n return this.position;\n };\n PositionableFeature.prototype.setMovable = function (movable, moveElement) {\n if (!this.config.popup || movable === this.movable) {\n return;\n }\n this.movable = movable;\n var params = this.moveElementDragListener || {\n eElement: moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragService.addDragSource(params);\n this.moveElementDragListener = params;\n }\n else {\n this.dragService.removeDragSource(params);\n this.moveElementDragListener = undefined;\n }\n };\n PositionableFeature.prototype.setResizable = function (resizable) {\n var _this = this;\n this.clearResizeListeners();\n if (resizable) {\n this.addResizers();\n }\n else {\n this.removeResizers();\n }\n if (typeof resizable === 'boolean') {\n if (resizable === false) {\n return;\n }\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n Object.keys(resizable).forEach(function (side) {\n var resizableStructure = resizable;\n var val = !!resizableStructure[side];\n var resizerEl = _this.getResizerElement(side);\n var params = {\n dragStartPixels: 0,\n eElement: resizerEl,\n onDragStart: function (e) { return _this.onResizeStart(e, side); },\n onDragging: _this.onResize.bind(_this),\n onDragStop: function (e) { return _this.onResizeEnd(e, side); },\n };\n if (!!_this.resizable[side] !== val || (!_this.isAlive() && !val)) {\n if (val) {\n _this.dragService.addDragSource(params);\n _this.resizeListeners.push(params);\n resizerEl.style.pointerEvents = 'all';\n }\n else {\n resizerEl.style.pointerEvents = 'none';\n }\n _this.resizable[side] = val;\n }\n });\n };\n PositionableFeature.prototype.removeSizeFromEl = function () {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n this.element.style.removeProperty('flex');\n };\n PositionableFeature.prototype.restoreLastSize = function () {\n this.element.style.flex = '0 0 auto';\n var _a = this.lastSize, height = _a.height, width = _a.width;\n if (width !== -1) {\n this.element.style.width = width + \"px\";\n }\n if (height !== -1) {\n this.element.style.height = height + \"px\";\n }\n };\n PositionableFeature.prototype.getHeight = function () {\n return this.element.offsetHeight;\n };\n PositionableFeature.prototype.setHeight = function (height) {\n var popup = this.config.popup;\n var eGui = this.element;\n var isPercent = false;\n if (typeof height === 'string' && height.indexOf('%') !== -1) {\n setFixedHeight(eGui, height);\n height = getAbsoluteHeight(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n height = Math.max(this.minHeight, height);\n var clientHeight = this.offsetParent.clientHeight;\n var yPosition = popup ? this.position.y : elRect.top;\n var parentTop = popup ? 0 : parentRect.top;\n if (clientHeight && (height + yPosition > clientHeight + parentTop)) {\n height = clientHeight - yPosition;\n }\n }\n if (this.getHeight() === height) {\n return;\n }\n if (!isPercent) {\n if (popup) {\n setFixedHeight(eGui, height);\n }\n else {\n eGui.style.height = height + \"px\";\n eGui.style.flex = '0 0 auto';\n this.lastSize.height = typeof height === 'number' ? height : parseFloat(height);\n }\n }\n else {\n eGui.style.maxHeight = 'unset';\n eGui.style.minHeight = 'unset';\n }\n };\n PositionableFeature.prototype.getWidth = function () {\n return this.element.offsetWidth;\n };\n PositionableFeature.prototype.setWidth = function (width) {\n var eGui = this.element;\n var popup = this.config.popup;\n var isPercent = false;\n if (typeof width === 'string' && width.indexOf('%') !== -1) {\n setFixedWidth(eGui, width);\n width = getAbsoluteWidth(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n width = Math.max(this.minWidth, width);\n var clientWidth = this.offsetParent.clientWidth;\n var xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;\n if (clientWidth && (width + xPosition > clientWidth)) {\n width = clientWidth - xPosition;\n }\n }\n if (this.getWidth() === width) {\n return;\n }\n if (!isPercent) {\n if (this.config.popup) {\n setFixedWidth(eGui, width);\n }\n else {\n eGui.style.width = width + \"px\";\n eGui.style.flex = ' unset';\n this.lastSize.width = typeof width === 'number' ? width : parseFloat(width);\n }\n }\n else {\n eGui.style.maxWidth = 'unset';\n eGui.style.minWidth = 'unset';\n }\n };\n PositionableFeature.prototype.offsetElement = function (x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n var ePopup = this.config.forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n this.popupService.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n keepWithinBounds: true,\n skipObserver: this.movable || this.isResizable()\n });\n this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));\n };\n PositionableFeature.prototype.setPosition = function (x, y) {\n this.position.x = x;\n this.position.y = y;\n };\n PositionableFeature.prototype.updateDragStartPosition = function (x, y) {\n this.dragStartPosition = { x: x, y: y };\n };\n PositionableFeature.prototype.calculateMouseMovement = function (params) {\n var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;\n var xDiff = e.clientX - this.dragStartPosition.x;\n var yDiff = e.clientY - this.dragStartPosition.y;\n var movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;\n var movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;\n return { movementX: movementX, movementY: movementY };\n };\n PositionableFeature.prototype.shouldSkipX = function (e, isLeft, anywhereWithin, diff) {\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var xPosition = this.config.popup ? this.position.x : elRect.left;\n // skip if cursor is outside of popupParent horizontally\n var skipX = ((xPosition <= 0 && parentRect.left >= e.clientX) ||\n (parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right));\n if (skipX) {\n return true;\n }\n if (isLeft) {\n skipX = (\n // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n (diff < 0 && e.clientX > xPosition + parentRect.left) ||\n // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n if (anywhereWithin) {\n // if anywhereWithin is true, we allow to move\n // as long as the cursor is within the dialog\n skipX = ((diff < 0 && e.clientX > boundaryElRect.right) ||\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n skipX = (\n // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n (diff < 0 && e.clientX > boundaryElRect.right) ||\n // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n (diff > 0 && e.clientX < boundaryElRect.right));\n }\n }\n return skipX;\n };\n PositionableFeature.prototype.shouldSkipY = function (e, isTop, topBuffer, diff) {\n if (topBuffer === void 0) { topBuffer = 0; }\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var yPosition = this.config.popup ? this.position.y : elRect.top;\n // skip if cursor is outside of popupParent vertically\n var skipY = ((yPosition <= 0 && parentRect.top >= e.clientY) ||\n (parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom));\n if (skipY) {\n return true;\n }\n if (isTop) {\n skipY = (\n // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n (diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer) ||\n // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n (diff > 0 && e.clientY < yPosition + parentRect.top));\n }\n else {\n skipY = (\n // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n (diff < 0 && e.clientY > boundaryElRect.bottom) ||\n // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n (diff > 0 && e.clientY < boundaryElRect.bottom));\n }\n return skipY;\n };\n PositionableFeature.prototype.createResizeMap = function () {\n var eGui = this.element;\n this.resizerMap = {\n topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },\n top: { element: eGui.querySelector('[ref=eTopResizer]') },\n topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },\n right: { element: eGui.querySelector('[ref=eRightResizer]') },\n bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },\n bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },\n bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },\n left: { element: eGui.querySelector('[ref=eLeftResizer]') }\n };\n };\n PositionableFeature.prototype.addResizers = function () {\n if (this.resizersAdded) {\n return;\n }\n var eGui = this.element;\n if (!eGui) {\n return;\n }\n var parser = new DOMParser();\n var resizers = parser.parseFromString(RESIZE_TEMPLATE, 'text/html').body;\n eGui.appendChild(resizers.firstChild);\n this.createResizeMap();\n this.resizersAdded = true;\n };\n PositionableFeature.prototype.removeResizers = function () {\n this.resizerMap = undefined;\n var resizerEl = this.element.querySelector(\".\" + RESIZE_CONTAINER_STYLE);\n if (resizerEl) {\n this.element.removeChild(resizerEl);\n }\n this.resizersAdded = false;\n };\n PositionableFeature.prototype.getResizerElement = function (side) {\n return this.resizerMap[side].element;\n };\n PositionableFeature.prototype.onResizeStart = function (e, side) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.currentResizer = {\n isTop: !!side.match(/top/i),\n isRight: !!side.match(/right/i),\n isBottom: !!side.match(/bottom/i),\n isLeft: !!side.match(/left/i),\n };\n this.element.classList.add('ag-resizing');\n this.resizerMap[side].element.classList.add('ag-active');\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n if (!popup && !forcePopupParentAsOffsetParent) {\n this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);\n }\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.getSiblings = function () {\n var element = this.element;\n var parent = element.parentElement;\n if (!parent) {\n return null;\n }\n return Array.prototype.slice.call(parent.children).filter(function (el) { return !el.classList.contains('ag-hidden'); });\n };\n PositionableFeature.prototype.getMinSizeOfSiblings = function () {\n var siblings = this.getSiblings() || [];\n var height = 0;\n var width = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentEl = siblings[i];\n var isFlex = !!currentEl.style.flex && currentEl.style.flex !== '0 0 auto';\n if (currentEl === this.element) {\n continue;\n }\n var nextHeight = this.minHeight || 0;\n var nextWidth = this.minWidth || 0;\n if (isFlex) {\n var computedStyle = window.getComputedStyle(currentEl);\n if (computedStyle.minHeight) {\n nextHeight = parseInt(computedStyle.minHeight, 10);\n }\n if (computedStyle.minWidth) {\n nextWidth = parseInt(computedStyle.minWidth, 10);\n }\n }\n else {\n nextHeight = currentEl.offsetHeight;\n nextWidth = currentEl.offsetWidth;\n }\n height += nextHeight;\n width += nextWidth;\n }\n return { height: height, width: width };\n };\n PositionableFeature.prototype.applySizeToSiblings = function (vertical) {\n var containerToFlex = null;\n var siblings = this.getSiblings();\n if (!siblings) {\n return;\n }\n for (var i = 0; i < siblings.length; i++) {\n var el = siblings[i];\n if (el === containerToFlex) {\n continue;\n }\n if (vertical) {\n el.style.height = el.offsetHeight + \"px\";\n }\n else {\n el.style.width = el.offsetWidth + \"px\";\n }\n el.style.flex = '0 0 auto';\n if (el === this.element) {\n containerToFlex = siblings[i + 1];\n }\n }\n if (containerToFlex) {\n containerToFlex.style.removeProperty('height');\n containerToFlex.style.removeProperty('min-height');\n containerToFlex.style.removeProperty('max-height');\n containerToFlex.style.flex = '1 1 auto';\n }\n };\n PositionableFeature.prototype.isResizable = function () {\n return Object.values(this.resizable).some(function (value) { return value; });\n };\n PositionableFeature.prototype.onResize = function (e) {\n if (!this.isResizing || !this.currentResizer) {\n return;\n }\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n var _b = this.currentResizer, isTop = _b.isTop, isRight = _b.isRight, isBottom = _b.isBottom, isLeft = _b.isLeft;\n var isHorizontal = isRight || isLeft;\n var isVertical = isBottom || isTop;\n var _c = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _c.movementX, movementY = _c.movementY;\n var xPosition = this.position.x;\n var yPosition = this.position.y;\n var offsetLeft = 0;\n var offsetTop = 0;\n if (isHorizontal && movementX) {\n var direction = isLeft ? -1 : 1;\n var oldWidth = this.getWidth();\n var newWidth = oldWidth + (movementX * direction);\n var skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n var direction = isTop ? -1 : 1;\n var oldHeight = this.getHeight();\n var newHeight = oldHeight + (movementY * direction);\n var skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n }\n else {\n // do not let the size of all siblings be higher than the parent container\n if (!this.config.popup &&\n !this.config.forcePopupParentAsOffsetParent &&\n oldHeight < newHeight &&\n (this.getMinSizeOfSiblings().height + newHeight) > this.element.parentElement.offsetHeight) {\n skipHeight = true;\n }\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {\n this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);\n }\n };\n PositionableFeature.prototype.onResizeEnd = function (e, side) {\n this.isResizing = false;\n this.currentResizer = null;\n this.boundaryEl = null;\n var params = {\n type: 'resize',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n this.element.classList.remove('ag-resizing');\n this.resizerMap[side].element.classList.remove('ag-active');\n this.dispatchEvent(params);\n };\n PositionableFeature.prototype.refreshSize = function () {\n var eGui = this.element;\n if (this.config.popup) {\n if (!this.config.width) {\n this.setWidth(eGui.offsetWidth);\n }\n if (!this.config.height) {\n this.setHeight(eGui.offsetHeight);\n }\n }\n };\n PositionableFeature.prototype.onMoveStart = function (e) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.isMoving = true;\n this.element.classList.add('ag-moving');\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMove = function (e) {\n if (!this.isMoving) {\n return;\n }\n var _a = this.position, x = _a.x, y = _a.y;\n var topBuffer;\n if (this.config.calculateTopBuffer) {\n topBuffer = this.config.calculateTopBuffer();\n }\n var _b = this.calculateMouseMovement({\n e: e,\n isTop: true,\n anywhereWithin: true,\n topBuffer: topBuffer\n }), movementX = _b.movementX, movementY = _b.movementY;\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMoveEnd = function () {\n this.isMoving = false;\n this.boundaryEl = null;\n this.element.classList.remove('ag-moving');\n };\n PositionableFeature.prototype.setOffsetParent = function () {\n if (this.config.forcePopupParentAsOffsetParent) {\n this.offsetParent = this.popupService.getPopupParent();\n }\n else {\n this.offsetParent = this.element.offsetParent;\n }\n };\n PositionableFeature.prototype.findBoundaryElement = function () {\n var el = this.element;\n while (el) {\n if (window.getComputedStyle(el).position !== 'static') {\n return el;\n }\n el = el.parentElement;\n }\n return this.element;\n };\n PositionableFeature.prototype.clearResizeListeners = function () {\n while (this.resizeListeners.length) {\n var params = this.resizeListeners.pop();\n this.dragService.removeDragSource(params);\n }\n };\n PositionableFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.moveElementDragListener) {\n this.dragService.removeDragSource(this.moveElementDragListener);\n }\n this.clearResizeListeners();\n this.removeResizers();\n };\n __decorate$16([\n Autowired('popupService')\n ], PositionableFeature.prototype, \"popupService\", void 0);\n __decorate$16([\n Autowired('dragService')\n ], PositionableFeature.prototype, \"dragService\", void 0);\n return PositionableFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AutoWidthCalculator = /** @class */ (function (_super) {\n __extends$1c(AutoWidthCalculator, _super);\n function AutoWidthCalculator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoWidthCalculator.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n });\n };\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {\n var eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n var elements = this.rowRenderer.getAllCellsForColumn(column);\n if (!skipHeader) {\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets too complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n elements.push(eHeaderCell);\n }\n return this.addElementsToContainerAndGetWidth(elements);\n };\n AutoWidthCalculator.prototype.getPreferredWidthForColumnGroup = function (columnGroup) {\n var eHeaderCell = this.getHeaderCellForColumn(columnGroup);\n if (!eHeaderCell) {\n return -1;\n }\n return this.addElementsToContainerAndGetWidth([eHeaderCell]);\n };\n AutoWidthCalculator.prototype.addElementsToContainerAndGetWidth = function (elements) {\n var _this = this;\n // this element has to be a form, otherwise form elements within a cell\n // will be validated while being cloned. This can cause issues such as \n // radio buttons being reset and losing their values.\n var eDummyContainer = document.createElement('form');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.centerRowContainerCtrl.getContainerElement();\n eBodyContainer.appendChild(eDummyContainer);\n elements.forEach(function (el) { return _this.cloneItemIntoDummy(el, eDummyContainer); });\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n var dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {\n /* tslint:enable */\n var element = null;\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (container) {\n var res = container.getHtmlElementForColumnHeader(column);\n if (res != null) {\n element = res;\n }\n });\n return element;\n };\n AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {\n // make a deep clone of the cell\n var eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n var eCloneParent = document.createElement('div');\n var eCloneParentClassList = eCloneParent.classList;\n var isHeader = ['ag-header-cell', 'ag-header-group-cell'].some(function (cls) { return eCellClone.classList.contains(cls); });\n if (isHeader) {\n eCloneParentClassList.add('ag-header', 'ag-header-row');\n eCloneParent.style.position = 'static';\n }\n else {\n eCloneParentClassList.add('ag-row');\n }\n // find parent using classes (headers have ag-header-cell, rows have ag-row), and copy classes from it.\n // if we didn't do this, things like ag-row-level-2 would be missing if present, which sets indents\n // onto group items.\n var pointer = eCell.parentElement;\n while (pointer) {\n var isRow = ['ag-header-row', 'ag-row'].some(function (cls) { return pointer.classList.contains(cls); });\n if (isRow) {\n for (var i = 0; i < pointer.classList.length; i++) {\n var item = pointer.classList[i];\n // we skip ag-row-position-absolute, as this has structural CSS applied that stops the\n // element from fitting into it's parent, and we need the element to stretch the parent\n // as we are measuring the parents width\n if (item != 'ag-row-position-absolute') {\n eCloneParentClassList.add(item);\n }\n }\n break;\n }\n pointer = pointer.parentElement;\n }\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n };\n __decorate$15([\n Autowired('rowRenderer')\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate$15([\n Autowired('ctrlsService')\n ], AutoWidthCalculator.prototype, \"ctrlsService\", void 0);\n __decorate$15([\n Autowired('rowCssClassCalculator')\n ], AutoWidthCalculator.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$15([\n PostConstruct\n ], AutoWidthCalculator.prototype, \"postConstruct\", null);\n AutoWidthCalculator = __decorate$15([\n Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$9 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$b(arguments[i]));\n return ar;\n};\nvar StickyRowFeature = /** @class */ (function (_super) {\n __extends$1b(StickyRowFeature, _super);\n function StickyRowFeature(createRowCon, destroyRowCtrls) {\n var _this = _super.call(this) || this;\n _this.createRowCon = createRowCon;\n _this.destroyRowCtrls = destroyRowCtrls;\n _this.stickyRowCtrls = [];\n _this.containerHeight = 0;\n return _this;\n }\n StickyRowFeature.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (params) {\n _this.gridBodyCtrl = params.gridBodyCtrl;\n });\n };\n StickyRowFeature.prototype.getStickyRowCtrls = function () {\n return this.stickyRowCtrls;\n };\n StickyRowFeature.prototype.checkStickyRows = function () {\n var height = 0;\n if (!this.gridOptionsWrapper.isGroupRowsSticky()) {\n this.refreshNodesAndContainerHeight([], height);\n return;\n }\n var stickyRows = [];\n var firstPixel = this.rowRenderer.getFirstVisibleVerticalPixel();\n var addStickyRow = function (stickyRow) {\n stickyRows.push(stickyRow);\n var lastAncester = stickyRow;\n while (lastAncester.expanded) {\n lastAncester = last(lastAncester.childrenAfterSort);\n }\n var lastChildBottom = lastAncester.rowTop + lastAncester.rowHeight;\n var stickRowBottom = firstPixel + height + stickyRow.rowHeight;\n if (lastChildBottom < stickRowBottom) {\n stickyRow.stickyRowTop = height + (lastChildBottom - stickRowBottom);\n }\n else {\n stickyRow.stickyRowTop = height;\n }\n height = 0;\n stickyRows.forEach(function (rowNode) {\n var thisRowLastPx = rowNode.stickyRowTop + rowNode.rowHeight;\n if (height < thisRowLastPx) {\n height = thisRowLastPx;\n }\n });\n };\n while (true) {\n var firstPixelAfterStickyRows = firstPixel + height;\n var firstIndex = this.rowModel.getRowIndexAtPixel(firstPixelAfterStickyRows);\n var firstRow = this.rowModel.getRow(firstIndex);\n if (firstRow == null) {\n break;\n }\n // only happens when pivoting, and we are showing root node\n if (firstRow.level < 0) {\n break;\n }\n var parents = [];\n var p = firstRow.parent;\n while (p.level >= 0) {\n parents.push(p);\n p = p.parent;\n }\n var firstMissingParent = parents.reverse().find(function (parent) { return stickyRows.indexOf(parent) < 0 && parent.displayed; });\n if (firstMissingParent) {\n addStickyRow(firstMissingParent);\n continue;\n }\n // if first row is an open group, and practically shown, it needs\n // to be stuck\n if (firstRow.group && firstRow.expanded && !firstRow.footer && firstRow.rowTop < firstPixelAfterStickyRows) {\n addStickyRow(firstRow);\n continue;\n }\n break;\n }\n this.refreshNodesAndContainerHeight(stickyRows, height);\n };\n StickyRowFeature.prototype.refreshNodesAndContainerHeight = function (allStickyNodes, height) {\n var e_1, _a, _b;\n var _this = this;\n var removedCtrls = this.stickyRowCtrls.filter(function (ctrl) { return allStickyNodes.indexOf(ctrl.getRowNode()) === -1; });\n var addedNodes = allStickyNodes.filter(function (rowNode) { return _this.stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode() === rowNode; }) === -1; });\n var ctrlsToDestroy = {};\n removedCtrls.forEach(function (removedCtrl) {\n ctrlsToDestroy[removedCtrl.getRowNode().id] = removedCtrl;\n _this.stickyRowCtrls = _this.stickyRowCtrls.filter(function (ctrl) { return ctrl !== removedCtrl; });\n });\n try {\n for (var _c = __values$1(Object.values(ctrlsToDestroy)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var ctrl = _d.value;\n ctrl.getRowNode().sticky = false;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.destroyRowCtrls(ctrlsToDestroy, false);\n var newCtrls = addedNodes.map(function (rowNode) {\n rowNode.sticky = true;\n return _this.createRowCon(rowNode, false, false);\n });\n (_b = this.stickyRowCtrls).push.apply(_b, __spread$9(newCtrls));\n this.stickyRowCtrls.forEach(function (ctrl) { return ctrl.setRowTop(ctrl.getRowNode().stickyRowTop); });\n this.stickyRowCtrls.sort(function (a, b) { return b.getRowNode().rowIndex - a.getRowNode().rowIndex; });\n if (this.containerHeight !== height) {\n this.containerHeight = height;\n this.gridBodyCtrl.setStickyTopHeight(height);\n }\n };\n __decorate$14([\n Autowired(\"rowModel\")\n ], StickyRowFeature.prototype, \"rowModel\", void 0);\n __decorate$14([\n Autowired(\"rowRenderer\")\n ], StickyRowFeature.prototype, \"rowRenderer\", void 0);\n __decorate$14([\n Autowired(\"ctrlsService\")\n ], StickyRowFeature.prototype, \"ctrlsService\", void 0);\n __decorate$14([\n PostConstruct\n ], StickyRowFeature.prototype, \"postConstruct\", null);\n return StickyRowFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$8 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$a(arguments[i]));\n return ar;\n};\nvar RowRenderer = /** @class */ (function (_super) {\n __extends$1a(RowRenderer, _super);\n function RowRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n _this.rowCtrlsByRowIndex = {};\n _this.zombieRowCtrls = {};\n _this.allRowCtrls = [];\n _this.topRowCtrls = [];\n _this.bottomRowCtrls = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n _this.refreshInProgress = false;\n _this.dataFirstRenderedFired = false;\n return _this;\n }\n RowRenderer.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.initialise();\n });\n };\n RowRenderer.prototype.initialise = function () {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_ROW_CLASS, this.redrawRows.bind(this));\n if (this.gridOptionsWrapper.isGroupRowsSticky()) {\n if (this.rowModel.getType() != Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n doOnce(function () { return console.warn('AG Grid: The feature Sticky Row Groups only works with the Client Side Row Model'); }, 'rowRenderer.stickyWorksWithCsrmOnly');\n }\n else if (this.gridOptionsWrapper.isTreeData()) {\n doOnce(function () { return console.warn('AG Grid: The feature Sticky Row Groups does not work with Tree Data.'); }, 'rowRenderer.stickyDoesNotWorkWithTreeData');\n }\n else {\n this.stickyRowFeature = this.createManagedBean(new StickyRowFeature(this.createRowCon.bind(this), this.destroyRowCtrls.bind(this)));\n }\n }\n this.registerCellEventListeners();\n this.initialiseCache();\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.initialiseCache = function () {\n if (this.gridOptionsWrapper.isKeepDetailRows()) {\n var countProp = this.gridOptionsWrapper.getKeepDetailRowsCount();\n var count = countProp != null ? countProp : 3;\n this.cachedRowCtrls = new RowCtrlCache(count);\n }\n };\n RowRenderer.prototype.getRowCtrls = function () {\n return this.allRowCtrls;\n };\n RowRenderer.prototype.getStickyTopRowCtrls = function () {\n if (!this.stickyRowFeature) {\n return [];\n }\n return this.stickyRowFeature.getStickyRowCtrls();\n };\n RowRenderer.prototype.updateAllRowCtrls = function () {\n var liveList = getAllValuesInObject(this.rowCtrlsByRowIndex);\n if (this.gridOptionsWrapper.isEnsureDomOrder()) {\n liveList.sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode.rowIndex; });\n }\n var zombieList = getAllValuesInObject(this.zombieRowCtrls);\n var cachedList = this.cachedRowCtrls ? this.cachedRowCtrls.getEntries() : [];\n this.allRowCtrls = __spread$8(liveList, zombieList, cachedList);\n };\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n RowRenderer.prototype.registerCellEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellFocused(event); });\n _this.getFullWidthRowCtrls().forEach(function (rowCtrl) {\n rowCtrl.onFullWidthRowFocused(event);\n });\n });\n this.addManagedListener(this.eventService, Events.EVENT_FLASH_CELLS, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onFlashCells(event); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onColumnHover(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onDisplayedColumnsChanged(); });\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {\n if (_this.printLayout) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n }\n });\n var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRangeSelectionChanged(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n }\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n };\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n RowRenderer.prototype.removeGridColumnListeners = function () {\n this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });\n this.destroyFuncsForColumnListeners.length = 0;\n };\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {\n var _this = this;\n this.removeGridColumnListeners();\n var cols = this.columnModel.getAllGridColumns();\n if (!cols) {\n return;\n }\n cols.forEach(function (col) {\n var forEachCellWithThisCol = function (callback) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() === col) {\n callback(cellCtrl);\n }\n });\n };\n var leftChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n };\n var widthChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onWidthChanged(); });\n };\n var firstRightPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onFirstRightPinnedChanged(); });\n };\n var lastLeftPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLastLeftPinnedChanged(); });\n };\n var colDefChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onColDefChanged(); });\n };\n col.addEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.addEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.addEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n col.addEventListener(Column.EVENT_COL_DEF_CHANGED, colDefChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.removeEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.removeEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n col.removeEventListener(Column.EVENT_COL_DEF_CHANGED, colDefChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate();\n }\n };\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n RowRenderer.prototype.datasourceChanged = function () {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.onPageLoaded = function (event) {\n var params = {\n recycleRows: event.keepRenderedRows,\n animate: event.animate,\n newData: event.newData,\n newPage: event.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.getAllCellsForColumn = function (column) {\n var res = [];\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n var eCell = rowCtrl.getCellElement(column);\n if (eCell) {\n res.push(eCell);\n }\n });\n return res;\n };\n RowRenderer.prototype.refreshFloatingRowComps = function () {\n this.refreshFloatingRows(this.topRowCtrls, this.pinnedRowModel.getPinnedTopRowData());\n this.refreshFloatingRows(this.bottomRowCtrls, this.pinnedRowModel.getPinnedBottomRowData());\n };\n RowRenderer.prototype.getTopRowCtrls = function () {\n return this.topRowCtrls;\n };\n RowRenderer.prototype.getBottomRowCtrls = function () {\n return this.bottomRowCtrls;\n };\n RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {\n var _this = this;\n rowComps.forEach(function (row) {\n row.destroyFirstPass();\n row.destroySecondPass();\n });\n rowComps.length = 0;\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var rowCtrl = new RowCtrl(rowNode, _this.beans, false, false, _this.printLayout);\n rowComps.push(rowCtrl);\n });\n };\n RowRenderer.prototype.onPinnedRowDataChanged = function () {\n // recycling rows in order to ensure cell editing is not cancelled\n var params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n };\n // if the row nodes are not rendered, no index is returned\n RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {\n var result = [];\n if (missing(rowNodes)) {\n return result;\n }\n iterateObject(this.rowCtrlsByRowIndex, function (index, renderedRow) {\n var rowNode = renderedRow.getRowNode();\n if (rowNodes.indexOf(rowNode) >= 0) {\n result.push(index);\n }\n });\n return result;\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n // if no row nodes provided, then refresh everything\n var partialRefresh = rowNodes != null && rowNodes.length > 0;\n if (partialRefresh) {\n var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);\n // remove the rows\n this.removeRowCtrls(indexesToRemove);\n }\n // add draw them again\n this.redrawAfterModelUpdate({\n recycleRows: partialRefresh\n });\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var _a;\n var focusedCell = ((_a = params) === null || _a === void 0 ? void 0 : _a.suppressKeepFocus) ? null : this.focusService.getFocusCellToUseAfterRefresh();\n if (focusedCell == null) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n var cellDomData = this.gridOptionsWrapper.getDomData(activeElement, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowDomData = this.gridOptionsWrapper.getDomData(activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n var gridElementFocused = cellDomData || rowDomData;\n return gridElementFocused ? focusedCell : null;\n };\n // gets called from:\n // +) initialisation (in registerGridComp) params = null\n // +) onDomLayoutChanged, params = null\n // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true\n // +) onPinnedRowDataChanged, recycleRows = true\n // +) redrawRows (from Grid API), recycleRows = true/false\n RowRenderer.prototype.redrawAfterModelUpdate = function (params) {\n if (params === void 0) { params = {}; }\n this.getLockOnRefresh();\n var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.updateContainerHeights();\n this.scrollToTopIfNewData(params);\n // never recycle rows when print layout, we draw each row again from scratch. this is because print layout\n // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.\n var recycleRows = !this.printLayout && !!params.recycleRows;\n var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();\n // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,\n // however we can reuse the rows, so we keep them but index by rowNode.id\n var rowsToRecycle = recycleRows ? this.recycleRows() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n var isFocusedCellGettingRecycled = function () {\n if (focusedCell == null || rowsToRecycle == null) {\n return false;\n }\n var res = false;\n iterateObject(rowsToRecycle, function (key, rowComp) {\n var rowNode = rowComp.getRowNode();\n var rowIndexEqual = rowNode.rowIndex == focusedCell.rowIndex;\n var pinnedEqual = rowNode.rowPinned == focusedCell.rowPinned;\n if (rowIndexEqual && pinnedEqual) {\n res = true;\n }\n });\n return res;\n };\n var focusedCellRecycled = isFocusedCellGettingRecycled();\n this.redraw(rowsToRecycle, animate);\n this.gridBodyCtrl.updateRowCount();\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if we focus a cell that's already focused, then we get an unnecessary 'cellFocused' event fired.\n // this was happening when user clicked 'expand' on a rowGroup, then cellFocused was getting fired twice.\n if (!focusedCellRecycled) {\n this.restoreFocusedCell(focusedCell);\n }\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.scrollToTopIfNewData = function (params) {\n var scrollToTop = params.newData || params.newPage;\n var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();\n if (scrollToTop && !suppressScrollToTop) {\n this.gridBodyCtrl.getScrollFeature().scrollToTop();\n }\n };\n RowRenderer.prototype.updateContainerHeights = function () {\n // when doing print layout, we don't explicitly set height on the containers\n if (this.printLayout) {\n this.rowContainerHeightService.setModelHeight(null);\n return;\n }\n var containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.rowContainerHeightService.setModelHeight(containerHeight);\n };\n RowRenderer.prototype.getLockOnRefresh = function () {\n if (this.refreshInProgress) {\n throw new Error(\"AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, e.g. instead of api.redrawRows(), \" +\n \"call setTimeout(function() { api.redrawRows(); }, 0). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n };\n RowRenderer.prototype.releaseLockOnRefresh = function () {\n this.refreshInProgress = false;\n };\n RowRenderer.prototype.isRefreshInProgress = function () {\n return this.refreshInProgress;\n };\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {\n if (cellPosition) {\n this.focusService.setFocusedCell({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true\n });\n }\n };\n RowRenderer.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n rowCtrl.stopEditing(cancel);\n });\n };\n RowRenderer.prototype.getAllCellCtrls = function () {\n var res = [];\n this.getAllRowCtrls().forEach(function (rowCtrl) { return res = res.concat(rowCtrl.getAllCellCtrls()); });\n return res;\n };\n RowRenderer.prototype.getAllRowCtrls = function () {\n var _this = this;\n var stickyRowCtrls = (this.stickyRowFeature && this.stickyRowFeature.getStickyRowCtrls()) || [];\n var res = __spread$8(this.topRowCtrls, this.bottomRowCtrls, stickyRowCtrls);\n Object.keys(this.rowCtrlsByRowIndex).forEach(function (key) { return res.push(_this.rowCtrlsByRowIndex[key]); });\n return res;\n };\n RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n var rowComp = this.rowCtrlsByRowIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n };\n RowRenderer.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) { return cellCtrl.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });\n };\n RowRenderer.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n var refreshCellParams = {\n forceRefresh: params.force,\n newData: false,\n suppressFlash: params.suppressFlash\n };\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) {\n if (cellCtrl.refreshShouldDestroy()) {\n var rowCtrl = cellCtrl.getRowCtrl();\n if (rowCtrl) {\n rowCtrl.refreshCell(cellCtrl);\n }\n }\n else {\n cellCtrl.refreshCell(refreshCellParams);\n }\n });\n this.getFullWidthRowCtrls(params.rowNodes).forEach(function (fullWidthRowCtrl) {\n fullWidthRowCtrl.refreshFullWidth();\n });\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var res = this.getCellCtrls(params.rowNodes, params.columns)\n .map(function (cellCtrl) { return cellCtrl.getCellRenderer(); })\n .filter(function (renderer) { return renderer != null; });\n return res;\n };\n RowRenderer.prototype.getCellEditorInstances = function (params) {\n var res = [];\n this.getCellCtrls(params.rowNodes, params.columns).forEach(function (cellCtrl) {\n var cellEditor = cellCtrl.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n };\n RowRenderer.prototype.getEditingCells = function () {\n var res = [];\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.isEditing()) {\n var cellPosition = cellCtrl.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n };\n RowRenderer.prototype.mapRowNodes = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n var res = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(function (rowNode) {\n var id = rowNode.id;\n if (rowNode.rowPinned === Constants.PINNED_TOP) {\n res.top[id] = rowNode;\n }\n else if (rowNode.rowPinned === Constants.PINNED_BOTTOM) {\n res.bottom[id] = rowNode;\n }\n else {\n res.normal[id] = rowNode;\n }\n });\n return res;\n };\n RowRenderer.prototype.isRowInMap = function (rowNode, rowIdsMap) {\n // skip this row if it is missing from the provided list\n var id = rowNode.id;\n var floating = rowNode.rowPinned;\n if (floating === Constants.PINNED_BOTTOM) {\n return rowIdsMap.bottom[id] != null;\n }\n if (floating === Constants.PINNED_TOP) {\n return rowIdsMap.top[id] != null;\n }\n return rowIdsMap.normal[id] != null;\n };\n // returns CellCtrl's that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so 4 CellCtrl's returned.\n RowRenderer.prototype.getCellCtrls = function (rowNodes, columns) {\n var _this = this;\n var rowIdsMap = this.mapRowNodes(rowNodes);\n var res = [];\n var colIdsMap;\n if (exists(columns)) {\n colIdsMap = {};\n columns.forEach(function (colKey) {\n var column = _this.columnModel.getGridColumn(colKey);\n if (exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n var processRow = function (rowComp) {\n var rowNode = rowComp.getRowNode();\n // skip this row if it is missing from the provided list\n if (rowIdsMap != null && !_this.isRowInMap(rowNode, rowIdsMap)) {\n return;\n }\n rowComp.getAllCellCtrls().forEach(function (cellCtrl) {\n var colId = cellCtrl.getColumn().getId();\n var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n res.push(cellCtrl);\n });\n };\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n processRow(rowComp);\n });\n if (this.topRowCtrls) {\n this.topRowCtrls.forEach(processRow);\n }\n if (this.bottomRowCtrls) {\n this.bottomRowCtrls.forEach(processRow);\n }\n return res;\n };\n RowRenderer.prototype.destroy = function () {\n this.removeAllRowComps();\n _super.prototype.destroy.call(this);\n };\n RowRenderer.prototype.removeAllRowComps = function () {\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.recycleRows = function () {\n // remove all stub nodes, they can't be reused, as no rowNode id\n var stubNodeIndexes = [];\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var stubNode = rowComp.getRowNode().id == null;\n if (stubNode) {\n stubNodeIndexes.push(index);\n }\n });\n this.removeRowCtrls(stubNodeIndexes);\n // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex\n var ctrlsByIdMap = {};\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var rowNode = rowComp.getRowNode();\n ctrlsByIdMap[rowNode.id] = rowComp;\n });\n this.rowCtrlsByRowIndex = {};\n return ctrlsByIdMap;\n };\n // takes array of row indexes\n RowRenderer.prototype.removeRowCtrls = function (rowsToRemove) {\n var _this = this;\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach(function (indexToRemove) {\n var rowCtrl = _this.rowCtrlsByRowIndex[indexToRemove];\n if (rowCtrl) {\n rowCtrl.destroyFirstPass();\n rowCtrl.destroySecondPass();\n }\n delete _this.rowCtrlsByRowIndex[indexToRemove];\n });\n };\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n RowRenderer.prototype.redrawAfterScroll = function () {\n var cellFocused;\n // only try to refocus cells shifting in and out of sticky container\n // if the browser supports focus ({ preventScroll })\n if (this.stickyRowFeature && browserSupportsPreventScroll()) {\n cellFocused = this.getCellToRestoreFocusToAfterRefresh() || undefined;\n }\n this.getLockOnRefresh();\n this.redraw(null, false, true);\n this.releaseLockOnRefresh();\n this.dispatchDisplayedRowsChanged();\n if (cellFocused != null) {\n var newFocusedCell = this.getCellToRestoreFocusToAfterRefresh();\n if (cellFocused != null && newFocusedCell == null) {\n this.animationFrameService.flushAllFrames();\n this.restoreFocusedCell(cellFocused);\n }\n }\n };\n RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {\n // for speedy lookup, dump into map\n var indexesToDrawMap = {};\n indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });\n var existingIndexes = Object.keys(this.rowCtrlsByRowIndex);\n var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });\n this.removeRowCtrls(indexesNotToDraw);\n };\n RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {\n var _this = this;\n // all in all indexes in the viewport\n var indexesToDraw = createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n var checkRowToDraw = function (indexStr, rowComp) {\n var index = rowComp.getRowNode().rowIndex;\n if (index == null) {\n return;\n }\n if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {\n if (_this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n };\n // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex\n iterateObject(this.rowCtrlsByRowIndex, checkRowToDraw);\n // if we are redrawing due to model update, then old rows are in rowsToRecycle\n iterateObject(rowsToRecycle, checkRowToDraw);\n indexesToDraw.sort(function (a, b) { return a - b; });\n indexesToDraw = indexesToDraw.filter(function (index) {\n var rowNode = _this.paginationProxy.getRow(index);\n return rowNode && !rowNode.sticky;\n });\n return indexesToDraw;\n };\n RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\n this.rowContainerHeightService.updateOffset();\n this.workOutFirstAndLastRowsToRender();\n if (this.stickyRowFeature) {\n this.stickyRowFeature.checkStickyRows();\n }\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);\n this.removeRowCompsNotToDraw(indexesToDraw);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n if (this.printLayout) {\n animate = false;\n }\n indexesToDraw.forEach(function (rowIndex) {\n var rowCtrl = _this.createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll);\n if (exists(rowCtrl)) ;\n });\n if (rowsToRecycle) {\n var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.animationFrameService.addDestroyTask(function () {\n _this.destroyRowCtrls(rowsToRecycle, animate);\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n }\n else {\n this.destroyRowCtrls(rowsToRecycle, animate);\n }\n }\n this.updateAllRowCtrls();\n };\n RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {\n var event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED };\n this.eventService.dispatchEvent(event);\n };\n RowRenderer.prototype.onDisplayedColumnsChanged = function () {\n var pinningLeft = this.columnModel.isPinningLeft();\n var pinningRight = this.columnModel.isPinningRight();\n var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n };\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n var rowsToRemove = [];\n this.getFullWidthRowCtrls().forEach(function (fullWidthCtrl) {\n var rowIndex = fullWidthCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n });\n this.refreshFloatingRowComps();\n this.removeRowCtrls(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.getFullWidthRowCtrls = function (rowNodes) {\n var _this = this;\n var rowNodesMap = this.mapRowNodes(rowNodes);\n return getAllValuesInObject(this.rowCtrlsByRowIndex).filter(function (rowCtrl) {\n // include just full width\n if (!rowCtrl.isFullWidth()) {\n return false;\n }\n // if Row Nodes provided, we exclude where Row Node is missing\n var rowNode = rowCtrl.getRowNode();\n if (rowNodesMap != null && !_this.isRowInMap(rowNode, rowNodesMap)) {\n return false;\n }\n return true;\n });\n };\n RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {\n var rowsToRemove = [];\n var selectivelyRefreshing = !!rowNodesToRefresh;\n var idsToRefresh = selectivelyRefreshing ? {} : undefined;\n if (selectivelyRefreshing && idsToRefresh) {\n rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });\n }\n this.getFullWidthRowCtrls().forEach(function (fullWidthRowCtrl) {\n var rowNode = fullWidthRowCtrl.getRowNode();\n if (selectivelyRefreshing && idsToRefresh) {\n // we refresh if a) this node is present or b) this parents nodes is present. checking parent\n // node is important for master/detail, as we want detail to refresh on changes to parent node.\n // it's also possible, if user is provider their own fullWidth, that details panels contain\n // some info on the parent, eg if in tree data and child row shows some data from parent row also.\n var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;\n var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];\n if (skipThisNode) {\n return;\n }\n }\n var fullWidthRowsRefreshed = fullWidthRowCtrl.refreshFullWidth();\n if (!fullWidthRowsRefreshed) {\n var rowIndex = fullWidthRowCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n });\n this.removeRowCtrls(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.createOrUpdateRowCtrl = function (rowIndex, rowsToRecycle, animate, afterScroll) {\n var rowNode;\n var rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowCtrl) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (exists(rowNode) && exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowCtrl = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n var creatingNewRowCtrl = !rowCtrl;\n if (creatingNewRowCtrl) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (exists(rowNode)) {\n rowCtrl = this.createRowCon(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowCtrlsByRowIndex[rowIndex] = rowCtrl;\n return rowCtrl;\n };\n RowRenderer.prototype.destroyRowCtrls = function (rowCtrlsMap, animate) {\n var _this = this;\n var executeInAWhileFuncs = [];\n iterateObject(rowCtrlsMap, function (nodeId, rowCtrl) {\n // if row was used, then it's null\n if (!rowCtrl) {\n return;\n }\n if (_this.cachedRowCtrls && rowCtrl.isCacheable()) {\n _this.cachedRowCtrls.addRow(rowCtrl);\n return;\n }\n rowCtrl.destroyFirstPass();\n if (animate) {\n _this.zombieRowCtrls[rowCtrl.getInstanceId()] = rowCtrl;\n executeInAWhileFuncs.push(function () {\n rowCtrl.destroySecondPass();\n delete _this.zombieRowCtrls[rowCtrl.getInstanceId()];\n });\n }\n else {\n rowCtrl.destroySecondPass();\n }\n });\n if (animate) {\n // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get\n // executed, as we added it to the end of the list.\n executeInAWhileFuncs.push(function () {\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n executeInAWhile(executeInAWhileFuncs);\n }\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n var newFirst;\n var newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var suppressRowVirtualisation = this.gridOptionsWrapper.isSuppressRowVirtualisation();\n var rowHeightsChanged = false;\n var firstPixel = void 0;\n var lastPixel = void 0;\n do {\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;\n var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();\n var bodyVRange = gridBodyCtrl.getScrollFeature().getVScrollPosition();\n var bodyTopPixel = bodyVRange.top;\n var bodyBottomPixel = bodyVRange.bottom;\n if (suppressRowVirtualisation) {\n firstPixel = pageFirstPixel + divStretchOffset;\n lastPixel = pageLastPixel + divStretchOffset;\n }\n else {\n firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;\n lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;\n }\n this.firstVisibleVPixel = Math.max(bodyTopPixel + paginationOffset, pageFirstPixel) + divStretchOffset;\n // if the rows we are about to display get their heights changed, then that upsets the calcs from above.\n rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n } while (rowHeightsChanged);\n var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n var pageFirstRow = this.paginationProxy.getPageFirstRow();\n var pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();\n var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n var firstDiffers = newFirst !== this.firstRenderedRow;\n var lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n var event_1 = {\n type: Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n /**\n * This event will only be fired once, and is queued until after the browser next renders.\n * This allows us to fire an event during the start of the render cycle, when we first see data being rendered\n * but not execute the event until all of the data has finished being rendered to the dom.\n */\n RowRenderer.prototype.dispatchFirstDataRenderedEvent = function () {\n var _this = this;\n if (this.dataFirstRenderedFired) {\n return;\n }\n this.dataFirstRenderedFired = true;\n var event = {\n type: Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: this.firstRenderedRow,\n lastRow: this.lastRenderedRow,\n };\n // See AG-7018\n window.requestAnimationFrame(function () {\n _this.beans.eventService.dispatchEvent(event);\n });\n };\n RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (res) {\n this.updateContainerHeights();\n }\n return res;\n };\n RowRenderer.prototype.getFirstVisibleVerticalPixel = function () {\n return this.firstVisibleVPixel;\n };\n RowRenderer.prototype.getFirstVirtualRenderedRow = function () {\n return this.firstRenderedRow;\n };\n RowRenderer.prototype.getLastVirtualRenderedRow = function () {\n return this.lastRenderedRow;\n };\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {\n var REMOVE_ROW = false;\n var KEEP_ROW = true;\n var rowNode = rowComp.getRowNode();\n var rowHasFocus = this.focusService.isRowNodeFocused(rowNode);\n var rowIsEditing = rowComp.isEditing();\n var rowIsDetail = rowNode.detail;\n var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n };\n RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {\n var rowCtrlFromCache = this.cachedRowCtrls ? this.cachedRowCtrls.getRow(rowNode) : null;\n if (rowCtrlFromCache) {\n return rowCtrlFromCache;\n }\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();\n var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n var res = new RowCtrl(rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);\n return res;\n };\n RowRenderer.prototype.getRenderedNodes = function () {\n var renderedRows = this.rowCtrlsByRowIndex;\n return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });\n };\n RowRenderer.prototype.getRowByPosition = function (rowPosition) {\n var rowCtrl;\n var rowIndex = rowPosition.rowIndex;\n switch (rowPosition.rowPinned) {\n case Constants.PINNED_TOP:\n rowCtrl = this.topRowCtrls[rowIndex];\n break;\n case Constants.PINNED_BOTTOM:\n rowCtrl = this.bottomRowCtrls[rowIndex];\n break;\n default:\n rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n if (!rowCtrl) {\n rowCtrl = this.getStickyTopRowCtrls().find(function (ctrl) { return ctrl.getRowNode().rowIndex === rowIndex; }) || null;\n }\n break;\n }\n return rowCtrl;\n };\n RowRenderer.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n // returns true if any row between startIndex and endIndex is rendered. used by\n // SSRM or IRM, as they don't want to purge visible blocks from cache.\n RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {\n // parent closed means the parent node is not expanded, thus these blocks are not visible\n var parentClosed = startIndex == null || endIndex == null;\n if (parentClosed) {\n return false;\n }\n var blockAfterViewport = startIndex > this.lastRenderedRow;\n var blockBeforeViewport = endIndex < this.firstRenderedRow;\n var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;\n return blockInsideViewport;\n };\n __decorate$13([\n Autowired(\"animationFrameService\")\n ], RowRenderer.prototype, \"animationFrameService\", void 0);\n __decorate$13([\n Autowired(\"paginationProxy\")\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate$13([\n Autowired(\"columnModel\")\n ], RowRenderer.prototype, \"columnModel\", void 0);\n __decorate$13([\n Autowired(\"pinnedRowModel\")\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate$13([\n Autowired(\"rowModel\")\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate$13([\n Autowired(\"focusService\")\n ], RowRenderer.prototype, \"focusService\", void 0);\n __decorate$13([\n Autowired(\"beans\")\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate$13([\n Autowired(\"rowContainerHeightService\")\n ], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n __decorate$13([\n Autowired(\"ctrlsService\")\n ], RowRenderer.prototype, \"ctrlsService\", void 0);\n __decorate$13([\n PostConstruct\n ], RowRenderer.prototype, \"postConstruct\", null);\n RowRenderer = __decorate$13([\n Bean(\"rowRenderer\")\n ], RowRenderer);\n return RowRenderer;\n}(BeanStub));\nvar RowCtrlCache = /** @class */ (function () {\n function RowCtrlCache(maxCount) {\n // map for fast access\n this.entriesMap = {};\n // list for keeping order\n this.entriesList = [];\n this.maxCount = maxCount;\n }\n RowCtrlCache.prototype.addRow = function (rowCtrl) {\n this.entriesMap[rowCtrl.getRowNode().id] = rowCtrl;\n this.entriesList.push(rowCtrl);\n rowCtrl.setCached(true);\n if (this.entriesList.length > this.maxCount) {\n var rowCtrlToDestroy = this.entriesList[0];\n rowCtrlToDestroy.destroyFirstPass();\n rowCtrlToDestroy.destroySecondPass();\n this.removeFromCache(rowCtrlToDestroy);\n }\n };\n RowCtrlCache.prototype.getRow = function (rowNode) {\n if (rowNode == null || rowNode.id == null) {\n return null;\n }\n var res = this.entriesMap[rowNode.id];\n if (!res) {\n return null;\n }\n this.removeFromCache(res);\n res.setCached(false);\n // this can happen if user reloads data, and a new RowNode is reusing\n // the same ID as the old one\n var rowNodeMismatch = res.getRowNode() != rowNode;\n return rowNodeMismatch ? null : res;\n };\n RowCtrlCache.prototype.removeFromCache = function (rowCtrl) {\n var rowNodeId = rowCtrl.getRowNode().id;\n delete this.entriesMap[rowNodeId];\n removeFromArray(this.entriesList, rowCtrl);\n };\n RowCtrlCache.prototype.getEntries = function () {\n return this.entriesList;\n };\n return RowCtrlCache;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueFormatterService = /** @class */ (function (_super) {\n __extends$19(ValueFormatterService, _super);\n function ValueFormatterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueFormatterService.prototype.formatValue = function (column, node, value, suppliedFormatter, useFormatterFromColumn) {\n if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }\n var result = null;\n var formatter;\n var colDef = column.getColDef();\n if (suppliedFormatter) {\n // use supplied formatter if provided, e.g. set filter items can have their own value formatters\n formatter = suppliedFormatter;\n }\n else if (useFormatterFromColumn) {\n // if row is pinned, give preference to the pinned formatter\n formatter = node && node.rowPinned && colDef.pinnedRowValueFormatter ?\n colDef.pinnedRowValueFormatter : colDef.valueFormatter;\n }\n if (formatter) {\n var params = {\n value: value,\n node: node,\n data: node ? node.data : null,\n colDef: colDef,\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n result = this.expressionService.evaluate(formatter, params);\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)\n if (result == null && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n };\n __decorate$12([\n Autowired('expressionService')\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate$12([\n Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedRowModel = /** @class */ (function (_super) {\n __extends$18(PinnedRowModel, _super);\n function PinnedRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedRowModel.prototype.init = function () {\n this.setPinnedTopRowData(this.gridOptionsWrapper.getPinnedTopRowData());\n this.setPinnedBottomRowData(this.gridOptionsWrapper.getPinnedBottomRowData());\n };\n PinnedRowModel.prototype.isEmpty = function (floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n return missingOrEmpty(rows);\n };\n PinnedRowModel.prototype.isRowsToRender = function (floating) {\n return !this.isEmpty(floating);\n };\n PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n if (missingOrEmpty(rows)) {\n return 0; // this should never happen, just in case, 0 is graceful failure\n }\n for (var i = 0; i < rows.length; i++) {\n var rowNode = rows[i];\n var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;\n // only need to range check against the top pixel, as we are going through the list\n // in order, first row to hit the pixel wins\n if (rowTopPixel >= pixel) {\n return i;\n }\n }\n return rows.length - 1;\n };\n PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {\n this.pinnedTopRows = this.createNodesFromData(rowData, true);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {\n this.pinnedBottomRows = this.createNodesFromData(rowData, false);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {\n var _this = this;\n var rowNodes = [];\n if (allData) {\n var nextRowTop_1 = 0;\n allData.forEach(function (dataItem, index) {\n var rowNode = new RowNode(_this.beans);\n rowNode.data = dataItem;\n var idPrefix = isTop ? RowNode.ID_PREFIX_TOP_PINNED : RowNode.ID_PREFIX_BOTTOM_PINNED;\n rowNode.id = idPrefix + index;\n rowNode.rowPinned = isTop ? Constants.PINNED_TOP : Constants.PINNED_BOTTOM;\n rowNode.setRowTop(nextRowTop_1);\n rowNode.setRowHeight(_this.gridOptionsWrapper.getRowHeightForNode(rowNode).height);\n rowNode.setRowIndex(index);\n nextRowTop_1 += rowNode.rowHeight;\n rowNodes.push(rowNode);\n });\n }\n return rowNodes;\n };\n PinnedRowModel.prototype.getPinnedTopRowData = function () {\n return this.pinnedTopRows;\n };\n PinnedRowModel.prototype.getPinnedBottomRowData = function () {\n return this.pinnedBottomRows;\n };\n PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {\n return this.getTotalHeight(this.pinnedTopRows);\n };\n PinnedRowModel.prototype.getPinnedTopRowCount = function () {\n return this.pinnedTopRows ? this.pinnedTopRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedTopRow = function (index) {\n return this.pinnedTopRows[index];\n };\n PinnedRowModel.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedBottomRows[index];\n };\n PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {\n if (missingOrEmpty(this.pinnedTopRows)) {\n return;\n }\n this.pinnedTopRows.forEach(callback);\n };\n PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {\n if (missingOrEmpty(this.pinnedBottomRows)) {\n return;\n }\n this.pinnedBottomRows.forEach(callback);\n };\n PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {\n return this.getTotalHeight(this.pinnedBottomRows);\n };\n PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {\n if (!rowNodes || rowNodes.length === 0) {\n return 0;\n }\n var lastNode = last(rowNodes);\n return lastNode.rowTop + lastNode.rowHeight;\n };\n __decorate$11([\n Autowired('beans')\n ], PinnedRowModel.prototype, \"beans\", void 0);\n __decorate$11([\n PostConstruct\n ], PinnedRowModel.prototype, \"init\", null);\n PinnedRowModel = __decorate$11([\n Bean('pinnedRowModel')\n ], PinnedRowModel);\n return PinnedRowModel;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ServerSideTransactionResultStatus;\n(function (ServerSideTransactionResultStatus) {\n /** Transaction was successfully applied */\n ServerSideTransactionResultStatus[\"Applied\"] = \"Applied\";\n /**\n * Store was not found, transaction not applied.\n * Either invalid route, or the parent row has not yet been expanded.\n */\n ServerSideTransactionResultStatus[\"StoreNotFound\"] = \"StoreNotFound\";\n /**\n * Store is loading, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoading\"] = \"StoreLoading\";\n /**\n * Store is loading (as max loads exceeded), transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreWaitingToLoad\"] = \"StoreWaitingToLoad\";\n /**\n * Store load attempt failed, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoadingFailed\"] = \"StoreLoadingFailed\";\n /**\n * Store is type Partial, which doesn't accept transactions\n */\n ServerSideTransactionResultStatus[\"StoreWrongType\"] = \"StoreWrongType\";\n /**\n * Transaction was cancelled, due to grid.\n * Callback isApplyServerSideTransaction() returning false\n */\n ServerSideTransactionResultStatus[\"Cancelled\"] = \"Cancelled\";\n})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// when doing transactions, or change detection, and grouping is present\n// in the data, there is no need for the ClientSideRowModel to update each\n// group after an update, ony parts that were impacted by the change.\n// this class keeps track of all groups that were impacted by a transaction.\n// the the different CSRM operations (filter, sort etc) use the forEach method\n// to visit each group that was changed.\nvar ChangedPath = /** @class */ (function () {\n function ChangedPath(keepingColumns, rootNode) {\n // whether changed path is active of not. it is active when a) doing\n // a transaction update or b) doing change detection. if we are doing\n // a CSRM refresh for other reasons (after sort or filter, or user calling\n // setRowData() without delta mode) then we are not active. we are also\n // marked as not active if secondary columns change in pivot (as this impacts\n // aggregations)\n this.active = true;\n // for each node in the change path, we also store which columns need\n // to be re-aggregated.\n this.nodeIdsToColumns = {};\n // for quick lookup, all items in the change path are mapped by nodeId\n this.mapToItems = {};\n this.keepingColumns = keepingColumns;\n this.pathRoot = {\n rowNode: rootNode,\n children: null\n };\n this.mapToItems[rootNode.id] = this.pathRoot;\n }\n // can be set inactive by:\n // a) ClientSideRowModel, if no transactions or\n // b) PivotService, if secondary columns changed\n ChangedPath.prototype.setInactive = function () {\n this.active = false;\n };\n ChangedPath.prototype.isActive = function () {\n return this.active;\n };\n ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {\n if (pathItem.children) {\n for (var i = 0; i < pathItem.children.length; i++) {\n this.depthFirstSearchChangedPath(pathItem.children[i], callback);\n }\n }\n callback(pathItem.rowNode);\n };\n ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n if (childNode.childrenAfterGroup) {\n this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);\n }\n else if (traverseEverything) {\n callback(childNode);\n }\n }\n }\n callback(rowNode);\n };\n // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback\n // will be called for child nodes in addition to parent nodes.\n ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes, includeUnchangedNodes) {\n if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }\n if (includeUnchangedNodes === void 0) { includeUnchangedNodes = false; }\n if (this.active && !includeUnchangedNodes) {\n // if we are active, then use the change path to callback\n // only for updated groups\n this.depthFirstSearchChangedPath(this.pathRoot, callback);\n }\n else {\n // we are not active, so callback for everything, walk the entire path\n this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);\n }\n };\n ChangedPath.prototype.executeFromRootNode = function (callback) {\n callback(this.pathRoot.rowNode);\n };\n ChangedPath.prototype.createPathItems = function (rowNode) {\n var pointer = rowNode;\n var newEntryCount = 0;\n while (!this.mapToItems[pointer.id]) {\n var newEntry = {\n rowNode: pointer,\n children: null\n };\n this.mapToItems[pointer.id] = newEntry;\n newEntryCount++;\n pointer = pointer.parent;\n }\n return newEntryCount;\n };\n ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {\n var _this = this;\n if (!this.keepingColumns || !columns) {\n return;\n }\n var pointer = rowNode;\n while (pointer) {\n // if columns, add the columns in all the way to parent, merging\n // in any other columns that might be there already\n if (!this.nodeIdsToColumns[pointer.id]) {\n this.nodeIdsToColumns[pointer.id] = {};\n }\n columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });\n pointer = pointer.parent;\n }\n };\n ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {\n var pointer = rowNode;\n for (var i = 0; i < newEntryCount; i++) {\n var thisItem = this.mapToItems[pointer.id];\n var parentItem = this.mapToItems[pointer.parent.id];\n if (!parentItem.children) {\n parentItem.children = [];\n }\n parentItem.children.push(thisItem);\n pointer = pointer.parent;\n }\n };\n // called by\n // 1) change detection (provides cols) and\n // 2) groupStage if doing transaction update (doesn't provide cols)\n ChangedPath.prototype.addParentNode = function (rowNode, columns) {\n if (!rowNode || rowNode.isRowPinned()) {\n return;\n }\n // we cannot do both steps below in the same loop as\n // the second loop has a dependency on the first loop.\n // ie the hierarchy cannot be stitched up yet because\n // we don't have it built yet\n // create the new PathItem objects.\n var newEntryCount = this.createPathItems(rowNode);\n // link in the node items\n this.linkPathItems(rowNode, newEntryCount);\n // update columns\n this.populateColumnsMap(rowNode, columns);\n };\n ChangedPath.prototype.canSkip = function (rowNode) {\n return this.active && !this.mapToItems[rowNode.id];\n };\n ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return valueColumns;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });\n return result;\n };\n ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return null;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });\n return result;\n };\n return ChangedPath;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowNodeBlock = /** @class */ (function (_super) {\n __extends$17(RowNodeBlock, _super);\n function RowNodeBlock(id) {\n var _this = _super.call(this) || this;\n _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n _this.version = 0;\n _this.id = id;\n return _this;\n }\n RowNodeBlock.prototype.getId = function () {\n return this.id;\n };\n RowNodeBlock.prototype.load = function () {\n this.state = RowNodeBlock.STATE_LOADING;\n this.loadFromDatasource();\n };\n RowNodeBlock.prototype.getVersion = function () {\n return this.version;\n };\n RowNodeBlock.prototype.setStateWaitingToLoad = function () {\n // in case any current loads in progress, this will have their results ignored\n this.version++;\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n };\n RowNodeBlock.prototype.getState = function () {\n return this.state;\n };\n RowNodeBlock.prototype.pageLoadFailed = function (version) {\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_FAILED;\n this.processServerFail();\n }\n this.dispatchLoadCompleted(false);\n };\n RowNodeBlock.prototype.success = function (version, params) {\n this.successCommon(version, params);\n };\n RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {\n this.successCommon(version, { rowData: rows, rowCount: lastRow });\n };\n RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {\n // thisIsMostRecentRequest - if block was refreshed, then another request\n // could of been sent after this one.\n var thisIsMostRecentRequest = version === this.version;\n // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed\n // and new blocks created. so data loads of old blocks are discarded.\n var weAreNotDestroyed = this.isAlive();\n return thisIsMostRecentRequest && weAreNotDestroyed;\n };\n RowNodeBlock.prototype.successCommon = function (version, params) {\n // need to dispatch load complete before processing the data, as PaginationComp checks\n // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to\n // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)\n this.dispatchLoadCompleted();\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_LOADED;\n this.processServerResult(params);\n }\n };\n RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {\n if (success === void 0) { success = true; }\n // we fire event regardless of processing data or now, as we want\n // the concurrentLoadRequests count to be reduced in BlockLoader\n var event = {\n type: RowNodeBlock.EVENT_LOAD_COMPLETE,\n success: success,\n block: this\n };\n this.dispatchEvent(event);\n };\n RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';\n RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';\n RowNodeBlock.STATE_LOADING = 'loading';\n RowNodeBlock.STATE_LOADED = 'loaded';\n RowNodeBlock.STATE_FAILED = 'failed';\n return RowNodeBlock;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$6 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader = /** @class */ (function (_super) {\n __extends$16(RowNodeBlockLoader, _super);\n function RowNodeBlockLoader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.activeBlockLoadsCount = 0;\n _this.blocks = [];\n _this.active = true;\n return _this;\n }\n RowNodeBlockLoader_1 = RowNodeBlockLoader;\n RowNodeBlockLoader.prototype.postConstruct = function () {\n this.maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();\n var blockLoadDebounceMillis = this.gridOptionsWrapper.getBlockLoadDebounceMillis();\n if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {\n this.checkBlockToLoadDebounce = _.debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);\n }\n };\n RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('RowNodeBlockLoader');\n };\n RowNodeBlockLoader.prototype.addBlock = function (block) {\n this.blocks.push(block);\n // note that we do not remove this listener when removing the block. this is because the\n // cache can get destroyed (and containing blocks) when a block is loading. however the loading block\n // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.\n block.addEventListener(RowNodeBlock.EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));\n this.checkBlockToLoad();\n };\n RowNodeBlockLoader.prototype.removeBlock = function (block) {\n _.removeFromArray(this.blocks, block);\n };\n RowNodeBlockLoader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.active = false;\n };\n RowNodeBlockLoader.prototype.loadComplete = function () {\n this.activeBlockLoadsCount--;\n this.checkBlockToLoad();\n if (this.activeBlockLoadsCount == 0) {\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });\n }\n };\n RowNodeBlockLoader.prototype.checkBlockToLoad = function () {\n if (this.checkBlockToLoadDebounce) {\n this.checkBlockToLoadDebounce();\n }\n else {\n this.performCheckBlocksToLoad();\n }\n };\n RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {\n if (!this.active) {\n return;\n }\n this.printCacheStatus();\n if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {\n this.logger.log(\"checkBlockToLoad: max loads exceeded\");\n return;\n }\n var loadAvailability = this.maxConcurrentRequests !== undefined ? this.maxConcurrentRequests - this.activeBlockLoadsCount : undefined;\n var blocksToLoad = this.blocks.filter(function (block) { return (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD); }).slice(0, loadAvailability);\n this.activeBlockLoadsCount += blocksToLoad.length;\n blocksToLoad.forEach(function (block) { return block.load(); });\n this.printCacheStatus();\n };\n RowNodeBlockLoader.prototype.getBlockState = function () {\n var result = {};\n this.blocks.forEach(function (block) {\n var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;\n result[id] = state;\n });\n return result;\n };\n RowNodeBlockLoader.prototype.printCacheStatus = function () {\n if (this.logger.isLogging()) {\n this.logger.log(\"printCacheStatus: activePageLoadsCount = \" + this.activeBlockLoadsCount + \",\"\n + (\" blocks = \" + JSON.stringify(this.getBlockState())));\n }\n };\n RowNodeBlockLoader.prototype.isLoading = function () {\n return this.activeBlockLoadsCount > 0;\n };\n var RowNodeBlockLoader_1;\n RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n __decorate$10([\n PostConstruct\n ], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n __decorate$10([\n __param$6(0, Qualifier('loggerFactory'))\n ], RowNodeBlockLoader.prototype, \"setBeans\", null);\n RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate$10([\n Bean('rowNodeBlockLoader')\n ], RowNodeBlockLoader);\n return RowNodeBlockLoader;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationProxy = /** @class */ (function (_super) {\n __extends$15(PaginationProxy, _super);\n function PaginationProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.currentPage = 0;\n _this.topDisplayedRowIndex = 0;\n _this.bottomDisplayedRowIndex = 0;\n _this.pixelOffset = 0;\n _this.masterRowCount = 0;\n return _this;\n }\n PaginationProxy.prototype.postConstruct = function () {\n this.active = this.gridOptionsWrapper.isPagination();\n this.paginateChildRows = this.gridOptionsWrapper.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'paginationPageSize', this.onPaginationPageSizeChanged.bind(this));\n this.onModelUpdated();\n };\n PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());\n if (res) {\n this.calculatePages();\n }\n return res;\n };\n PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,\n newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,\n newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,\n keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.onPaginationPageSizeChanged = function () {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: false,\n newData: false,\n newPage: false,\n // important to keep rendered rows, otherwise every time grid is resized,\n // we would destroy all the rows.\n keepRenderedRows: true\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.goToPage = function (page) {\n if (!this.active || this.currentPage === page) {\n return;\n }\n this.currentPage = page;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: true\n };\n this.onModelUpdated(event);\n };\n PaginationProxy.prototype.getPixelOffset = function () {\n return this.pixelOffset;\n };\n PaginationProxy.prototype.getRow = function (index) {\n return this.rowModel.getRow(index);\n };\n PaginationProxy.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {\n return this.rowModel.getRowIndexAtPixel(pixel);\n };\n PaginationProxy.prototype.getCurrentPageHeight = function () {\n if (missing(this.topRowBounds) || missing(this.bottomRowBounds)) {\n return 0;\n }\n return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);\n };\n PaginationProxy.prototype.getCurrentPagePixelRange = function () {\n var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;\n var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;\n return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };\n };\n PaginationProxy.prototype.isRowPresent = function (rowNode) {\n if (!this.rowModel.isRowPresent(rowNode)) {\n return false;\n }\n var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;\n return nodeIsInPage;\n };\n PaginationProxy.prototype.isEmpty = function () {\n return this.rowModel.isEmpty();\n };\n PaginationProxy.prototype.isRowsToRender = function () {\n return this.rowModel.isRowsToRender();\n };\n PaginationProxy.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.rowModel.getNodesInRangeForSelection(firstInRange, lastInRange);\n };\n PaginationProxy.prototype.forEachNode = function (callback) {\n return this.rowModel.forEachNode(callback);\n };\n PaginationProxy.prototype.getType = function () {\n return this.rowModel.getType();\n };\n PaginationProxy.prototype.getRowBounds = function (index) {\n var res = this.rowModel.getRowBounds(index);\n res.rowIndex = index;\n return res;\n };\n PaginationProxy.prototype.getPageFirstRow = function () {\n return this.topRowBounds ? this.topRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getPageLastRow = function () {\n return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getRowCount = function () {\n return this.rowModel.getRowCount();\n };\n PaginationProxy.prototype.getPageForIndex = function (index) {\n return Math.floor(index / this.pageSize);\n };\n PaginationProxy.prototype.goToPageWithIndex = function (index) {\n if (!this.active) {\n return;\n }\n var pageNumber = this.getPageForIndex(index);\n this.goToPage(pageNumber);\n };\n PaginationProxy.prototype.isRowInPage = function (row) {\n if (!this.active) {\n return true;\n }\n var rowPage = this.getPageForIndex(row.rowIndex);\n return rowPage === this.currentPage;\n };\n PaginationProxy.prototype.isLastPageFound = function () {\n return this.rowModel.isLastRowIndexKnown();\n };\n PaginationProxy.prototype.getCurrentPage = function () {\n return this.currentPage;\n };\n PaginationProxy.prototype.goToNextPage = function () {\n this.goToPage(this.currentPage + 1);\n };\n PaginationProxy.prototype.goToPreviousPage = function () {\n this.goToPage(this.currentPage - 1);\n };\n PaginationProxy.prototype.goToFirstPage = function () {\n this.goToPage(0);\n };\n PaginationProxy.prototype.goToLastPage = function () {\n var rowCount = this.rowModel.getRowCount();\n var lastPage = Math.floor(rowCount / this.pageSize);\n this.goToPage(lastPage);\n };\n PaginationProxy.prototype.getPageSize = function () {\n return this.pageSize;\n };\n PaginationProxy.prototype.getTotalPages = function () {\n return this.totalPages;\n };\n PaginationProxy.prototype.setPageSize = function () {\n // show put this into super class\n this.pageSize = this.gridOptionsWrapper.getPaginationPageSize();\n if (this.pageSize == null || this.pageSize < 1) {\n this.pageSize = 100;\n }\n };\n PaginationProxy.prototype.calculatePages = function () {\n if (this.active) {\n this.setPageSize();\n if (this.paginateChildRows) {\n this.calculatePagesAllRows();\n }\n else {\n this.calculatePagesMasterRowsOnly();\n }\n }\n else {\n this.calculatedPagesNotActive();\n }\n this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);\n if (this.topRowBounds) {\n this.topRowBounds.rowIndex = this.topDisplayedRowIndex;\n }\n this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);\n if (this.bottomRowBounds) {\n this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;\n }\n this.setPixelOffset(exists(this.topRowBounds) ? this.topRowBounds.rowTop : 0);\n };\n PaginationProxy.prototype.setPixelOffset = function (value) {\n if (this.pixelOffset === value) {\n return;\n }\n this.pixelOffset = value;\n this.eventService.dispatchEvent({ type: Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });\n };\n PaginationProxy.prototype.setZeroRows = function () {\n this.masterRowCount = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = -1;\n this.currentPage = 0;\n this.totalPages = 0;\n };\n PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {\n // const csrm = this.rowModel;\n // const rootNode = csrm.getRootNode();\n // const masterRows = rootNode.childrenAfterSort;\n this.masterRowCount = this.rowModel.getTopLevelRowCount();\n // we say <=0 (rather than =0) as viewport returns -1 when no rows\n if (this.masterRowCount <= 0) {\n this.setZeroRows();\n return;\n }\n var masterLastRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n var masterPageStartIndex = this.pageSize * this.currentPage;\n var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (masterPageEndIndex > masterLastRowIndex) {\n masterPageEndIndex = masterLastRowIndex;\n }\n this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);\n // masterRows[masterPageStartIndex].rowIndex;\n if (masterPageEndIndex === masterLastRowIndex) {\n // if showing the last master row, then we want to show the very last row of the model\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n else {\n var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);\n //masterRows[masterPageEndIndex + 1].rowIndex;\n // this gets the index of the last child - eg current row is open, we want to display all children,\n // the index of the last child is one less than the index of the next parent row.\n this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;\n }\n };\n PaginationProxy.prototype.getMasterRowCount = function () {\n return this.masterRowCount;\n };\n PaginationProxy.prototype.calculatePagesAllRows = function () {\n this.masterRowCount = this.rowModel.getRowCount();\n if (this.masterRowCount === 0) {\n this.setZeroRows();\n return;\n }\n var maxRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n this.topDisplayedRowIndex = this.pageSize * this.currentPage;\n this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (this.bottomDisplayedRowIndex > maxRowIndex) {\n this.bottomDisplayedRowIndex = maxRowIndex;\n }\n };\n PaginationProxy.prototype.calculatedPagesNotActive = function () {\n this.pageSize = this.rowModel.getRowCount();\n this.totalPages = 1;\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n };\n __decorate$$([\n Autowired('rowModel')\n ], PaginationProxy.prototype, \"rowModel\", void 0);\n __decorate$$([\n PostConstruct\n ], PaginationProxy.prototype, \"postConstruct\", null);\n PaginationProxy = __decorate$$([\n Bean('paginationProxy')\n ], PaginationProxy);\n return PaginationProxy;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StylingService = /** @class */ (function (_super) {\n __extends$14(StylingService, _super);\n function StylingService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {\n this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);\n this.processStaticCellClasses(colDef, params, onApplicableClass);\n };\n StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {\n if (classRules == null) {\n return;\n }\n var classNames = Object.keys(classRules);\n var classesToApply = {};\n var classesToRemove = {};\n var _loop_1 = function (i) {\n var className = classNames[i];\n var rule = classRules[className];\n var resultOfRule;\n if (typeof rule === 'string') {\n resultOfRule = this_1.expressionService.evaluate(rule, params);\n }\n else if (typeof rule === 'function') {\n resultOfRule = rule(params);\n }\n // in case className = 'my-class1 my-class2', we need to split into individual class names\n className.split(' ').forEach(function (singleClass) {\n if (singleClass == null || singleClass.trim() == '') {\n return;\n }\n resultOfRule ? classesToApply[singleClass] = true : classesToRemove[singleClass] = true;\n });\n };\n var this_1 = this;\n for (var i = 0; i < classNames.length; i++) {\n _loop_1(i);\n }\n // we remove all classes first, then add all classes second,\n // in case a class appears in more than one rule, this means it will be added\n // if appears in at least one truthy rule\n if (onNotApplicableClass) {\n Object.keys(classesToRemove).forEach(onNotApplicableClass);\n }\n Object.keys(classesToApply).forEach(onApplicableClass);\n };\n StylingService.prototype.getStaticCellClasses = function (colDef, params) {\n var cellClass = colDef.cellClass;\n if (!cellClass) {\n return [];\n }\n var classOrClasses;\n if (typeof cellClass === 'function') {\n var cellClassFunc = cellClass;\n classOrClasses = cellClassFunc(params);\n }\n else {\n classOrClasses = cellClass;\n }\n if (typeof classOrClasses === 'string') {\n classOrClasses = [classOrClasses];\n }\n return classOrClasses || [];\n };\n StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {\n var classOrClasses = this.getStaticCellClasses(colDef, params);\n classOrClasses.forEach(function (cssClassItem) {\n onApplicableClass(cssClassItem);\n });\n };\n __decorate$_([\n Autowired('expressionService')\n ], StylingService.prototype, \"expressionService\", void 0);\n StylingService = __decorate$_([\n Bean('stylingService')\n ], StylingService);\n return StylingService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgRadioButton = /** @class */ (function (_super) {\n __extends$13(AgRadioButton, _super);\n function AgRadioButton(config) {\n return _super.call(this, config, 'ag-radio-button', 'radio') || this;\n }\n AgRadioButton.prototype.isSelected = function () {\n return this.eInput.checked;\n };\n AgRadioButton.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n // do not allow an active radio button to be deselected\n if (!this.isSelected()) {\n this.setValue(true);\n }\n };\n AgRadioButton.prototype.addInputListeners = function () {\n _super.prototype.addInputListeners.call(this);\n this.addManagedListener(this.eventService, Events.EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));\n };\n /**\n * This ensures that if another radio button in the same named group is selected, we deselect this radio button.\n * By default the browser does this for you, but we are managing classes ourselves in order to ensure input\n * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,\n * not deselected, so we need to use our own event.\n */\n AgRadioButton.prototype.onChange = function (event) {\n if (event.selected &&\n event.name &&\n this.eInput.name &&\n this.eInput.name === event.name &&\n event.id &&\n this.eInput.id !== event.id) {\n this.setValue(false, true);\n }\n };\n return AgRadioButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgToggleButton = /** @class */ (function (_super) {\n __extends$12(AgToggleButton, _super);\n function AgToggleButton(config) {\n return _super.call(this, config, 'ag-toggle-button') || this;\n }\n AgToggleButton.prototype.setValue = function (value, silent) {\n _super.prototype.setValue.call(this, value, silent);\n this.addOrRemoveCssClass('ag-selected', this.getValue());\n return this;\n };\n return AgToggleButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextField = /** @class */ (function (_super) {\n __extends$11(AgInputTextField, _super);\n function AgInputTextField(config, className, inputType) {\n if (className === void 0) { className = 'ag-text-field'; }\n if (inputType === void 0) { inputType = 'text'; }\n return _super.call(this, config, className, inputType) || this;\n }\n AgInputTextField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.config.allowedCharPattern) {\n this.preventDisallowedCharacters();\n }\n };\n AgInputTextField.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n if (this.eInput.value !== value) {\n this.eInput.value = exists(value) ? value : '';\n }\n return ret;\n };\n AgInputTextField.prototype.preventDisallowedCharacters = function () {\n var pattern = new RegExp(\"[\" + this.config.allowedCharPattern + \"]\");\n var preventDisallowedCharacters = function (event) {\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);\n this.addManagedListener(this.eInput, 'paste', function (e) {\n var _a;\n var text = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');\n if (text && text.split('').some(function (c) { return !pattern.test(c); })) {\n e.preventDefault();\n }\n });\n };\n return AgInputTextField;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextArea = /** @class */ (function (_super) {\n __extends$10(AgInputTextArea, _super);\n function AgInputTextArea(config) {\n return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;\n }\n AgInputTextArea.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n AgInputTextArea.prototype.setCols = function (cols) {\n this.eInput.cols = cols;\n return this;\n };\n AgInputTextArea.prototype.setRows = function (rows) {\n this.eInput.rows = rows;\n return this;\n };\n return AgInputTextArea;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputNumberField = /** @class */ (function (_super) {\n __extends$$(AgInputNumberField, _super);\n function AgInputNumberField(config) {\n return _super.call(this, config, 'ag-number-field', 'number') || this;\n }\n AgInputNumberField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'blur', function () {\n var floatedValue = parseFloat(_this.eInput.value);\n var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());\n if (_this.value !== value) {\n _this.setValue(value);\n }\n });\n this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));\n this.eInput.step = 'any';\n };\n AgInputNumberField.prototype.onWheel = function (e) {\n // Prevent default scroll events from incrementing / decrementing the input, since its inconsistent between browsers\n if (document.activeElement === this.eInput) {\n e.preventDefault();\n }\n };\n AgInputNumberField.prototype.normalizeValue = function (value) {\n if (value === '') {\n return '';\n }\n if (this.precision) {\n value = this.adjustPrecision(value);\n }\n var val = parseFloat(value);\n if (this.min != null && val < this.min) {\n value = this.min.toString();\n }\n else if (this.max != null && val > this.max) {\n value = this.max.toString();\n }\n return value;\n };\n AgInputNumberField.prototype.adjustPrecision = function (value) {\n if (this.precision) {\n var floatString = parseFloat(value).toFixed(this.precision);\n value = parseFloat(floatString).toString();\n }\n return value;\n };\n AgInputNumberField.prototype.setMin = function (min) {\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputNumberField.prototype.setMax = function (max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n };\n AgInputNumberField.prototype.setPrecision = function (precision) {\n this.precision = precision;\n return this;\n };\n AgInputNumberField.prototype.setStep = function (step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n addOrRemoveAttribute(this.eInput, 'step', step);\n return this;\n };\n AgInputNumberField.prototype.setValue = function (value, silent) {\n value = this.adjustPrecision(value);\n var normalizedValue = this.normalizeValue(value);\n if (value != normalizedValue) {\n return this;\n }\n return _super.prototype.setValue.call(this, value, silent);\n };\n return AgInputNumberField;\n}(AgInputTextField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputRange = /** @class */ (function (_super) {\n __extends$_(AgInputRange, _super);\n function AgInputRange(config) {\n return _super.call(this, config, 'ag-range-field', 'range') || this;\n }\n AgInputRange.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.config, min = _a.min, max = _a.max, step = _a.step;\n if (min != null) {\n this.setMinValue(min);\n }\n if (max != null) {\n this.setMaxValue(max);\n }\n this.setStep(step || 1);\n };\n AgInputRange.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) {\n var value = e.target.value;\n _this.setValue(value);\n });\n };\n AgInputRange.prototype.setMinValue = function (value) {\n this.min = value;\n this.eInput.setAttribute('min', value.toString());\n return this;\n };\n AgInputRange.prototype.setMaxValue = function (value) {\n this.max = value;\n this.eInput.setAttribute('max', value.toString());\n return this;\n };\n AgInputRange.prototype.setStep = function (value) {\n this.eInput.setAttribute('step', value.toString());\n return this;\n };\n AgInputRange.prototype.setValue = function (value, silent) {\n if (this.min != null) {\n value = Math.max(parseFloat(value), this.min).toString();\n }\n if (this.max != null) {\n value = Math.min(parseFloat(value), this.max).toString();\n }\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgInputRange;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgSlider = /** @class */ (function (_super) {\n __extends$Z(AgSlider, _super);\n function AgSlider(config) {\n var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;\n _this.labelAlignment = 'top';\n return _this;\n }\n AgSlider.prototype.init = function () {\n this.eSlider.addCssClass('ag-slider-field');\n };\n AgSlider.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n var eventChanged = AgAbstractField.EVENT_CHANGED;\n this.addManagedListener(this.eText, eventChanged, function () {\n var textValue = parseFloat(_this.eText.getValue());\n _this.eSlider.setValue(textValue.toString(), true);\n callbackFn(textValue || 0);\n });\n this.addManagedListener(this.eSlider, eventChanged, function () {\n var sliderValue = _this.eSlider.getValue();\n _this.eText.setValue(sliderValue, true);\n callbackFn(parseFloat(sliderValue));\n });\n return this;\n };\n AgSlider.prototype.setSliderWidth = function (width) {\n this.eSlider.setWidth(width);\n return this;\n };\n AgSlider.prototype.setTextFieldWidth = function (width) {\n this.eText.setWidth(width);\n return this;\n };\n AgSlider.prototype.setMinValue = function (minValue) {\n this.eSlider.setMinValue(minValue);\n this.eText.setMin(minValue);\n return this;\n };\n AgSlider.prototype.setMaxValue = function (maxValue) {\n this.eSlider.setMaxValue(maxValue);\n this.eText.setMax(maxValue);\n return this;\n };\n AgSlider.prototype.getValue = function () {\n return this.eText.getValue();\n };\n AgSlider.prototype.setValue = function (value) {\n if (this.getValue() === value) {\n return this;\n }\n this.eText.setValue(value, true);\n this.eSlider.setValue(value, true);\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n return this;\n };\n AgSlider.prototype.setStep = function (step) {\n this.eSlider.setStep(step);\n this.eText.setStep(step);\n return this;\n };\n AgSlider.TEMPLATE = \"
\\n \\n
\\n \\n \\n
\\n
\";\n __decorate$Z([\n RefSelector('eLabel')\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate$Z([\n RefSelector('eSlider')\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate$Z([\n RefSelector('eText')\n ], AgSlider.prototype, \"eText\", void 0);\n __decorate$Z([\n PostConstruct\n ], AgSlider.prototype, \"init\", null);\n return AgSlider;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAngleSelect = /** @class */ (function (_super) {\n __extends$Y(AgAngleSelect, _super);\n function AgAngleSelect(config) {\n var _this = _super.call(this, config, AgAngleSelect.TEMPLATE) || this;\n _this.radius = 0;\n _this.offsetX = 0;\n _this.offsetY = 0;\n return _this;\n }\n AgAngleSelect.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.dragListener = {\n eElement: this.eParentCircle,\n dragStartPixels: 0,\n onDragStart: function (e) {\n _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();\n },\n onDragging: function (e) { return _this.calculateAngleDrag(e); },\n onDragStop: function () { }\n };\n this.dragService.addDragSource(this.dragListener);\n this.eAngleValue\n .setLabel('')\n .setLabelWidth(5)\n .setInputWidth(45)\n .setMin(0)\n .setMax(360)\n .setValue(\"\" + this.degrees)\n .onValueChange(function (value) {\n if (value == null || value === '') {\n value = '0';\n }\n value = _this.eAngleValue.normalizeValue(value);\n var floatValue = parseFloat(value);\n if (floatValue > 180) {\n floatValue = floatValue - 360;\n }\n _this.setValue(floatValue);\n });\n this.updateNumberInput();\n if (exists(this.getValue())) {\n this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());\n }\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n if (_this.eAngleValue.getInputElement().contains(eDocument.activeElement)) {\n return;\n }\n _this.updateNumberInput();\n });\n };\n AgAngleSelect.prototype.updateNumberInput = function () {\n var normalizedValue = this.normalizeNegativeValue(this.getValue());\n this.eAngleValue.setValue(normalizedValue.toString());\n };\n AgAngleSelect.prototype.positionChildCircle = function (radians) {\n var rect = this.parentCircleRect || { width: 24, height: 24 };\n var eChildCircle = this.eChildCircle;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n eChildCircle.style.left = centerX + Math.cos(radians) * 8 + \"px\";\n eChildCircle.style.top = centerY + Math.sin(radians) * 8 + \"px\";\n };\n AgAngleSelect.prototype.calculatePolar = function () {\n var x = this.offsetX;\n var y = this.offsetY;\n var radians = Math.atan2(y, x);\n this.degrees = this.toDegrees(radians);\n this.radius = Math.sqrt((x * x) + (y * y));\n this.positionChildCircle(radians);\n };\n AgAngleSelect.prototype.calculateCartesian = function () {\n var radians = this.toRadians(this.getValue());\n var radius = this.getRadius();\n this\n .setOffsetX(Math.cos(radians) * radius)\n .setOffsetY(Math.sin(radians) * radius);\n };\n AgAngleSelect.prototype.setOffsetX = function (offset) {\n if (this.offsetX !== offset) {\n this.offsetX = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.setOffsetY = function (offset) {\n if (this.offsetY !== offset) {\n this.offsetY = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.calculateAngleDrag = function (e) {\n var rect = this.parentCircleRect;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n var x = e.clientX - rect.left;\n var y = e.clientY - rect.top;\n var dx = x - centerX;\n var dy = y - centerY;\n var radians = Math.atan2(dy, dx);\n this.setValue(radians, true);\n };\n AgAngleSelect.prototype.toDegrees = function (radians) {\n return radians / Math.PI * 180;\n };\n AgAngleSelect.prototype.toRadians = function (degrees) {\n return degrees / 180 * Math.PI;\n };\n AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {\n return degrees < 0 ? 360 + degrees : degrees;\n };\n AgAngleSelect.prototype.normalizeAngle180 = function (radians) {\n radians %= Math.PI * 2;\n if (radians < -Math.PI) {\n radians += Math.PI * 2;\n }\n else if (radians >= Math.PI) {\n radians -= Math.PI * 2;\n }\n return radians;\n };\n AgAngleSelect.prototype.getRadius = function () {\n return this.radius;\n };\n AgAngleSelect.prototype.setRadius = function (r) {\n if (this.radius === r) {\n return this;\n }\n this.radius = r;\n this.calculateCartesian();\n return this;\n };\n AgAngleSelect.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () {\n callbackFn(_this.degrees);\n });\n return this;\n };\n AgAngleSelect.prototype.getValue = function (radians) {\n return radians ? this.toRadians(this.degrees) : this.degrees;\n };\n AgAngleSelect.prototype.setValue = function (degrees, radians) {\n var radiansValue;\n if (!radians) {\n radiansValue = this.normalizeAngle180(this.toRadians(degrees));\n }\n else {\n radiansValue = degrees;\n }\n degrees = this.toDegrees(radiansValue);\n if (this.degrees !== degrees) {\n this.degrees = Math.floor(degrees);\n this.calculateCartesian();\n this.positionChildCircle(radiansValue);\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAngleSelect.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAngleSelect.prototype.setDisabled = function (disabled) {\n _super.prototype.setDisabled.call(this, disabled);\n this.eAngleValue.setDisabled(disabled);\n return this;\n };\n AgAngleSelect.prototype.destroy = function () {\n this.dragService.removeDragSource(this.dragListener);\n _super.prototype.destroy.call(this);\n };\n AgAngleSelect.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\";\n __decorate$Y([\n RefSelector('eLabel')\n ], AgAngleSelect.prototype, \"eLabel\", void 0);\n __decorate$Y([\n RefSelector('eParentCircle')\n ], AgAngleSelect.prototype, \"eParentCircle\", void 0);\n __decorate$Y([\n RefSelector('eChildCircle')\n ], AgAngleSelect.prototype, \"eChildCircle\", void 0);\n __decorate$Y([\n RefSelector('eAngleValue')\n ], AgAngleSelect.prototype, \"eAngleValue\", void 0);\n __decorate$Y([\n Autowired('dragService')\n ], AgAngleSelect.prototype, \"dragService\", void 0);\n return AgAngleSelect;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar AgColorPanel = /** @class */ (function (_super) {\n __extends$X(AgColorPanel, _super);\n function AgColorPanel(config) {\n var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;\n _this.H = 1; // in the [0, 1] range\n _this.S = 1; // in the [0, 1] range\n _this.B = 1; // in the [0, 1] range\n _this.A = 1; // in the [0, 1] range\n _this.isSpectrumDragging = false;\n _this.isSpectrumHueDragging = false;\n _this.isSpectrumAlphaDragging = false;\n _this.colorChanged = false;\n _this.picker = config.picker;\n return _this;\n }\n AgColorPanel.prototype.postConstruct = function () {\n var eGui = this.getGui();\n this.initRecentColors();\n this.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));\n this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));\n this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumAlphaMove.bind(this));\n // Listening to `mouseup` on the document on purpose. The user might release the mouse button\n // outside the UI control. When the mouse returns back to the control's area, the dragging\n // of the thumb is not expected and seen as a bug.\n this.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));\n this.addManagedListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));\n };\n AgColorPanel.prototype.refreshSpectrumRect = function () {\n return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshHueRect = function () {\n return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshAlphaRect = function () {\n return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();\n };\n AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {\n this.refreshSpectrumRect();\n this.isSpectrumDragging = true;\n this.moveDragger(e);\n };\n AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {\n if (this.isSpectrumDragging) {\n this.moveDragger(e);\n }\n };\n AgColorPanel.prototype.onSpectrumHueDown = function (e) {\n this.refreshHueRect();\n this.isSpectrumHueDragging = true;\n this.moveHueSlider(e);\n };\n AgColorPanel.prototype.onSpectrumHueMove = function (e) {\n if (this.isSpectrumHueDragging) {\n this.moveHueSlider(e);\n }\n };\n AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {\n this.refreshAlphaRect();\n this.isSpectrumAlphaDragging = true;\n this.moveAlphaSlider(e);\n };\n AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {\n if (this.isSpectrumAlphaDragging) {\n this.moveAlphaSlider(e);\n }\n };\n AgColorPanel.prototype.onMouseUp = function () {\n this.isSpectrumDragging = false;\n this.isSpectrumHueDragging = false;\n this.isSpectrumAlphaDragging = false;\n };\n AgColorPanel.prototype.moveDragger = function (e) {\n var valRect = this.spectrumValRect;\n if (valRect) {\n var x = e.clientX - valRect.left;\n var y = e.clientY - valRect.top;\n x = Math.max(x, 0);\n x = Math.min(x, valRect.width);\n y = Math.max(y, 0);\n y = Math.min(y, valRect.height);\n this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);\n }\n };\n AgColorPanel.prototype.moveHueSlider = function (e) {\n var hueRect = this.spectrumHueRect;\n if (hueRect) {\n var slider = this.spectrumHueSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - hueRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, hueRect.width);\n this.H = 1 - x / hueRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.moveAlphaSlider = function (e) {\n var alphaRect = this.spectrumAlphaRect;\n if (alphaRect) {\n var slider = this.spectrumAlphaSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - alphaRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, alphaRect.width);\n this.A = x / alphaRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.update = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var spectrumColor = Color.fromHSB(this.H * 360, 1, 1);\n var rgbaColor = color.toRgbaString();\n // the recent color list needs to know color has actually changed\n var colorPicker = this.picker;\n var existingColor = Color.fromString(colorPicker.getValue());\n if (existingColor.toRgbaString() !== rgbaColor) {\n this.colorChanged = true;\n }\n colorPicker.setValue(rgbaColor);\n this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();\n this.spectrumDragger.style.backgroundColor = rgbaColor;\n };\n /**\n * @param saturation In the [0, 1] interval.\n * @param brightness In the [0, 1] interval.\n */\n AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {\n var valRect = this.spectrumValRect || this.refreshSpectrumRect();\n if (valRect) {\n var dragger = this.spectrumDragger;\n var draggerRect = dragger.getBoundingClientRect();\n saturation = Math.max(0, saturation);\n saturation = Math.min(1, saturation);\n brightness = Math.max(0, brightness);\n brightness = Math.min(1, brightness);\n this.S = saturation;\n this.B = brightness;\n dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';\n dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.initRecentColors = function () {\n var recentColors = AgColorPanel.recentColors;\n var innerHtml = recentColors.map(function (color, index) {\n return \"
\";\n });\n this.recentColors.innerHTML = innerHtml.join('');\n };\n AgColorPanel.prototype.setValue = function (val) {\n var color = Color.fromString(val);\n var _a = __read$9(color.toHSB(), 3), h = _a[0], s = _a[1], b = _a[2];\n this.H = (isNaN(h) ? 0 : h) / 360;\n this.A = color.a;\n var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();\n var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();\n this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + \"px\";\n this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + \"px\";\n this.setSpectrumValue(s, b);\n };\n AgColorPanel.prototype.onRecentColorClick = function (e) {\n var target = e.target;\n if (!exists(target.id)) {\n return;\n }\n var id = parseInt(target.id, 10);\n this.setValue(AgColorPanel.recentColors[id]);\n this.destroy();\n };\n AgColorPanel.prototype.addRecentColor = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var rgbaColor = color.toRgbaString();\n var recentColors = AgColorPanel.recentColors;\n if (!this.colorChanged || recentColors[0] === rgbaColor) {\n return;\n }\n // remove duplicate color\n recentColors = recentColors.filter(function (currentColor) { return currentColor != rgbaColor; });\n // add color to head\n recentColors = [rgbaColor].concat(recentColors);\n // ensure we don't exceed max number of recent colors\n if (recentColors.length > AgColorPanel.maxRecentColors) {\n recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);\n }\n AgColorPanel.recentColors = recentColors;\n };\n AgColorPanel.prototype.destroy = function () {\n this.addRecentColor();\n _super.prototype.destroy.call(this);\n };\n AgColorPanel.maxRecentColors = 8;\n AgColorPanel.recentColors = [];\n AgColorPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$X([\n RefSelector('spectrumColor')\n ], AgColorPanel.prototype, \"spectrumColor\", void 0);\n __decorate$X([\n RefSelector('spectrumVal')\n ], AgColorPanel.prototype, \"spectrumVal\", void 0);\n __decorate$X([\n RefSelector('spectrumDragger')\n ], AgColorPanel.prototype, \"spectrumDragger\", void 0);\n __decorate$X([\n RefSelector('spectrumHue')\n ], AgColorPanel.prototype, \"spectrumHue\", void 0);\n __decorate$X([\n RefSelector('spectrumHueSlider')\n ], AgColorPanel.prototype, \"spectrumHueSlider\", void 0);\n __decorate$X([\n RefSelector('spectrumAlpha')\n ], AgColorPanel.prototype, \"spectrumAlpha\", void 0);\n __decorate$X([\n RefSelector('spectrumAlphaSlider')\n ], AgColorPanel.prototype, \"spectrumAlphaSlider\", void 0);\n __decorate$X([\n RefSelector('recentColors')\n ], AgColorPanel.prototype, \"recentColors\", void 0);\n __decorate$X([\n PostConstruct\n ], AgColorPanel.prototype, \"postConstruct\", null);\n return AgColorPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgPanel = /** @class */ (function (_super) {\n __extends$W(AgPanel, _super);\n function AgPanel(config) {\n var _this = _super.call(this, AgPanel.getTemplate(config)) || this;\n _this.closable = true;\n _this.config = config;\n return _this;\n }\n AgPanel.getTemplate = function (config) {\n var cssIdentifier = (config && config.cssIdentifier) || 'default';\n return /* html */ \"
\\n
\\n \\n
\\n
\\n
\\n
\";\n };\n AgPanel.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, _b = _a.minWidth, minWidth = _b === void 0 ? 250 : _b, width = _a.width, _c = _a.minHeight, minHeight = _c === void 0 ? 250 : _c, height = _a.height, centered = _a.centered, popup = _a.popup, x = _a.x, y = _a.y;\n this.positionableFeature = new PositionableFeature(this.getGui(), {\n minWidth: minWidth, width: width, minHeight: minHeight, height: height, centered: centered, x: x, y: y, popup: popup,\n calculateTopBuffer: function () { return _this.positionableFeature.getHeight() - _this.getBodyHeight(); }\n });\n this.createManagedBean(this.positionableFeature);\n var eGui = this.getGui();\n if (component) {\n this.setBodyComponent(component);\n }\n if (!hideTitleBar) {\n if (title) {\n this.setTitle(title);\n }\n this.setClosable(closable != null ? closable : this.closable);\n }\n else {\n this.eTitleBar.classList.add('ag-hidden');\n }\n this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n if (eGui.contains(e.relatedTarget) ||\n eGui.contains(eDocument.activeElement) ||\n _this.eTitleBarButtons.contains(e.target)) {\n e.preventDefault();\n return;\n }\n var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n if (popup && this.positionableFeature.isPositioned()) {\n return;\n }\n if (this.renderComponent) {\n this.renderComponent();\n }\n this.positionableFeature.initialisePosition();\n this.eContentWrapper.style.height = '0';\n };\n AgPanel.prototype.renderComponent = function () {\n var _this = this;\n var eGui = this.getGui();\n eGui.focus();\n this.close = function () {\n eGui.parentElement.removeChild(eGui);\n _this.destroy();\n };\n };\n AgPanel.prototype.getHeight = function () {\n return this.positionableFeature.getHeight();\n };\n AgPanel.prototype.setHeight = function (height) {\n this.positionableFeature.setHeight(height);\n };\n AgPanel.prototype.getWidth = function () {\n return this.positionableFeature.getWidth();\n };\n AgPanel.prototype.setWidth = function (width) {\n this.positionableFeature.setWidth(width);\n };\n AgPanel.prototype.setClosable = function (closable) {\n if (closable !== this.closable) {\n this.closable = closable;\n }\n if (closable) {\n var closeButtonComp = this.closeButtonComp = new Component(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().createBean(closeButtonComp);\n var eGui = closeButtonComp.getGui();\n var child = createIconNoSpan('close', this.gridOptionsWrapper);\n child.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(child);\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));\n }\n else if (this.closeButtonComp) {\n var eGui = this.closeButtonComp.getGui();\n eGui.parentElement.removeChild(eGui);\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n };\n AgPanel.prototype.setBodyComponent = function (bodyComponent) {\n bodyComponent.setParentComponent(this);\n this.eContentWrapper.appendChild(bodyComponent.getGui());\n };\n AgPanel.prototype.addTitleBarButton = function (button, position) {\n var eTitleBarButtons = this.eTitleBarButtons;\n var buttons = eTitleBarButtons.children;\n var len = buttons.length;\n if (position == null) {\n position = len;\n }\n position = Math.max(0, Math.min(position, len));\n button.addCssClass('ag-panel-title-bar-button');\n var eGui = button.getGui();\n if (position === 0) {\n eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);\n }\n else if (position === len) {\n eTitleBarButtons.insertAdjacentElement('beforeend', eGui);\n }\n else {\n buttons[position - 1].insertAdjacentElement('afterend', eGui);\n }\n button.setParentComponent(this);\n };\n AgPanel.prototype.getBodyHeight = function () {\n return getInnerHeight(this.eContentWrapper);\n };\n AgPanel.prototype.getBodyWidth = function () {\n return getInnerWidth(this.eContentWrapper);\n };\n AgPanel.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n };\n // called when user hits the 'x' in the top right\n AgPanel.prototype.onBtClose = function () {\n this.close();\n };\n AgPanel.prototype.destroy = function () {\n if (this.closeButtonComp) {\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n var eGui = this.getGui();\n if (eGui && eGui.offsetParent) {\n this.close();\n }\n _super.prototype.destroy.call(this);\n };\n AgPanel.CLOSE_BTN_TEMPLATE = \"
\";\n __decorate$W([\n RefSelector('eContentWrapper')\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate$W([\n RefSelector('eTitleBar')\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate$W([\n RefSelector('eTitleBarButtons')\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate$W([\n RefSelector('eTitle')\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate$W([\n PostConstruct\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgDialog = /** @class */ (function (_super) {\n __extends$V(AgDialog, _super);\n function AgDialog(config) {\n var _this = _super.call(this, __assign$2(__assign$2({}, config), { popup: true })) || this;\n _this.isMaximizable = false;\n _this.isMaximized = false;\n _this.maximizeListeners = [];\n _this.resizeListenerDestroy = null;\n _this.lastPosition = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n return _this;\n }\n AgDialog.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;\n this.addCssClass('ag-dialog');\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(eGui, 'focusin', function (e) {\n if (eGui.contains(e.relatedTarget)) {\n return;\n }\n _this.popupService.bringPopupToFront(eGui);\n });\n if (movable) {\n this.setMovable(movable);\n }\n if (maximizable) {\n this.setMaximizable(maximizable);\n }\n if (resizable) {\n this.setResizable(resizable);\n }\n };\n AgDialog.prototype.renderComponent = function () {\n var eGui = this.getGui();\n var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal, title = _a.title;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: modal,\n eChild: eGui,\n closeOnEsc: true,\n closedCallback: this.destroy.bind(this),\n alwaysOnTop: alwaysOnTop,\n ariaLabel: title || translate('ariaLabelDialog', 'Dialog')\n });\n if (addPopupRes) {\n this.close = addPopupRes.hideFunc;\n }\n };\n AgDialog.prototype.toggleMaximize = function () {\n var position = this.positionableFeature.getPosition();\n if (this.isMaximized) {\n var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n this.setWidth(width);\n this.setHeight(height);\n this.positionableFeature.offsetElement(x, y);\n }\n else {\n this.lastPosition.width = this.getWidth();\n this.lastPosition.height = this.getHeight();\n this.lastPosition.x = position.x;\n this.lastPosition.y = position.y;\n this.positionableFeature.offsetElement(0, 0);\n this.setHeight('100%');\n this.setWidth('100%');\n }\n this.isMaximized = !this.isMaximized;\n this.refreshMaximizeIcon();\n };\n AgDialog.prototype.refreshMaximizeIcon = function () {\n setDisplayed(this.maximizeIcon, !this.isMaximized);\n setDisplayed(this.minimizeIcon, this.isMaximized);\n };\n AgDialog.prototype.clearMaximizebleListeners = function () {\n if (this.maximizeListeners.length) {\n this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });\n this.maximizeListeners.length = 0;\n }\n if (this.resizeListenerDestroy) {\n this.resizeListenerDestroy();\n this.resizeListenerDestroy = null;\n }\n };\n AgDialog.prototype.destroy = function () {\n this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);\n this.clearMaximizebleListeners();\n _super.prototype.destroy.call(this);\n };\n AgDialog.prototype.setResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable);\n };\n AgDialog.prototype.setMovable = function (movable) {\n this.positionableFeature.setMovable(movable, this.eTitleBar);\n };\n AgDialog.prototype.setMaximizable = function (maximizable) {\n var _this = this;\n if (!maximizable) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.destroyBean(this.maximizeButtonComp);\n this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;\n }\n return;\n }\n var eTitleBar = this.eTitleBar;\n if (!eTitleBar || maximizable === this.isMaximizable) {\n return;\n }\n var maximizeButtonComp = this.maximizeButtonComp =\n this.createBean(new Component(/* html */ \"
\"));\n var eGui = maximizeButtonComp.getGui();\n eGui.appendChild(this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsWrapper));\n this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsWrapper));\n this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon', 'ag-hidden');\n maximizeButtonComp.addManagedListener(eGui, 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {\n _this.isMaximized = false;\n _this.refreshMaximizeIcon();\n });\n };\n __decorate$V([\n Autowired('popupService')\n ], AgDialog.prototype, \"popupService\", void 0);\n return AgDialog;\n}(AgPanel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgColorPicker = /** @class */ (function (_super) {\n __extends$U(AgColorPicker, _super);\n function AgColorPicker(config) {\n var _this = _super.call(this, config, 'ag-color-picker', 'colorPicker') || this;\n if (config && config.color) {\n _this.value = config.color;\n }\n return _this;\n }\n AgColorPicker.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.value) {\n this.setValue(this.value);\n }\n };\n AgColorPicker.prototype.showPicker = function () {\n var _this = this;\n var eGuiRect = this.getGui().getBoundingClientRect();\n var colorDialog = this.createBean(new AgDialog({\n closable: false,\n modal: true,\n hideTitleBar: true,\n minWidth: 190,\n width: 190,\n height: 250,\n x: eGuiRect.right - 190,\n y: eGuiRect.top - 250\n }));\n this.isPickerDisplayed = true;\n colorDialog.addCssClass('ag-color-dialog');\n setAriaExpanded(this.eWrapper, true);\n var colorPanel = this.createBean(new AgColorPanel({ picker: this }));\n colorPanel.addDestroyFunc(function () {\n if (colorDialog.isAlive()) {\n _this.destroyBean(colorDialog);\n }\n });\n colorDialog.setParentComponent(this);\n colorDialog.setBodyComponent(colorPanel);\n colorPanel.setValue(this.getValue());\n colorDialog.addDestroyFunc(function () {\n // here we check if the picker was already being\n // destroyed to avoid a stack overflow\n if (!_this.isDestroyingPicker) {\n _this.isDestroyingPicker = true;\n if (colorPanel.isAlive()) {\n _this.destroyBean(colorPanel);\n }\n }\n else {\n _this.isDestroyingPicker = false;\n }\n if (_this.isAlive()) {\n setAriaExpanded(_this.eWrapper, false);\n _this.getFocusableElement().focus();\n }\n _this.isPickerDisplayed = false;\n });\n return colorDialog;\n };\n AgColorPicker.prototype.setValue = function (color) {\n if (this.value === color) {\n return this;\n }\n this.eDisplayField.style.backgroundColor = color;\n return _super.prototype.setValue.call(this, color);\n };\n AgColorPicker.prototype.getValue = function () {\n return this.value;\n };\n return AgColorPicker;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgGroupComponent = /** @class */ (function (_super) {\n __extends$T(AgGroupComponent, _super);\n function AgGroupComponent(params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;\n _this.suppressEnabledCheckbox = true;\n _this.suppressOpenCloseIcons = false;\n var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;\n _this.title = title;\n _this.cssIdentifier = params.cssIdentifier || 'default';\n _this.enabled = enabled != null ? enabled : true;\n _this.items = items || [];\n _this.alignItems = params.alignItems || 'center';\n if (suppressEnabledCheckbox != null) {\n _this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n _this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n return _this;\n }\n AgGroupComponent.getTemplate = function (params) {\n var cssIdentifier = params.cssIdentifier || 'default';\n var direction = params.direction || 'vertical';\n return /* html */ \"
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\";\n };\n AgGroupComponent.prototype.postConstruct = function () {\n if (this.items.length) {\n var initialItems = this.items;\n this.items = [];\n this.addItems(initialItems);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));\n if (this.title) {\n this.setTitle(this.title);\n }\n if (this.enabled) {\n this.setEnabled(this.enabled);\n }\n this.setAlignItems(this.alignItems);\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n };\n AgGroupComponent.prototype.setupExpandContract = function () {\n var _this = this;\n this.eGroupClosedIcon.appendChild(createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });\n this.addManagedListener(this.eTitleBar, 'keydown', function (e) {\n switch (e.key) {\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n _this.toggleGroupExpand();\n break;\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n e.preventDefault();\n _this.toggleGroupExpand(e.key === KeyCode.RIGHT);\n break;\n }\n });\n };\n AgGroupComponent.prototype.refreshAriaStatus = function () {\n if (!this.suppressOpenCloseIcons) {\n setAriaExpanded(this.eTitleBar, this.expanded);\n }\n };\n AgGroupComponent.prototype.refreshChildDisplay = function () {\n var showIcon = !this.suppressOpenCloseIcons;\n setDisplayed(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);\n setDisplayed(this.eGroupOpenedIcon, showIcon && this.expanded);\n setDisplayed(this.eGroupClosedIcon, showIcon && !this.expanded);\n };\n AgGroupComponent.prototype.isExpanded = function () {\n return this.expanded;\n };\n AgGroupComponent.prototype.setAlignItems = function (alignment) {\n if (this.alignItems !== alignment) {\n this.removeCssClass(\"ag-group-item-alignment-\" + this.alignItems);\n }\n this.alignItems = alignment;\n var newCls = \"ag-group-item-alignment-\" + this.alignItems;\n this.addCssClass(newCls);\n return this;\n };\n AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, true);\n return this;\n }\n expanded = expanded != null ? expanded : !this.expanded;\n if (this.expanded === expanded) {\n return this;\n }\n this.expanded = expanded;\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, expanded);\n this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });\n return this;\n };\n AgGroupComponent.prototype.addItems = function (items) {\n var _this = this;\n items.forEach(function (item) { return _this.addItem(item); });\n };\n AgGroupComponent.prototype.addItem = function (item) {\n var container = this.eContainer;\n var el = item instanceof Component ? item.getGui() : item;\n el.classList.add('ag-group-item', \"ag-\" + this.cssIdentifier + \"-group-item\");\n container.appendChild(el);\n this.items.push(el);\n };\n AgGroupComponent.prototype.hideItem = function (hide, index) {\n var itemToHide = this.items[index];\n itemToHide.classList.toggle('ag-hidden', hide);\n };\n AgGroupComponent.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n return this;\n };\n AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eTitleBar.classList.add(cssClass);\n };\n AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {\n this.enabled = enabled;\n this.refreshDisabledStyles();\n this.toggleGroupExpand(enabled);\n if (!skipToggle) {\n this.cbGroupEnabled.setValue(enabled);\n }\n return this;\n };\n AgGroupComponent.prototype.isEnabled = function () {\n return this.enabled;\n };\n AgGroupComponent.prototype.onEnableChange = function (callbackFn) {\n var _this = this;\n this.cbGroupEnabled.onValueChange(function (newSelection) {\n _this.setEnabled(newSelection, true);\n callbackFn(newSelection);\n });\n return this;\n };\n AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {\n this.suppressEnabledCheckbox = hide;\n this.refreshChildDisplay();\n this.refreshDisabledStyles();\n return this;\n };\n AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {\n this.suppressOpenCloseIcons = hide;\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n };\n AgGroupComponent.prototype.refreshDisabledStyles = function () {\n this.addOrRemoveCssClass('ag-disabled', !this.enabled);\n if (this.suppressEnabledCheckbox && !this.enabled) {\n this.eTitleBar.classList.add('ag-disabled-group-title-bar');\n this.eTitleBar.removeAttribute('tabindex');\n }\n else {\n this.eTitleBar.classList.remove('ag-disabled-group-title-bar');\n this.eTitleBar.setAttribute('tabindex', '0');\n }\n this.eContainer.classList.toggle('ag-disabled-group-container', !this.enabled);\n };\n AgGroupComponent.EVENT_EXPANDED = 'expanded';\n AgGroupComponent.EVENT_COLLAPSED = 'collapsed';\n __decorate$U([\n RefSelector('eTitleBar')\n ], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n __decorate$U([\n RefSelector('eGroupOpenedIcon')\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$U([\n RefSelector('eGroupClosedIcon')\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$U([\n RefSelector('eToolbar')\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate$U([\n RefSelector('cbGroupEnabled')\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate$U([\n RefSelector('eTitle')\n ], AgGroupComponent.prototype, \"eTitle\", void 0);\n __decorate$U([\n RefSelector('eContainer')\n ], AgGroupComponent.prototype, \"eContainer\", void 0);\n __decorate$U([\n PostConstruct\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabGuardCtrl = /** @class */ (function (_super) {\n __extends$S(TabGuardCtrl, _super);\n function TabGuardCtrl(params) {\n var _this = _super.call(this) || this;\n _this.skipTabGuardFocus = false;\n var comp = params.comp, eTopGuard = params.eTopGuard, eBottomGuard = params.eBottomGuard, focusInnerElement = params.focusInnerElement, onFocusIn = params.onFocusIn, onFocusOut = params.onFocusOut, shouldStopEventPropagation = params.shouldStopEventPropagation, onTabKeyDown = params.onTabKeyDown, handleKeyDown = params.handleKeyDown, eFocusableElement = params.eFocusableElement;\n _this.comp = comp;\n _this.eTopGuard = eTopGuard;\n _this.eBottomGuard = eBottomGuard;\n _this.providedFocusInnerElement = focusInnerElement;\n _this.eFocusableElement = eFocusableElement;\n _this.providedFocusIn = onFocusIn;\n _this.providedFocusOut = onFocusOut;\n _this.providedShouldStopEventPropagation = shouldStopEventPropagation;\n _this.providedOnTabKeyDown = onTabKeyDown;\n _this.providedHandleKeyDown = handleKeyDown;\n return _this;\n }\n TabGuardCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new ManagedFocusFeature(this.eFocusableElement, {\n shouldStopEventPropagation: function () { return _this.shouldStopEventPropagation(); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); },\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); }\n }));\n this.activateTabGuards();\n [this.eTopGuard, this.eBottomGuard].forEach(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });\n };\n TabGuardCtrl.prototype.handleKeyDown = function (e) {\n if (this.providedHandleKeyDown) {\n this.providedHandleKeyDown(e);\n }\n };\n TabGuardCtrl.prototype.tabGuardsAreActive = function () {\n return !!this.eTopGuard && this.eTopGuard.hasAttribute('tabIndex');\n };\n TabGuardCtrl.prototype.shouldStopEventPropagation = function () {\n if (this.providedShouldStopEventPropagation) {\n return this.providedShouldStopEventPropagation();\n }\n return false;\n };\n TabGuardCtrl.prototype.activateTabGuards = function () {\n this.comp.setTabIndex(this.getGridTabIndex());\n };\n TabGuardCtrl.prototype.deactivateTabGuards = function () {\n this.comp.setTabIndex();\n };\n TabGuardCtrl.prototype.onFocus = function (e) {\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n var fromBottom = e.target === this.eBottomGuard;\n if (this.providedFocusInnerElement) {\n this.providedFocusInnerElement(fromBottom);\n }\n else {\n this.focusInnerElement(fromBottom);\n }\n };\n TabGuardCtrl.prototype.onFocusIn = function (e) {\n if (this.providedFocusIn && this.providedFocusIn(e)) {\n return;\n }\n this.deactivateTabGuards();\n };\n TabGuardCtrl.prototype.onFocusOut = function (e) {\n if (this.providedFocusOut && this.providedFocusOut(e)) {\n return;\n }\n if (!this.eFocusableElement.contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n };\n TabGuardCtrl.prototype.onTabKeyDown = function (e) {\n var _this = this;\n if (this.providedOnTabKeyDown) {\n this.providedOnTabKeyDown(e);\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n var tabGuardsAreActive = this.tabGuardsAreActive();\n if (tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n var nextRoot = this.getNextFocusableElement(e.shiftKey);\n if (tabGuardsAreActive) {\n // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser\n // tabbing to the tab guard from inside the component\n setTimeout(function () { return _this.activateTabGuards(); }, 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n };\n TabGuardCtrl.prototype.getGridTabIndex = function () {\n return this.gridOptionsWrapper.getGridTabIndex();\n };\n TabGuardCtrl.prototype.focusInnerElement = function (fromBottom) {\n if (fromBottom === void 0) { fromBottom = false; }\n var focusable = this.focusService.findFocusableElements(this.eFocusableElement);\n if (this.tabGuardsAreActive()) {\n // remove tab guards from this component from list of focusable elements\n focusable.splice(0, 1);\n focusable.splice(focusable.length - 1, 1);\n }\n if (!focusable.length) {\n return;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus();\n };\n TabGuardCtrl.prototype.getNextFocusableElement = function (backwards) {\n return this.focusService.findNextFocusableElement(this.eFocusableElement, false, backwards);\n };\n TabGuardCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n var tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n tabGuardToFocus.focus();\n };\n __decorate$T([\n Autowired('focusService')\n ], TabGuardCtrl.prototype, \"focusService\", void 0);\n __decorate$T([\n PostConstruct\n ], TabGuardCtrl.prototype, \"postConstruct\", null);\n return TabGuardCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$7 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$8(arguments[i]));\n return ar;\n};\nvar TabGuardComp = /** @class */ (function (_super) {\n __extends$R(TabGuardComp, _super);\n function TabGuardComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TabGuardComp.prototype.initialiseTabGuard = function (params) {\n this.eTopGuard = this.createTabGuard('top');\n this.eBottomGuard = this.createTabGuard('bottom');\n this.eFocusableElement = this.getFocusableElement();\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n var compProxy = {\n setTabIndex: function (tabIndex) {\n tabGuards.forEach(function (tabGuard) { return tabIndex != null ? tabGuard.setAttribute('tabIndex', tabIndex) : tabGuard.removeAttribute('tabIndex'); });\n }\n };\n this.addTabGuards(this.eTopGuard, this.eBottomGuard);\n this.tabGuardCtrl = this.createManagedBean(new TabGuardCtrl({\n comp: compProxy,\n eTopGuard: this.eTopGuard,\n eBottomGuard: this.eBottomGuard,\n eFocusableElement: this.eFocusableElement,\n onFocusIn: params.onFocusIn,\n onFocusOut: params.onFocusOut,\n focusInnerElement: params.focusInnerElement,\n handleKeyDown: params.handleKeyDown,\n onTabKeyDown: params.onTabKeyDown,\n shouldStopEventPropagation: params.shouldStopEventPropagation\n }));\n };\n TabGuardComp.prototype.createTabGuard = function (side) {\n var tabGuard = document.createElement('div');\n tabGuard.classList.add('ag-tab-guard', \"ag-tab-guard-\" + side);\n setAriaRole(tabGuard, 'presentation');\n return tabGuard;\n };\n TabGuardComp.prototype.addTabGuards = function (topTabGuard, bottomTabGuard) {\n this.eFocusableElement.insertAdjacentElement('afterbegin', topTabGuard);\n this.eFocusableElement.insertAdjacentElement('beforeend', bottomTabGuard);\n };\n TabGuardComp.prototype.removeAllChildrenExceptTabGuards = function () {\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n clearElement(this.getFocusableElement());\n this.addTabGuards.apply(this, __spread$7(tabGuards));\n };\n TabGuardComp.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.tabGuardCtrl.forceFocusOutOfContainer(up);\n };\n TabGuardComp.prototype.appendChild = function (newChild, container) {\n if (!isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n var bottomTabGuard = this.eBottomGuard;\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', newChild);\n }\n else {\n _super.prototype.appendChild.call(this, newChild, container);\n }\n };\n return TabGuardComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuList = /** @class */ (function (_super) {\n __extends$Q(AgMenuList, _super);\n function AgMenuList(level) {\n if (level === void 0) { level = 1; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.level = level;\n _this.menuItems = [];\n return _this;\n }\n AgMenuList.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuList.prototype.onTabKeyDown = function (e) {\n var parent = this.getParentComponent();\n var parentGui = parent && parent.getGui();\n var isManaged = parentGui && parentGui.classList.contains('ag-focus-managed');\n if (!isManaged) {\n e.preventDefault();\n }\n if (e.shiftKey) {\n this.closeIfIsChild(e);\n }\n };\n AgMenuList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n e.preventDefault();\n this.handleNavKey(e.key);\n break;\n case KeyCode.ESCAPE:\n var topMenu = this.findTopMenu();\n if (topMenu) {\n this.focusService.focusInto(topMenu.getGui());\n }\n break;\n }\n };\n AgMenuList.prototype.clearActiveItem = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.deactivate();\n this.activeMenuItem = null;\n }\n };\n AgMenuList.prototype.addMenuItems = function (menuItems) {\n var _this = this;\n if (menuItems == null) {\n return;\n }\n menuItems.forEach(function (menuItemOrString) {\n if (menuItemOrString === 'separator') {\n _this.addSeparator();\n }\n else if (typeof menuItemOrString === 'string') {\n console.warn(\"AG Grid: unrecognised menu item \" + menuItemOrString);\n }\n else {\n _this.addItem(menuItemOrString);\n }\n });\n };\n AgMenuList.prototype.addItem = function (menuItemDef) {\n var _this = this;\n var menuItem = this.createManagedBean(new AgMenuItemComponent(__assign$1(__assign$1({}, menuItemDef), { isAnotherSubMenuOpen: function () { return _this.menuItems.some(function (m) { return m.isSubMenuOpen(); }); } })));\n menuItem.setParentComponent(this);\n setAriaLevel(menuItem.getGui(), this.level);\n this.menuItems.push(menuItem);\n this.appendChild(menuItem.getGui());\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (event) {\n _this.dispatchEvent(event);\n });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.activeMenuItem && _this.activeMenuItem !== event.menuItem) {\n _this.activeMenuItem.deactivate();\n }\n _this.activeMenuItem = event.menuItem;\n });\n };\n AgMenuList.prototype.activateFirstItem = function () {\n var item = this.menuItems.filter(function (currentItem) { return !currentItem.isDisabled(); })[0];\n if (!item) {\n return;\n }\n item.activate();\n };\n AgMenuList.prototype.addSeparator = function () {\n var separatorHtml = /* html */ \"\\n
\\n
\\n
\\n
\\n
\\n
\";\n this.appendChild(loadTemplate(separatorHtml));\n };\n AgMenuList.prototype.findTopMenu = function () {\n var parent = this.getParentComponent();\n if (!parent && this instanceof AgMenuList) {\n return this;\n }\n while (true) {\n var nextParent = parent && parent.getParentComponent && parent.getParentComponent();\n if (!nextParent || (!(nextParent instanceof AgMenuList || nextParent instanceof AgMenuItemComponent))) {\n break;\n }\n parent = nextParent;\n }\n return parent instanceof AgMenuList ? parent : undefined;\n };\n AgMenuList.prototype.handleNavKey = function (key) {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n var nextItem = this.findNextItem(key === KeyCode.UP);\n if (nextItem && nextItem !== this.activeMenuItem) {\n nextItem.activate();\n }\n return;\n }\n var left = this.gridOptionsWrapper.isEnableRtl() ? KeyCode.RIGHT : KeyCode.LEFT;\n if (key === left) {\n this.closeIfIsChild();\n }\n else {\n this.openChild();\n }\n };\n AgMenuList.prototype.closeIfIsChild = function (e) {\n var parentItem = this.getParentComponent();\n if (parentItem && parentItem instanceof AgMenuItemComponent) {\n if (e) {\n e.preventDefault();\n }\n parentItem.closeSubMenu();\n parentItem.getGui().focus();\n }\n };\n AgMenuList.prototype.openChild = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.openSubMenu(true);\n }\n };\n AgMenuList.prototype.findNextItem = function (up) {\n var items = this.menuItems.filter(function (item) { return !item.isDisabled(); });\n if (!items.length) {\n return;\n }\n if (!this.activeMenuItem) {\n return up ? last(items) : items[0];\n }\n if (up) {\n items.reverse();\n }\n var nextItem;\n var foundCurrent = false;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (!foundCurrent) {\n if (item === this.activeMenuItem) {\n foundCurrent = true;\n }\n continue;\n }\n nextItem = item;\n break;\n }\n return nextItem || this.activeMenuItem;\n };\n AgMenuList.prototype.destroy = function () {\n this.clearActiveItem();\n _super.prototype.destroy.call(this);\n };\n __decorate$S([\n Autowired('focusService')\n ], AgMenuList.prototype, \"focusService\", void 0);\n __decorate$S([\n PostConstruct\n ], AgMenuList.prototype, \"postConstruct\", null);\n return AgMenuList;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuPanel = /** @class */ (function (_super) {\n __extends$P(AgMenuPanel, _super);\n function AgMenuPanel(wrappedComponent) {\n var _this = _super.call(this) || this;\n _this.wrappedComponent = wrappedComponent;\n _this.setTemplateFromElement(wrappedComponent.getGui());\n return _this;\n }\n AgMenuPanel.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuPanel.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.ESCAPE) {\n this.closePanel();\n }\n };\n AgMenuPanel.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n this.closePanel();\n e.preventDefault();\n };\n AgMenuPanel.prototype.closePanel = function () {\n var menuItem = this.parentComponent;\n menuItem.closeSubMenu();\n setTimeout(function () { return menuItem.getGui().focus(); }, 0);\n };\n __decorate$R([\n PostConstruct\n ], AgMenuPanel.prototype, \"postConstruct\", null);\n return AgMenuPanel;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuItemComponent = /** @class */ (function (_super) {\n __extends$O(AgMenuItemComponent, _super);\n function AgMenuItemComponent(params) {\n var _this = _super.call(this) || this;\n _this.params = params;\n _this.isActive = false;\n _this.subMenuIsOpen = false;\n _this.setTemplate(/* html */ \"
\");\n return _this;\n }\n AgMenuItemComponent.prototype.init = function () {\n var _this = this;\n this.addIcon();\n this.addName();\n this.addShortcut();\n this.addSubMenu();\n this.addTooltip();\n var eGui = this.getGui();\n if (this.params.disabled) {\n this.addCssClass(this.getClassName('disabled'));\n setAriaDisabled(eGui, true);\n }\n else {\n this.addGuiEventListener('click', function (e) { return _this.onItemSelected(e); });\n this.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.onItemSelected(e);\n }\n });\n this.addGuiEventListener('mousedown', function (e) {\n // Prevent event bubbling to other event handlers such as PopupService triggering\n // premature closing of any open sub-menu popup.\n e.stopPropagation();\n e.preventDefault();\n });\n this.addGuiEventListener('mouseenter', function () { return _this.onMouseEnter(); });\n this.addGuiEventListener('mouseleave', function () { return _this.onMouseLeave(); });\n }\n if (this.params.cssClasses) {\n this.params.cssClasses.forEach(function (it) { return _this.addCssClass(it); });\n }\n };\n AgMenuItemComponent.prototype.isDisabled = function () {\n return !!this.params.disabled;\n };\n AgMenuItemComponent.prototype.openSubMenu = function (activateFirstItem) {\n var _this = this;\n if (activateFirstItem === void 0) { activateFirstItem = false; }\n this.closeSubMenu();\n if (!this.params.subMenu) {\n return;\n }\n var ePopup = loadTemplate(/* html */ \"
\");\n var destroySubMenu;\n if (this.params.subMenu instanceof Array) {\n var currentLevel = getAriaLevel(this.getGui());\n var nextLevel = isNaN(currentLevel) ? 1 : (currentLevel + 1);\n var childMenu_1 = this.createBean(new AgMenuList(nextLevel));\n childMenu_1.setParentComponent(this);\n childMenu_1.addMenuItems(this.params.subMenu);\n ePopup.appendChild(childMenu_1.getGui());\n // bubble menu item selected events\n this.addManagedListener(childMenu_1, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n childMenu_1.addGuiEventListener('mouseenter', function () { return _this.cancelDeactivate(); });\n destroySubMenu = function () { return _this.destroyBean(childMenu_1); };\n if (activateFirstItem) {\n setTimeout(function () { return childMenu_1.activateFirstItem(); }, 0);\n }\n }\n else {\n var subMenu_1 = this.params.subMenu;\n var menuPanel = this.createBean(new AgMenuPanel(subMenu_1));\n menuPanel.setParentComponent(this);\n var subMenuGui_1 = menuPanel.getGui();\n var mouseEvent_1 = 'mouseenter';\n var mouseEnterListener_1 = function () { return _this.cancelDeactivate(); };\n subMenuGui_1.addEventListener(mouseEvent_1, mouseEnterListener_1);\n destroySubMenu = function () { return subMenuGui_1.removeEventListener(mouseEvent_1, mouseEnterListener_1); };\n ePopup.appendChild(subMenuGui_1);\n if (subMenu_1.afterGuiAttached) {\n setTimeout(function () { return subMenu_1.afterGuiAttached(); }, 0);\n }\n }\n var eGui = this.getGui();\n var positionCallback = this.popupService.positionPopupForMenu.bind(this.popupService, { eventSource: eGui, ePopup: ePopup });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n positionCallback: positionCallback,\n anchorToElement: eGui,\n ariaLabel: translate('ariaLabelSubMenu', 'SubMenu')\n });\n this.subMenuIsOpen = true;\n setAriaExpanded(eGui, true);\n this.hideSubMenu = function () {\n if (addPopupRes) {\n addPopupRes.hideFunc();\n }\n _this.subMenuIsOpen = false;\n setAriaExpanded(eGui, false);\n destroySubMenu();\n };\n };\n AgMenuItemComponent.prototype.closeSubMenu = function () {\n if (!this.hideSubMenu) {\n return;\n }\n this.hideSubMenu();\n this.hideSubMenu = null;\n setAriaExpanded(this.getGui(), false);\n };\n AgMenuItemComponent.prototype.isSubMenuOpen = function () {\n return this.subMenuIsOpen;\n };\n AgMenuItemComponent.prototype.activate = function (openSubMenu) {\n var _this = this;\n this.cancelActivate();\n if (this.params.disabled) {\n return;\n }\n this.isActive = true;\n this.addCssClass(this.getClassName('active'));\n this.getGui().focus();\n if (openSubMenu && this.params.subMenu) {\n window.setTimeout(function () {\n if (_this.isAlive() && _this.isActive) {\n _this.openSubMenu();\n }\n }, 300);\n }\n this.onItemActivated();\n };\n AgMenuItemComponent.prototype.deactivate = function () {\n this.cancelDeactivate();\n this.removeCssClass(this.getClassName('active'));\n this.isActive = false;\n if (this.subMenuIsOpen) {\n this.hideSubMenu();\n }\n };\n AgMenuItemComponent.prototype.addIcon = function () {\n if (!this.params.checked && !this.params.icon && this.params.isCompact) {\n return;\n }\n var icon = loadTemplate(/* html */ \"\");\n if (this.params.checked) {\n icon.appendChild(createIconNoSpan('check', this.gridOptionsWrapper));\n }\n else if (this.params.icon) {\n if (isNodeOrElement(this.params.icon)) {\n icon.appendChild(this.params.icon);\n }\n else if (typeof this.params.icon === 'string') {\n icon.innerHTML = this.params.icon;\n }\n else {\n console.warn('AG Grid: menu item icon must be DOM node or string');\n }\n }\n this.getGui().appendChild(icon);\n };\n AgMenuItemComponent.prototype.addName = function () {\n if (!this.params.name && this.params.isCompact) {\n return;\n }\n var name = loadTemplate(/* html */ \"\" + (this.params.name || '') + \"\");\n this.getGui().appendChild(name);\n };\n AgMenuItemComponent.prototype.addTooltip = function () {\n if (!this.params.tooltip) {\n return;\n }\n this.tooltip = this.params.tooltip;\n if (this.gridOptionsWrapper.isEnableBrowserTooltips()) {\n this.getGui().setAttribute('title', this.tooltip);\n }\n else {\n this.createManagedBean(new CustomTooltipFeature(this));\n }\n };\n AgMenuItemComponent.prototype.getTooltipParams = function () {\n return {\n location: 'menu',\n value: this.tooltip\n };\n };\n AgMenuItemComponent.prototype.addShortcut = function () {\n if (!this.params.shortcut && this.params.isCompact) {\n return;\n }\n var shortcut = loadTemplate(/* html */ \"\" + (this.params.shortcut || '') + \"\");\n this.getGui().appendChild(shortcut);\n };\n AgMenuItemComponent.prototype.addSubMenu = function () {\n if (!this.params.subMenu && this.params.isCompact) {\n return;\n }\n var pointer = loadTemplate(/* html */ \"\");\n var eGui = this.getGui();\n if (this.params.subMenu) {\n var iconName = this.gridOptionsWrapper.isEnableRtl() ? 'smallLeft' : 'smallRight';\n setAriaExpanded(eGui, false);\n pointer.appendChild(createIconNoSpan(iconName, this.gridOptionsWrapper));\n }\n eGui.appendChild(pointer);\n };\n AgMenuItemComponent.prototype.onItemSelected = function (event) {\n if (this.params.action) {\n this.params.action();\n }\n else {\n this.openSubMenu(event && event.type === 'keydown');\n }\n if (this.params.subMenu && !this.params.action) {\n return;\n }\n var e = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED,\n action: this.params.action,\n checked: this.params.checked,\n cssClasses: this.params.cssClasses,\n disabled: this.params.disabled,\n icon: this.params.icon,\n name: this.params.name,\n shortcut: this.params.shortcut,\n subMenu: this.params.subMenu,\n tooltip: this.params.tooltip,\n event: event\n };\n this.dispatchEvent(e);\n };\n AgMenuItemComponent.prototype.onItemActivated = function () {\n var event = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED,\n menuItem: this,\n };\n this.dispatchEvent(event);\n };\n AgMenuItemComponent.prototype.cancelActivate = function () {\n if (this.activateTimeoutId) {\n window.clearTimeout(this.activateTimeoutId);\n this.activateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.cancelDeactivate = function () {\n if (this.deactivateTimeoutId) {\n window.clearTimeout(this.deactivateTimeoutId);\n this.deactivateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.onMouseEnter = function () {\n var _this = this;\n this.cancelDeactivate();\n if (this.params.isAnotherSubMenuOpen()) {\n // wait to see if the user enters the open sub-menu\n this.activateTimeoutId = window.setTimeout(function () { return _this.activate(true); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // activate immediately\n this.activate(true);\n }\n };\n AgMenuItemComponent.prototype.onMouseLeave = function () {\n var _this = this;\n this.cancelActivate();\n if (this.isSubMenuOpen()) {\n // wait to see if the user enters the sub-menu\n this.deactivateTimeoutId = window.setTimeout(function () { return _this.deactivate(); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // de-activate immediately\n this.deactivate();\n }\n };\n AgMenuItemComponent.prototype.getClassName = function (suffix) {\n var prefix = this.params.isCompact ? 'ag-compact-menu-option' : 'ag-menu-option';\n return suffix ? prefix + \"-\" + suffix : prefix;\n };\n AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED = 'menuItemSelected';\n AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED = 'menuItemActivated';\n AgMenuItemComponent.ACTIVATION_DELAY = 80;\n __decorate$Q([\n Autowired('popupService')\n ], AgMenuItemComponent.prototype, \"popupService\", void 0);\n __decorate$Q([\n PostConstruct\n ], AgMenuItemComponent.prototype, \"init\", null);\n return AgMenuItemComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$6 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$7(arguments[i]));\n return ar;\n};\nvar FocusService = /** @class */ (function (_super) {\n __extends$N(FocusService, _super);\n function FocusService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FocusService_1 = FocusService;\n /**\n * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be monitored.\n */\n FocusService.addKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n if (docControllers && docControllers.length > 0) {\n if (docControllers.indexOf(controller) === -1) {\n docControllers.push(controller);\n }\n }\n else {\n FocusService_1.instancesMonitored.set(doc, [controller]);\n doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be removed.\n */\n FocusService.removeKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n var newControllers = [];\n if (docControllers && docControllers.length) {\n newControllers = __spread$6(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });\n FocusService_1.instancesMonitored.set(doc, newControllers);\n }\n if (newControllers.length === 0) {\n doc.removeEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.removeEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * This method will be called by `keydown` and `mousedown` events on all Documents monitoring\n * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in\n * the Document allowing each gridCore to maintain a state for KeyboardMode.\n *\n * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.\n */\n FocusService.toggleKeyboardMode = function (event) {\n var isKeyboardActive = FocusService_1.keyboardModeActive;\n var isKeyboardEvent = event.type === 'keydown';\n if (isKeyboardEvent) {\n // the following keys should not toggle keyboard mode.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {\n return;\n }\n FocusService_1.keyboardModeActive = isKeyboardEvent;\n var doc = event.target.ownerDocument;\n if (!doc) {\n return;\n }\n var controllersForDoc = FocusService_1.instancesMonitored.get(doc);\n if (controllersForDoc) {\n controllersForDoc.forEach(function (controller) {\n controller.dispatchEvent({ type: isKeyboardEvent ? Events.EVENT_KEYBOARD_FOCUS : Events.EVENT_MOUSE_FOCUS });\n });\n }\n };\n FocusService.prototype.init = function () {\n var _this = this;\n var clearFocusedCellListener = this.clearFocusedCell.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n var doc = _this.gridOptionsWrapper.getDocument();\n FocusService_1.addKeyboardModeEvents(doc, _this.gridCtrl);\n _this.addDestroyFunc(function () { return _this.unregisterGridCompController(_this.gridCtrl); });\n });\n };\n FocusService.prototype.unregisterGridCompController = function (gridCompController) {\n var doc = this.gridOptionsWrapper.getDocument();\n FocusService_1.removeKeyboardModeEvents(doc, gridCompController);\n };\n FocusService.prototype.onColumnEverythingChanged = function () {\n // if the columns change, check and see if this column still exists. if it does, then\n // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.\n if (!this.focusedCellPosition) {\n return;\n }\n var col = this.focusedCellPosition.column;\n var colFromColumnModel = this.columnModel.getGridColumn(col.getId());\n if (col !== colFromColumnModel) {\n this.clearFocusedCell();\n }\n };\n FocusService.prototype.isKeyboardMode = function () {\n return FocusService_1.keyboardModeActive;\n };\n // we check if the browser is focusing something, and if it is, and\n // it's the cell we think is focused, then return the cell. so this\n // methods returns the cell if a) we think it has focus and b) the\n // browser thinks it has focus. this then returns nothing if we\n // first focus a cell, then second click outside the grid, as then the\n // grid cell will still be focused as far as the grid is concerned,\n // however the browser focus will have moved somewhere else.\n FocusService.prototype.getFocusCellToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedCellPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about. we check for ROW data, as this covers both focused Rows (for Full Width Rows)\n // and Cells (covers cells as cells live in rows)\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL)) {\n return null;\n }\n return this.focusedCellPosition;\n };\n FocusService.prototype.getFocusHeaderToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedHeaderPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL)) {\n return null;\n }\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.isDomDataMissingInHierarchy = function (eBrowserCell, key) {\n var ePointer = eBrowserCell;\n while (ePointer) {\n var data = this.gridOptionsWrapper.getDomData(ePointer, key);\n if (data) {\n return false;\n }\n ePointer = ePointer.parentNode;\n }\n return true;\n };\n FocusService.prototype.clearFocusedCell = function () {\n this.focusedCellPosition = null;\n this.onCellFocused(false, false);\n };\n FocusService.prototype.getFocusedCell = function () {\n return this.focusedCellPosition;\n };\n FocusService.prototype.setFocusedCell = function (params) {\n var column = params.column, rowIndex = params.rowIndex, rowPinned = params.rowPinned, _a = params.forceBrowserFocus, forceBrowserFocus = _a === void 0 ? false : _a, _b = params.preventScrollOnBrowserFocus, preventScrollOnBrowserFocus = _b === void 0 ? false : _b;\n var gridColumn = this.columnModel.getGridColumn(column);\n // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,\n // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries\n // to re-focus the focused cell.\n if (!gridColumn) {\n this.focusedCellPosition = null;\n return;\n }\n this.focusedCellPosition = gridColumn ? {\n rowIndex: rowIndex,\n rowPinned: makeNull(rowPinned),\n column: gridColumn\n } : null;\n this.onCellFocused(forceBrowserFocus, preventScrollOnBrowserFocus);\n };\n FocusService.prototype.isCellFocused = function (cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.column === cellPosition.column &&\n this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);\n };\n FocusService.prototype.isRowNodeFocused = function (rowNode) {\n return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);\n };\n FocusService.prototype.isHeaderWrapperFocused = function (headerCtrl) {\n if (this.focusedHeaderPosition == null) {\n return false;\n }\n var column = headerCtrl.getColumnGroupChild();\n var headerRowIndex = headerCtrl.getRowIndex();\n var pinned = headerCtrl.getPinned();\n var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;\n return column === focusedColumn &&\n headerRowIndex === focusedHeaderRowIndex &&\n pinned == focusedColumn.getPinned();\n };\n FocusService.prototype.clearFocusedHeader = function () {\n this.focusedHeaderPosition = null;\n };\n FocusService.prototype.getFocusedHeader = function () {\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.setFocusedHeader = function (headerRowIndex, column) {\n this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };\n };\n FocusService.prototype.focusHeaderPosition = function (params) {\n var direction = params.direction, fromTab = params.fromTab, allowUserOverride = params.allowUserOverride, event = params.event;\n var headerPosition = params.headerPosition;\n if (allowUserOverride) {\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var currentPosition = this.getFocusedHeader();\n var headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n var userFunc = gridOptionsWrapper.getTabToNextHeaderFunc();\n if (userFunc) {\n var params_1 = {\n backwards: direction === 'Before',\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n };\n headerPosition = userFunc(params_1);\n }\n }\n else {\n var userFunc = gridOptionsWrapper.getNavigateToNextHeaderFunc();\n if (userFunc && event) {\n var params_2 = {\n key: event.key,\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n event: event,\n };\n headerPosition = userFunc(params_2);\n }\n }\n }\n if (!headerPosition) {\n return false;\n }\n if (headerPosition.headerRowIndex === -1) {\n return this.focusGridView(headerPosition.column);\n }\n this.headerNavigationService.scrollToColumn(headerPosition.column, direction);\n var headerRowContainerCtrl = this.ctrlsService.getHeaderRowContainerCtrl(headerPosition.column.getPinned());\n // this will automatically call the setFocusedHeader method above\n var focusSuccess = headerRowContainerCtrl.focusHeader(headerPosition.headerRowIndex, headerPosition.column, event);\n return focusSuccess;\n };\n FocusService.prototype.focusFirstHeader = function () {\n var firstColumn = this.columnModel.getAllDisplayedColumns()[0];\n if (!firstColumn) {\n return false;\n }\n if (firstColumn.getParent()) {\n firstColumn = this.columnModel.getColumnGroupAtLevel(firstColumn, 0);\n }\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: 0, column: firstColumn }\n });\n };\n FocusService.prototype.focusLastHeader = function (event) {\n var headerRowIndex = this.headerNavigationService.getHeaderRowCount() - 1;\n var column = last(this.columnModel.getAllDisplayedColumns());\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerRowIndex, column: column },\n event: event\n });\n };\n FocusService.prototype.isAnyCellFocused = function () {\n return !!this.focusedCellPosition;\n };\n FocusService.prototype.isRowFocused = function (rowIndex, floating) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === makeNull(floating);\n };\n FocusService.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableString = Constants.FOCUSABLE_SELECTOR;\n var excludeString = Constants.FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += ', ' + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));\n var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };\n return diff(nodes, excludeNodes);\n };\n FocusService.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {\n if (up === void 0) { up = false; }\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);\n var toFocus = up ? last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus();\n return true;\n }\n return false;\n };\n FocusService.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {\n if (rootNode === void 0) { rootNode = this.eGridDiv; }\n var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var currentIndex;\n if (onlyManaged) {\n currentIndex = focusable.findIndex(function (el) { return el.contains(activeEl); });\n }\n else {\n currentIndex = focusable.indexOf(activeEl);\n }\n var nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n };\n FocusService.prototype.isFocusUnderManagedComponent = function (rootNode) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var managedContainers = rootNode.querySelectorAll(\".\" + ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n if (!managedContainers.length) {\n return false;\n }\n for (var i = 0; i < managedContainers.length; i++) {\n if (managedContainers[i].contains(eDocument.activeElement)) {\n return true;\n }\n }\n return false;\n };\n FocusService.prototype.findTabbableParent = function (node, limit) {\n if (limit === void 0) { limit = 5; }\n var counter = 0;\n while (node && getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (getTabIndex(node) === null) {\n return null;\n }\n return node;\n };\n FocusService.prototype.onCellFocused = function (forceBrowserFocus, preventScrollOnBrowserFocus) {\n var event = {\n type: Events.EVENT_CELL_FOCUSED,\n forceBrowserFocus: forceBrowserFocus,\n preventScrollOnBrowserFocus: preventScrollOnBrowserFocus,\n rowIndex: null,\n column: null,\n floating: null,\n rowPinned: null,\n isFullWidthCell: false\n };\n if (this.focusedCellPosition) {\n var rowIndex = event.rowIndex = this.focusedCellPosition.rowIndex;\n var rowPinned = event.rowPinned = this.focusedCellPosition.rowPinned;\n event.column = this.focusedCellPosition.column;\n var rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n if (rowCtrl) {\n event.isFullWidthCell = rowCtrl.isFullWidth();\n }\n }\n this.eventService.dispatchEvent(event);\n };\n FocusService.prototype.focusGridView = function (column, backwards) {\n // if suppressCellFocus is `true`, it means the user does not want to\n // navigate between the cells using tab. Instead, we put focus on either\n // the header or after the grid, depending on whether tab or shift-tab was pressed.\n if (this.gridOptionsWrapper.isSuppressCellFocus()) {\n if (backwards) {\n return this.focusLastHeader();\n }\n return this.focusNextGridCoreContainer(false);\n }\n var nextRow = backwards\n ? this.rowPositionUtils.getLastRow()\n : this.rowPositionUtils.getFirstRow();\n if (!nextRow) {\n return false;\n }\n var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;\n var focusedHeader = this.getFocusedHeader();\n if (!column && focusedHeader) {\n column = focusedHeader.column;\n }\n if (rowIndex == null || !column) {\n return false;\n }\n this.navigationService.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n this.setFocusedCell({\n rowIndex: rowIndex,\n column: column,\n rowPinned: makeNull(rowPinned),\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };\n this.rangeService.setRangeToCell(cellPosition);\n }\n return true;\n };\n FocusService.prototype.focusNextGridCoreContainer = function (backwards) {\n if (this.gridCtrl.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (!backwards && !this.gridCtrl.isDetailGrid()) {\n this.gridCtrl.forceFocusOutOfContainer();\n }\n return false;\n };\n var FocusService_1;\n FocusService.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';\n FocusService.keyboardModeActive = false;\n FocusService.instancesMonitored = new Map();\n __decorate$P([\n Autowired('eGridDiv')\n ], FocusService.prototype, \"eGridDiv\", void 0);\n __decorate$P([\n Autowired('columnModel')\n ], FocusService.prototype, \"columnModel\", void 0);\n __decorate$P([\n Autowired('headerNavigationService')\n ], FocusService.prototype, \"headerNavigationService\", void 0);\n __decorate$P([\n Autowired('rowRenderer')\n ], FocusService.prototype, \"rowRenderer\", void 0);\n __decorate$P([\n Autowired('rowPositionUtils')\n ], FocusService.prototype, \"rowPositionUtils\", void 0);\n __decorate$P([\n Optional('rangeService')\n ], FocusService.prototype, \"rangeService\", void 0);\n __decorate$P([\n Autowired('navigationService')\n ], FocusService.prototype, \"navigationService\", void 0);\n __decorate$P([\n Autowired('ctrlsService')\n ], FocusService.prototype, \"ctrlsService\", void 0);\n __decorate$P([\n PostConstruct\n ], FocusService.prototype, \"init\", null);\n FocusService = FocusService_1 = __decorate$P([\n Bean('focusService')\n ], FocusService);\n return FocusService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$5 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$6(arguments[i]));\n return ar;\n};\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[DIRECTION[\"vertical\"] = 0] = \"vertical\";\n DIRECTION[DIRECTION[\"horizontal\"] = 1] = \"horizontal\";\n})(DIRECTION || (DIRECTION = {}));\nvar instanceIdSeq = 0;\nvar PopupService = /** @class */ (function (_super) {\n __extends$M(PopupService, _super);\n function PopupService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.popupList = [];\n return _this;\n }\n PopupService_1 = PopupService;\n PopupService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.add(FocusService.AG_KEYBOARD_FOCUS); });\n });\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_MOUSE_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.remove(FocusService.AG_KEYBOARD_FOCUS); });\n });\n });\n };\n PopupService.prototype.getPopupParent = function () {\n var ePopupParent = this.gridOptionsWrapper.getPopupParent();\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCtrl.getGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var y = this.keepXYWithinBounds(params.ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);\n var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;\n params.ePopup.style.minWidth = minWidth + \"px\";\n var widthOfParent = parentRect.right - parentRect.left;\n var maxX = widthOfParent - minWidth;\n // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup\n // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,\n // we try place it first to the left, and then if not to the right.\n var x;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n }\n if (x > maxX) {\n x = 0;\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n }\n if (x < 0) {\n x = 0;\n }\n }\n params.ePopup.style.left = x + \"px\";\n params.ePopup.style.top = y + \"px\";\n function xRightPosition() {\n return sourceRect.right - parentRect.left - 2;\n }\n function xLeftPosition() {\n return sourceRect.left - parentRect.left - minWidth;\n }\n };\n PopupService.prototype.positionPopupUnderMouseEvent = function (params) {\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver;\n var _a = this.calculatePointerAlign(params.mouseEvent), x = _a.x, y = _a.y;\n this.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: true,\n skipObserver: skipObserver\n });\n this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode);\n };\n PopupService.prototype.calculatePointerAlign = function (e) {\n var parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n };\n PopupService.prototype.positionPopupUnderComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var alignSide = params.alignSide || 'left';\n var parentRect = this.getParentRect();\n var x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (params.ePopup.offsetWidth - sourceRect.width);\n }\n this.positionPopup({\n ePopup: params.ePopup,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: x,\n y: sourceRect.top - parentRect.top + sourceRect.height,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.positionPopupOverComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n this.positionPopup({\n ePopup: params.ePopup,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: sourceRect.left - parentRect.left,\n y: sourceRect.top - parentRect.top,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {\n var callback = this.gridOptionsWrapper.getPostProcessPopupFunc();\n if (callback) {\n var params = {\n column: column,\n rowNode: rowNode,\n ePopup: ePopup,\n type: type,\n eventSource: eventSource,\n mouseEvent: mouseEvent\n };\n callback(params);\n }\n };\n PopupService.prototype.positionPopup = function (params) {\n var _this = this;\n var x = params.x, y = params.y, ePopup = params.ePopup, keepWithinBounds = params.keepWithinBounds, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver;\n var currentX = x;\n var currentY = y;\n if (nudgeX) {\n currentX += nudgeX;\n }\n if (nudgeY) {\n currentY += nudgeY;\n }\n var updatePosition = function () {\n // if popup is overflowing to the bottom, move it up\n if (keepWithinBounds) {\n currentX = _this.keepXYWithinBounds(ePopup, currentX, DIRECTION.horizontal);\n currentY = _this.keepXYWithinBounds(ePopup, currentY, DIRECTION.vertical);\n }\n ePopup.style.left = currentX + \"px\";\n ePopup.style.top = currentY + \"px\";\n };\n updatePosition();\n // Mouse tracking will recalculate positioning when moving, so won't need to recalculate here\n if (!skipObserver) {\n // Since rendering popup contents can be asynchronous, use a resize observer to\n // reposition the popup after initial updates to the size of the contents\n var resizeObserverDestroyFunc_1 = this.resizeObserverService.observeResize(ePopup, updatePosition);\n // Only need to reposition when first open, so can clean up after a bit of time\n setTimeout(function () { return resizeObserverDestroyFunc_1(); }, PopupService_1.WAIT_FOR_POPUP_CONTENT_RESIZE);\n }\n };\n PopupService.prototype.getActivePopups = function () {\n return this.popupList.map(function (popup) { return popup.element; });\n };\n PopupService.prototype.getPopupList = function () {\n return this.popupList;\n };\n PopupService.prototype.getParentRect = function () {\n // subtract the popup parent borders, because popupParent.getBoundingClientRect\n // returns the rect outside the borders, but the 0,0 coordinate for absolute\n // positioning is inside the border, leading the popup to be off by the width\n // of the border\n var eDocument = this.gridOptionsWrapper.getDocument();\n var popupParent = this.getPopupParent();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n }\n else if (getComputedStyle(popupParent).position === 'static') {\n popupParent = popupParent.offsetParent;\n }\n var style = getComputedStyle(popupParent);\n var bounds = popupParent.getBoundingClientRect();\n return {\n top: bounds.top + parseFloat(style.borderTopWidth) || 0,\n left: bounds.left + parseFloat(style.borderLeftWidth) || 0,\n right: bounds.right + parseFloat(style.borderRightWidth) || 0,\n bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,\n };\n };\n PopupService.prototype.keepXYWithinBounds = function (ePopup, position, direction) {\n var isVertical = direction === DIRECTION.vertical;\n var sizeProperty = isVertical ? 'clientHeight' : 'clientWidth';\n var anchorProperty = isVertical ? 'top' : 'left';\n var offsetProperty = isVertical ? 'offsetHeight' : 'offsetWidth';\n var scrollPositionProperty = isVertical ? 'scrollTop' : 'scrollLeft';\n var eDocument = this.gridOptionsWrapper.getDocument();\n var docElement = eDocument.documentElement;\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n var isBody = popupParent === eDocument.body;\n var offsetSize = ePopup[offsetProperty];\n var getSize = isVertical ? getAbsoluteHeight : getAbsoluteWidth;\n var sizeOfParent = isBody ? (getSize(docElement) + docElement[scrollPositionProperty]) : popupParent[sizeProperty];\n if (isBody) {\n sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);\n }\n var max = sizeOfParent - offsetSize;\n return Math.min(Math.max(position, 0), Math.abs(max));\n };\n PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {\n var _this = this;\n var eParent = this.getPopupParent();\n var parentRect = eParent.getBoundingClientRect();\n var sourceRect = params.element.getBoundingClientRect();\n var initialDiffTop = parentRect.top - sourceRect.top;\n var initialDiffLeft = parentRect.left - sourceRect.left;\n var lastDiffTop = initialDiffTop;\n var lastDiffLeft = initialDiffLeft;\n var topPx = params.ePopup.style.top;\n var top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n var leftPx = params.ePopup.style.left;\n var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);\n return new AgPromise(function (resolve) {\n _this.getFrameworkOverrides().setInterval(function () {\n var pRect = eParent.getBoundingClientRect();\n var sRect = params.element.getBoundingClientRect();\n var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n var currentDiffTop = pRect.top - sRect.top;\n if (currentDiffTop != lastDiffTop) {\n var newTop = _this.keepXYWithinBounds(params.ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);\n params.ePopup.style.top = newTop + \"px\";\n }\n lastDiffTop = currentDiffTop;\n var currentDiffLeft = pRect.left - sRect.left;\n if (currentDiffLeft != lastDiffLeft) {\n var newLeft = _this.keepXYWithinBounds(params.ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);\n params.ePopup.style.left = newLeft + \"px\";\n }\n lastDiffLeft = currentDiffLeft;\n }, 200).then(function (intervalId) {\n var result = function () {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n };\n resolve(result);\n });\n });\n };\n PopupService.prototype.addPopup = function (params) {\n var _a;\n var _this = this;\n var modal = params.modal, eChild = params.eChild, closeOnEsc = params.closeOnEsc, closedCallback = params.closedCallback, click = params.click, alwaysOnTop = params.alwaysOnTop, afterGuiAttached = params.afterGuiAttached, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement, ariaLabel = params.ariaLabel;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var destroyPositionTracker = new AgPromise(function (resolve) { return resolve(function () { }); });\n if (!eDocument) {\n console.warn('ag-grid: could not find the document, document is empty');\n return { hideFunc: function () { }, stopAnchoringPromise: destroyPositionTracker };\n }\n var pos = this.popupList.findIndex(function (popup) { return popup.element === eChild; });\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc, stopAnchoringPromise: popup.stopAnchoringPromise };\n }\n var ePopupParent = this.getPopupParent();\n if (eChild.style.top == null) {\n eChild.style.top = '0px';\n }\n if (eChild.style.left == null) {\n eChild.style.left = '0px';\n }\n // add env CSS class to child, in case user provided a popup parent, which means\n // theme class may be missing\n var eWrapper = document.createElement('div');\n var allThemes = this.environment.getTheme().allThemes;\n if (allThemes.length) {\n (_a = eWrapper.classList).add.apply(_a, __spread$5(allThemes));\n }\n eWrapper.classList.add('ag-popup');\n eChild.classList.add(this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');\n if (!eChild.hasAttribute('role')) {\n setAriaRole(eChild, 'dialog');\n }\n setAriaLabel(eChild, ariaLabel);\n if (this.focusService.isKeyboardMode()) {\n eChild.classList.add(FocusService.AG_KEYBOARD_FOCUS);\n }\n eWrapper.appendChild(eChild);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(eWrapper, true);\n }\n else {\n this.bringPopupToFront(eWrapper);\n }\n var popupHidden = false;\n var hidePopupOnKeyboardEvent = function (event) {\n if (!eWrapper.contains(eDocument.activeElement)) {\n return;\n }\n var key = event.key;\n if (key === KeyCode.ESCAPE) {\n hidePopup({ keyboardEvent: event });\n }\n };\n var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };\n var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };\n var hidePopup = function (popupParams) {\n if (popupParams === void 0) { popupParams = {}; }\n var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;\n if (\n // we don't hide popup if the event was on the child, or any\n // children of this child\n _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, eChild) ||\n // if the event to close is actually the open event, then ignore it\n _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: touchEvent }) ||\n // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden) {\n return;\n }\n popupHidden = true;\n ePopupParent.removeChild(eWrapper);\n eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);\n eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);\n eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);\n _this.eventService.removeEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });\n if (destroyPositionTracker) {\n destroyPositionTracker.then(function (destroyFunc) { return destroyFunc && destroyFunc(); });\n }\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: hidePopup });\n }\n // if we add these listeners now, then the current mouse\n // click will be included, which we don't want\n window.setTimeout(function () {\n if (closeOnEsc) {\n eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);\n _this.eventService.addEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n if (positionCallback) {\n positionCallback();\n }\n if (anchorToElement) {\n // keeps popup positioned under created, eg if context menu, if user scrolls\n // using touchpad and the cell moves, it moves the popup to keep it with the cell.\n destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: anchorToElement,\n ePopup: eChild,\n hidePopup: hidePopup\n });\n }\n this.popupList.push({\n element: eChild,\n wrapper: eWrapper,\n hideFunc: hidePopup,\n stopAnchoringPromise: destroyPositionTracker,\n instanceId: instanceIdSeq++,\n isAnchored: !!anchorToElement\n });\n return {\n hideFunc: hidePopup,\n stopAnchoringPromise: destroyPositionTracker\n };\n };\n PopupService.prototype.hasAnchoredPopup = function () {\n return this.popupList.some(function (popup) { return popup.isAnchored; });\n };\n PopupService.prototype.isEventFromCurrentPopup = function (params, target) {\n var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n var event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n var indexOfThisChild = this.popupList.findIndex(function (popup) { return popup.element === target; });\n if (indexOfThisChild === -1) {\n return false;\n }\n for (var i = indexOfThisChild; i < this.popupList.length; i++) {\n var popup = this.popupList[i];\n if (isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n // if the user did not write their own Custom Element to be rendered as popup\n // and this component has an additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n return this.isElementWithinCustomPopup(event.target);\n };\n PopupService.prototype.isElementWithinCustomPopup = function (el) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n while (el && el !== eDocument.body) {\n if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n };\n // in some browsers, the context menu event can be fired before the click event, which means\n // the context menu event could open the popup, but then the click event closes it straight away.\n PopupService.prototype.isEventSameChainAsOriginalEvent = function (params) {\n var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that\n // the event is a different event, however that is an edge case that is not very relevant (the user clicking\n // twice on the same location isn't a normal path).\n // event could be mouse event or touch event.\n var mouseEventOrTouch = null;\n if (mouseEvent) {\n // mouse event can be used direction, it has coordinates\n mouseEventOrTouch = mouseEvent;\n }\n else if (touchEvent) {\n // touch event doesn't have coordinates, need it's touch object\n mouseEventOrTouch = touchEvent.touches[0];\n }\n if (mouseEventOrTouch && originalMouseEvent) {\n // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed\n // by browser click (when you finger up, touch is interrupted as click in browser)\n var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;\n var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;\n var xMatch = Math.abs(originalMouseEvent.screenX - screenX_1) < 5;\n var yMatch = Math.abs(originalMouseEvent.screenY - screenY_1) < 5;\n if (xMatch && yMatch) {\n return true;\n }\n }\n return false;\n };\n PopupService.prototype.getWrapper = function (ePopup) {\n while (!ePopup.classList.contains('ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return ePopup.classList.contains('ag-popup') ? ePopup : null;\n };\n PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n eWrapper.classList.toggle('ag-always-on-top', !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n };\n PopupService.prototype.bringPopupToFront = function (ePopup) {\n var parent = this.getPopupParent();\n var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));\n var popupLen = popupList.length;\n var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));\n var onTopLength = alwaysOnTopList.length;\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n var pos = popupList.indexOf(eWrapper);\n var innerEls = eWrapper.querySelectorAll('div');\n var innerElsScrollMap = [];\n innerEls.forEach(function (el) {\n if (el.scrollTop !== 0) {\n innerElsScrollMap.push([el, el.scrollTop]);\n }\n });\n if (onTopLength) {\n var isPopupAlwaysOnTop = eWrapper.classList.contains('ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n last(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);\n }\n }\n else if (pos !== popupLen - onTopLength - 1) {\n alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);\n }\n }\n else if (pos !== popupLen - 1) {\n last(popupList).insertAdjacentElement('afterend', eWrapper);\n }\n while (innerElsScrollMap.length) {\n var currentEl = innerElsScrollMap.pop();\n currentEl[0].scrollTop = currentEl[1];\n }\n var params = {\n type: 'popupToFront',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n eWrapper: eWrapper\n };\n this.eventService.dispatchEvent(params);\n };\n var PopupService_1;\n PopupService.WAIT_FOR_POPUP_CONTENT_RESIZE = 200;\n __decorate$O([\n Autowired('environment')\n ], PopupService.prototype, \"environment\", void 0);\n __decorate$O([\n Autowired('focusService')\n ], PopupService.prototype, \"focusService\", void 0);\n __decorate$O([\n Autowired('ctrlsService')\n ], PopupService.prototype, \"ctrlsService\", void 0);\n __decorate$O([\n Autowired('resizeObserverService')\n ], PopupService.prototype, \"resizeObserverService\", void 0);\n __decorate$O([\n Autowired('gridOptionsWrapper')\n ], PopupService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$O([\n PostConstruct\n ], PopupService.prototype, \"postConstruct\", null);\n PopupService = PopupService_1 = __decorate$O([\n Bean('popupService')\n ], PopupService);\n return PopupService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar VirtualList = /** @class */ (function (_super) {\n __extends$L(VirtualList, _super);\n function VirtualList(cssIdentifier, ariaRole, listName) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n if (ariaRole === void 0) { ariaRole = 'listbox'; }\n var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier)) || this;\n _this.cssIdentifier = cssIdentifier;\n _this.ariaRole = ariaRole;\n _this.listName = listName;\n _this.renderedRows = new Map();\n _this.rowHeight = 20;\n return _this;\n }\n VirtualList.prototype.postConstruct = function () {\n var _this = this;\n this.addScrollListener();\n this.rowHeight = this.getItemHeight();\n this.addResizeObserver();\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); },\n focusInnerElement: function (fromBottom) { return _this.focusInnerElement(fromBottom); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n this.setAriaProperties();\n };\n VirtualList.prototype.setAriaProperties = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var listName = translate('ariaDefaultListName', this.listName || 'List');\n var ariaEl = this.eContainer;\n setAriaRole(ariaEl, this.ariaRole);\n setAriaLabel(ariaEl, listName);\n };\n VirtualList.prototype.addResizeObserver = function () {\n var listener = this.drawVirtualRows.bind(this);\n var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);\n this.addDestroyFunc(destroyObserver);\n };\n VirtualList.prototype.focusInnerElement = function (fromBottom) {\n this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);\n };\n VirtualList.prototype.onFocusIn = function (e) {\n var target = e.target;\n if (target.classList.contains('ag-virtual-list-item')) {\n this.lastFocusedRowIndex = getAriaPosInSet(target) - 1;\n }\n return false;\n };\n VirtualList.prototype.onFocusOut = function (e) {\n if (!this.getFocusableElement().contains(e.relatedTarget)) {\n this.lastFocusedRowIndex = null;\n }\n return false;\n };\n VirtualList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (this.navigate(e.key === KeyCode.UP)) {\n e.preventDefault();\n }\n break;\n }\n };\n VirtualList.prototype.onTabKeyDown = function (e) {\n if (this.navigate(e.shiftKey)) {\n e.preventDefault();\n }\n else {\n // focus on the first or last focusable element to ensure that any other handlers start from there\n this.focusService.focusInto(this.getGui(), !e.shiftKey);\n }\n };\n VirtualList.prototype.navigate = function (up) {\n if (this.lastFocusedRowIndex == null) {\n return false;\n }\n var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);\n if (nextRow < 0 || nextRow >= this.model.getRowCount()) {\n return false;\n }\n this.focusRow(nextRow);\n return true;\n };\n VirtualList.prototype.getLastFocusedRow = function () {\n return this.lastFocusedRowIndex;\n };\n VirtualList.prototype.focusRow = function (rowNumber) {\n var _this = this;\n this.ensureIndexVisible(rowNumber);\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n var renderedRow = _this.renderedRows.get(rowNumber);\n if (renderedRow) {\n renderedRow.eDiv.focus();\n }\n }, 10);\n };\n VirtualList.prototype.getComponentAt = function (rowIndex) {\n var comp = this.renderedRows.get(rowIndex);\n return comp && comp.rowComponent;\n };\n VirtualList.prototype.forEachRenderedRow = function (func) {\n this.renderedRows.forEach(function (value, key) { return func(value.rowComponent, key); });\n };\n VirtualList.getTemplate = function (cssIdentifier) {\n return /* html */ \"\\n
\\n
\\n
\";\n };\n VirtualList.prototype.getItemHeight = function () {\n return this.gridOptionsWrapper.getListItemHeight();\n };\n VirtualList.prototype.ensureIndexVisible = function (index) {\n var lastRow = this.model.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= lastRow) {\n console.warn('AG Grid: invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var rowTopPixel = index * this.rowHeight;\n var rowBottomPixel = rowTopPixel + this.rowHeight;\n var eGui = this.getGui();\n var viewportTopPixel = eGui.scrollTop;\n var viewportHeight = eGui.offsetHeight;\n var viewportBottomPixel = viewportTopPixel + viewportHeight;\n var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;\n var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n }\n else if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n var newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n }\n };\n VirtualList.prototype.setComponentCreator = function (componentCreator) {\n this.componentCreator = componentCreator;\n };\n VirtualList.prototype.getRowHeight = function () {\n return this.rowHeight;\n };\n VirtualList.prototype.getScrollTop = function () {\n return this.getGui().scrollTop;\n };\n VirtualList.prototype.setRowHeight = function (rowHeight) {\n this.rowHeight = rowHeight;\n this.refresh();\n };\n VirtualList.prototype.refresh = function () {\n var _this = this;\n if (this.model == null || !this.isAlive()) {\n return;\n }\n var rowCount = this.model.getRowCount();\n this.eContainer.style.height = rowCount * this.rowHeight + \"px\";\n // ensure height is applied before attempting to redraw rows\n waitUntil(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {\n if (!_this.isAlive()) {\n return;\n }\n _this.clearVirtualRows();\n _this.drawVirtualRows();\n });\n };\n VirtualList.prototype.clearVirtualRows = function () {\n var _this = this;\n this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });\n };\n VirtualList.prototype.drawVirtualRows = function () {\n if (!this.isAlive()) {\n return;\n }\n var gui = this.getGui();\n var topPixel = gui.scrollTop;\n var bottomPixel = topPixel + gui.offsetHeight;\n var firstRow = Math.floor(topPixel / this.rowHeight);\n var lastRow = Math.floor(bottomPixel / this.rowHeight);\n this.ensureRowsRendered(firstRow, lastRow);\n };\n VirtualList.prototype.ensureRowsRendered = function (start, finish) {\n var _this = this;\n // remove any rows that are no longer required\n this.renderedRows.forEach(function (_, rowIndex) {\n if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {\n _this.removeRow(rowIndex);\n }\n });\n // insert any required new rows\n for (var rowIndex = start; rowIndex <= finish; rowIndex++) {\n if (this.renderedRows.has(rowIndex)) {\n continue;\n }\n // check this row actually exists (in case overflow buffer window exceeds real data)\n if (rowIndex < this.model.getRowCount()) {\n this.insertRow(rowIndex);\n }\n }\n };\n VirtualList.prototype.insertRow = function (rowIndex) {\n var _this = this;\n var value = this.model.getRow(rowIndex);\n var eDiv = document.createElement('div');\n eDiv.classList.add('ag-virtual-list-item', \"ag-\" + this.cssIdentifier + \"-virtual-list-item\");\n setAriaRole(eDiv, this.ariaRole === 'tree' ? 'treeitem' : 'option');\n setAriaSetSize(eDiv, this.model.getRowCount());\n setAriaPosInSet(eDiv, rowIndex + 1);\n eDiv.setAttribute('tabindex', '-1');\n if (typeof this.model.isRowSelected === 'function') {\n var isSelected = this.model.isRowSelected(rowIndex);\n setAriaSelected(eDiv, !!isSelected);\n setAriaChecked(eDiv, isSelected);\n }\n eDiv.style.height = this.rowHeight + \"px\";\n eDiv.style.top = this.rowHeight * rowIndex + \"px\";\n var rowComponent = this.componentCreator(value, eDiv);\n rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });\n eDiv.appendChild(rowComponent.getGui());\n // keep the DOM order consistent with the order of the rows\n if (this.renderedRows.has(rowIndex - 1)) {\n this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);\n }\n else if (this.renderedRows.has(rowIndex + 1)) {\n this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);\n }\n else {\n this.eContainer.appendChild(eDiv);\n }\n this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv });\n };\n VirtualList.prototype.removeRow = function (rowIndex) {\n var component = this.renderedRows.get(rowIndex);\n this.eContainer.removeChild(component.eDiv);\n this.destroyBean(component.rowComponent);\n this.renderedRows.delete(rowIndex);\n };\n VirtualList.prototype.addScrollListener = function () {\n var _this = this;\n this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); });\n };\n VirtualList.prototype.setModel = function (model) {\n this.model = model;\n };\n VirtualList.prototype.destroy = function () {\n if (!this.isAlive()) {\n return;\n }\n this.clearVirtualRows();\n _super.prototype.destroy.call(this);\n };\n __decorate$N([\n Autowired('resizeObserverService')\n ], VirtualList.prototype, \"resizeObserverService\", void 0);\n __decorate$N([\n Autowired('focusService')\n ], VirtualList.prototype, \"focusService\", void 0);\n __decorate$N([\n RefSelector('eContainer')\n ], VirtualList.prototype, \"eContainer\", void 0);\n __decorate$N([\n PostConstruct\n ], VirtualList.prototype, \"postConstruct\", null);\n return VirtualList;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];\nvar PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\n/** The base frameworks, eg React & Angular, override this bean with implementations specific to their requirement. */\nvar VanillaFrameworkOverrides = /** @class */ (function () {\n function VanillaFrameworkOverrides() {\n this.isOutsideAngular = function (eventType) { return includes(OUTSIDE_ANGULAR_EVENTS, eventType); };\n }\n // for Vanilla JS, we use simple timeout\n VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {\n window.setTimeout(action, timeout);\n };\n VanillaFrameworkOverrides.prototype.setInterval = function (action, timeout) {\n return new AgPromise(function (resolve) {\n resolve(window.setInterval(action, timeout));\n });\n };\n // for Vanilla JS, we just add the event to the element\n VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {\n var isPassive = includes(PASSIVE_EVENTS, type);\n element.addEventListener(type, listener, { capture: !!useCapture, passive: isPassive });\n };\n // for Vanilla JS, we just execute the listener\n VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener, global) {\n listener();\n };\n VanillaFrameworkOverrides.prototype.frameworkComponent = function (name) {\n return null;\n };\n VanillaFrameworkOverrides.prototype.isFrameworkComponent = function (comp) {\n return false;\n };\n return VanillaFrameworkOverrides;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$4 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$5(arguments[i]));\n return ar;\n};\nvar CellNavigationService = /** @class */ (function (_super) {\n __extends$K(CellNavigationService, _super);\n function CellNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // returns null if no cell to focus on, ie at the end of the grid\n CellNavigationService.prototype.getNextCellToFocus = function (key, focusedCell, ctrlPressed) {\n if (ctrlPressed === void 0) { ctrlPressed = false; }\n if (ctrlPressed) {\n return this.getNextCellToFocusWithCtrlPressed(key, focusedCell);\n }\n return this.getNextCellToFocusWithoutCtrlPressed(key, focusedCell);\n };\n CellNavigationService.prototype.getNextCellToFocusWithCtrlPressed = function (key, focusedCell) {\n var upKey = key === KeyCode.UP;\n var downKey = key === KeyCode.DOWN;\n var leftKey = key === KeyCode.LEFT;\n var column;\n var rowIndex;\n if (upKey || downKey) {\n rowIndex = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n column = focusedCell.column;\n }\n else {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n rowIndex = focusedCell.rowIndex;\n column = leftKey !== isRtl ? allColumns[0] : last(allColumns);\n }\n return {\n rowIndex: rowIndex,\n rowPinned: null,\n column: column\n };\n };\n CellNavigationService.prototype.getNextCellToFocusWithoutCtrlPressed = function (key, focusedCell) {\n // starting with the provided cell, we keep moving until we find a cell we can\n // focus on.\n var pointer = focusedCell;\n var finished = false;\n // finished will be true when either:\n // a) cell found that we can focus on\n // b) run out of cells (ie the method returns null)\n while (!finished) {\n switch (key) {\n case KeyCode.UP:\n pointer = this.getCellAbove(pointer);\n break;\n case KeyCode.DOWN:\n pointer = this.getCellBelow(pointer);\n break;\n case KeyCode.RIGHT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToRight(pointer);\n }\n else {\n pointer = this.getCellToLeft(pointer);\n }\n break;\n default:\n pointer = null;\n console.warn('AG Grid: unknown key for navigation ' + key);\n break;\n }\n if (pointer) {\n finished = this.isCellGoodToFocusOn(pointer);\n }\n else {\n finished = true;\n }\n }\n return pointer;\n };\n CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {\n var column = gridCell.column;\n var rowNode;\n switch (gridCell.rowPinned) {\n case Constants.PINNED_TOP:\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case Constants.PINNED_BOTTOM:\n rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);\n break;\n default:\n rowNode = this.rowModel.getRow(gridCell.rowIndex);\n break;\n }\n if (!rowNode) {\n return false;\n }\n var suppressNavigable = column.isSuppressNavigable(rowNode);\n return !suppressNavigable;\n };\n CellNavigationService.prototype.getCellToLeft = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToLeft = this.columnModel.getDisplayedColBefore(lastCell.column);\n if (!colToLeft) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToLeft,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getCellToRight = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToRight = this.columnModel.getDisplayedColAfter(lastCell.column);\n // if already on right, do nothing\n if (!colToRight) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToRight,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getRowBelow = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n if (this.isLastRowInContainer(rowPosition)) {\n switch (pinned) {\n case Constants.PINNED_BOTTOM:\n // never any rows after pinned bottom\n return null;\n case Constants.PINNED_TOP:\n // if on last row of pinned top, then next row is main body (if rows exist),\n // otherwise it's the pinned bottom\n if (this.rowModel.isRowsToRender()) {\n return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n default:\n // if in the main body, then try pinned bottom, otherwise return nothing\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n }\n }\n var rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n var nextStickyPosition = this.getNextStickyPosition(rowNode);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index + 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getNextStickyPosition = function (rowNode, up) {\n if (!this.gridOptionsWrapper.isGroupRowsSticky() || !rowNode || !rowNode.sticky) {\n return;\n }\n var stickyRowCtrls = __spread$4(this.rowRenderer.getStickyTopRowCtrls()).sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode().rowIndex; });\n var diff = up ? -1 : 1;\n var idx = stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode().rowIndex === rowNode.rowIndex; });\n var nextCtrl = stickyRowCtrls[idx + diff];\n if (nextCtrl) {\n return { rowIndex: nextCtrl.getRowNode().rowIndex, rowPinned: null };\n }\n };\n CellNavigationService.prototype.getCellBelow = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowBelow = this.getRowBelow(lastCell);\n if (rowBelow) {\n return {\n rowIndex: rowBelow.rowIndex,\n column: lastCell.column,\n rowPinned: rowBelow.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {\n var pinned = rowPosition.rowPinned;\n var index = rowPosition.rowIndex;\n if (pinned === Constants.PINNED_TOP) {\n var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (pinned === Constants.PINNED_BOTTOM) {\n var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;\n return lastBottomIndex <= index;\n }\n var lastBodyIndex = this.paginationProxy.getPageLastRow();\n return lastBodyIndex <= index;\n };\n CellNavigationService.prototype.getRowAbove = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();\n // if already on top row, do nothing\n if (isFirstRow) {\n if (pinned === Constants.PINNED_TOP) {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n // last floating bottom\n if (this.rowModel.isRowsToRender()) {\n return this.getLastBodyCell();\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n var rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n var nextStickyPosition = this.getNextStickyPosition(rowNode, true);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index - 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellAbove = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });\n if (rowAbove) {\n return {\n rowIndex: rowAbove.rowIndex,\n column: lastCell.column,\n rowPinned: rowAbove.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.getLastBodyCell = function () {\n var lastBodyRow = this.paginationProxy.getPageLastRow();\n return { rowIndex: lastBodyRow, rowPinned: null };\n };\n CellNavigationService.prototype.getLastFloatingTopRow = function () {\n var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return { rowIndex: lastFloatingRow, rowPinned: Constants.PINNED_TOP };\n };\n CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {\n if (backwards) {\n return this.getNextTabbedCellBackwards(gridCell);\n }\n return this.getNextTabbedCellForwards(gridCell);\n };\n CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColAfter(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = displayedColumns[0];\n var rowBelow = this.getRowBelow(gridCell);\n if (missing(rowBelow)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {\n return null;\n }\n newRowIndex = rowBelow ? rowBelow.rowIndex : null;\n newFloating = rowBelow ? rowBelow.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColBefore(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = last(displayedColumns);\n var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });\n if (missing(rowAbove)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {\n return null;\n }\n newRowIndex = rowAbove ? rowAbove.rowIndex : null;\n newFloating = rowAbove ? rowAbove.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n __decorate$M([\n Autowired('columnModel')\n ], CellNavigationService.prototype, \"columnModel\", void 0);\n __decorate$M([\n Autowired('rowModel')\n ], CellNavigationService.prototype, \"rowModel\", void 0);\n __decorate$M([\n Autowired('rowRenderer')\n ], CellNavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$M([\n Autowired('pinnedRowModel')\n ], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$M([\n Autowired('paginationProxy')\n ], CellNavigationService.prototype, \"paginationProxy\", void 0);\n CellNavigationService = __decorate$M([\n Bean('cellNavigationService')\n ], CellNavigationService);\n return CellNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$5 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AlignedGridsService = /** @class */ (function (_super) {\n __extends$J(AlignedGridsService, _super);\n function AlignedGridsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master\n // while processing a master event) we mark this if consuming an event, and if we are, then\n // we don't fire back any events.\n _this.consuming = false;\n return _this;\n }\n AlignedGridsService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('AlignedGridsService');\n };\n AlignedGridsService.prototype.init = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));\n };\n // common logic across all the fire methods\n AlignedGridsService.prototype.fireEvent = function (callback) {\n // if we are already consuming, then we are acting on an event from a master,\n // so we don't cause a cyclic firing of events\n if (this.consuming) {\n return;\n }\n // iterate through the aligned grids, and pass each aligned grid service to the callback\n var otherGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (otherGrids) {\n otherGrids.forEach(function (otherGridOptions) {\n if (otherGridOptions.api) {\n var alignedGridService = otherGridOptions.api.__getAlignedGridService();\n callback(alignedGridService);\n }\n });\n }\n };\n // common logic across all consume methods. very little common logic, however extracting\n // guarantees consistency across the methods.\n AlignedGridsService.prototype.onEvent = function (callback) {\n this.consuming = true;\n callback();\n this.consuming = false;\n };\n AlignedGridsService.prototype.fireColumnEvent = function (event) {\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onColumnEvent(event);\n });\n };\n AlignedGridsService.prototype.fireScrollEvent = function (event) {\n if (event.direction !== 'horizontal') {\n return;\n }\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onScrollEvent(event);\n });\n };\n AlignedGridsService.prototype.onScrollEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);\n });\n };\n AlignedGridsService.prototype.getMasterColumns = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column);\n });\n }\n else if (event.column) {\n result.push(event.column);\n }\n return result;\n };\n AlignedGridsService.prototype.getColumnIds = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column.getColId());\n });\n }\n else if (event.column) {\n result.push(event.column.getColId());\n }\n return result;\n };\n AlignedGridsService.prototype.onColumnEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n switch (event.type) {\n case Events.EVENT_COLUMN_MOVED:\n case Events.EVENT_COLUMN_VISIBLE:\n case Events.EVENT_COLUMN_PINNED:\n case Events.EVENT_COLUMN_RESIZED:\n var colEvent = event;\n _this.processColumnEvent(colEvent);\n break;\n case Events.EVENT_COLUMN_GROUP_OPENED:\n var groupOpenedEvent = event;\n _this.processGroupOpenedEvent(groupOpenedEvent);\n break;\n case Events.EVENT_COLUMN_PIVOT_CHANGED:\n // we cannot support pivoting with aligned grids as the columns will be out of sync as the\n // grids will have columns created based on the row data of the grid.\n console.warn('AG Grid: pivoting is not supported with aligned grids. ' +\n 'You can only use one of these features at a time in a grid.');\n break;\n }\n });\n };\n AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {\n // likewise for column group\n var masterColumnGroup = groupOpenedEvent.columnGroup;\n var otherColumnGroup = null;\n if (masterColumnGroup) {\n var groupId = masterColumnGroup.getGroupId();\n otherColumnGroup = this.columnModel.getProvidedColumnGroup(groupId);\n }\n if (masterColumnGroup && !otherColumnGroup) {\n return;\n }\n this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());\n this.columnModel.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), \"alignedGridChanged\");\n };\n AlignedGridsService.prototype.processColumnEvent = function (colEvent) {\n var _this = this;\n var _a;\n // the column in the event is from the master grid. need to\n // look up the equivalent from this (other) grid\n var masterColumn = colEvent.column;\n var otherColumn = null;\n if (masterColumn) {\n otherColumn = this.columnModel.getPrimaryColumn(masterColumn.getColId());\n }\n // if event was with respect to a master column, that is not present in this\n // grid, then we ignore the event\n if (masterColumn && !otherColumn) {\n return;\n }\n // in time, all the methods below should use the column ids, it's a more generic way\n // of handling columns, and also allows for single or multi column events\n var masterColumns = this.getMasterColumns(colEvent);\n switch (colEvent.type) {\n case Events.EVENT_COLUMN_MOVED:\n // when the user moves columns via setColumnState, we can't depend on moving specific columns\n // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).\n // so only way to be sure is match the order of all columns using Column State.\n {\n var movedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });\n this.columnModel.applyColumnState({ state: destColState, applyOrder: true }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" toIndex = \" + movedEvent.toIndex);\n }\n break;\n case Events.EVENT_COLUMN_VISIBLE:\n // when the user changes visibility via setColumnState, we can't depend on visibility flag in event\n // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).\n // so only way to be sure is match the visibility of all columns using Column State.\n {\n var visibleEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" visible = \" + visibleEvent.visible);\n }\n break;\n case Events.EVENT_COLUMN_PINNED:\n {\n var pinnedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" pinned = \" + pinnedEvent.pinned);\n }\n break;\n case Events.EVENT_COLUMN_RESIZED:\n var resizedEvent = colEvent;\n var columnWidths_1 = {};\n masterColumns.forEach(function (column) {\n _this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" actualWidth = \" + column.getActualWidth());\n columnWidths_1[column.getId()] = { key: column.getColId(), newWidth: column.getActualWidth() };\n });\n // don't set flex columns width\n (_a = resizedEvent.flexColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {\n if (columnWidths_1[col.getId()]) {\n delete columnWidths_1[col.getId()];\n }\n });\n this.columnModel.setColumnWidths(Object.values(columnWidths_1), false, resizedEvent.finished, \"alignedGridChanged\");\n break;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();\n var alignedGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (alignedGrids) {\n alignedGrids.forEach(function (grid) {\n if (grid.api) {\n grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);\n }\n });\n }\n };\n __decorate$L([\n Autowired('columnModel')\n ], AlignedGridsService.prototype, \"columnModel\", void 0);\n __decorate$L([\n Autowired('ctrlsService')\n ], AlignedGridsService.prototype, \"ctrlsService\", void 0);\n __decorate$L([\n __param$5(0, Qualifier('loggerFactory'))\n ], AlignedGridsService.prototype, \"setBeans\", null);\n __decorate$L([\n PostConstruct\n ], AlignedGridsService.prototype, \"init\", null);\n AlignedGridsService = __decorate$L([\n Bean('alignedGridsService')\n ], AlignedGridsService);\n return AlignedGridsService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$4 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionService = /** @class */ (function (_super) {\n __extends$I(SelectionService, _super);\n function SelectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('selectionService');\n this.reset();\n };\n SelectionService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n };\n SelectionService.prototype.setLastSelectedNode = function (rowNode) {\n this.lastSelectedNode = rowNode;\n };\n SelectionService.prototype.getLastSelectedNode = function () {\n return this.lastSelectedNode;\n };\n SelectionService.prototype.getSelectedNodes = function () {\n var selectedNodes = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode) {\n selectedNodes.push(rowNode);\n }\n });\n return selectedNodes;\n };\n SelectionService.prototype.getSelectedRows = function () {\n var selectedRows = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.data) {\n selectedRows.push(rowNode.data);\n }\n });\n return selectedRows;\n };\n SelectionService.prototype.removeGroupsFromSelection = function () {\n var _this = this;\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.group) {\n _this.selectedNodes[rowNode.id] = undefined;\n }\n });\n };\n // should only be called if groupSelectsChildren=true\n SelectionService.prototype.updateGroupsFromChildrenSelections = function (changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.gridOptionsWrapper.isGroupSelectsChildren()) {\n return;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n return;\n }\n var clientSideRowModel = this.rowModel;\n var rootNode = clientSideRowModel.getRootNode();\n if (!changedPath) {\n changedPath = new ChangedPath(true, rootNode);\n changedPath.setInactive();\n }\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n if (rowNode !== rootNode) {\n var selected = rowNode.calculateSelectedFromChildren();\n rowNode.selectThisNode(selected === null ? false : selected);\n }\n });\n // clientSideRowModel.getTopLevelNodes()!.forEach((rowNode: RowNode) => {\n // rowNode.depthFirstSearch((node) => {\n // if (node.group) {\n // }\n // });\n // });\n };\n SelectionService.prototype.getNodeForIdIfSelected = function (id) {\n return this.selectedNodes[id];\n };\n SelectionService.prototype.clearOtherNodes = function (rowNodeToKeepSelected) {\n var _this = this;\n var groupsToRefresh = {};\n var updatedCount = 0;\n iterateObject(this.selectedNodes, function (key, otherRowNode) {\n if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {\n var rowNode = _this.selectedNodes[otherRowNode.id];\n updatedCount += rowNode.setSelectedParams({\n newValue: false,\n clearSelection: false,\n suppressFinishActions: true\n });\n if (_this.groupSelectsChildren && otherRowNode.parent) {\n groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;\n }\n }\n });\n iterateObject(groupsToRefresh, function (key, group) {\n var selected = group.calculateSelectedFromChildren();\n group.selectThisNode(selected === null ? false : selected);\n });\n return updatedCount;\n };\n SelectionService.prototype.onRowSelected = function (event) {\n var rowNode = event.node;\n // we do not store the group rows when the groups select children\n if (this.groupSelectsChildren && rowNode.group) {\n return;\n }\n if (rowNode.isSelected()) {\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n this.selectedNodes[rowNode.id] = undefined;\n }\n };\n SelectionService.prototype.syncInRowNode = function (rowNode, oldNode) {\n this.syncInOldRowNode(rowNode, oldNode);\n this.syncInNewRowNode(rowNode);\n };\n // if the id has changed for the node, then this means the rowNode\n // is getting used for a different data item, which breaks\n // our selectedNodes, as the node now is mapped by the old id\n // which is inconsistent. so to keep the old node as selected,\n // we swap in the clone (with the old id and old data). this means\n // the oldNode is effectively a daemon we keep a reference to,\n // so if client calls api.getSelectedNodes(), it gets the daemon\n // in the result. when the client un-selects, the reference to the\n // daemon is removed. the daemon, because it's an oldNode, is not\n // used by the grid for rendering, it's a copy of what the node used\n // to be like before the id was changed.\n SelectionService.prototype.syncInOldRowNode = function (rowNode, oldNode) {\n var oldNodeHasDifferentId = exists(oldNode) && (rowNode.id !== oldNode.id);\n if (oldNodeHasDifferentId && oldNode) {\n var id = oldNode.id;\n var oldNodeSelected = this.selectedNodes[id] == rowNode;\n if (oldNodeSelected) {\n this.selectedNodes[oldNode.id] = oldNode;\n }\n }\n };\n SelectionService.prototype.syncInNewRowNode = function (rowNode) {\n if (exists(this.selectedNodes[rowNode.id])) {\n rowNode.setSelectedInitialValue(true);\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n rowNode.setSelectedInitialValue(false);\n }\n };\n SelectionService.prototype.reset = function () {\n this.logger.log('reset');\n this.selectedNodes = {};\n this.lastSelectedNode = null;\n };\n // returns a list of all nodes at 'best cost' - a feature to be used\n // with groups / trees. if a group has all it's children selected,\n // then the group appears in the result, but not the children.\n // Designed for use with 'children' as the group selection type,\n // where groups don't actually appear in the selection normally.\n SelectionService.prototype.getBestCostNodeSelection = function () {\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.warn('AG Grid: `getBestCostNodeSelection` is only available when using normal row model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n var topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\n console.warn('AG Grid: `selectAll` not available doing `rowModel=virtual`');\n return;\n }\n var result = [];\n // recursive function, to find the selected nodes\n function traverse(nodes) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n var node = nodes[i];\n if (node.isSelected()) {\n result.push(node);\n }\n else {\n // if not selected, then if it's a group, and the group\n // has children, continue to search for selections\n var maybeGroup = node;\n if (maybeGroup.group && maybeGroup.children) {\n traverse(maybeGroup.children);\n }\n }\n }\n }\n traverse(topLevelNodes);\n return result;\n };\n SelectionService.prototype.setRowModel = function (rowModel) {\n this.rowModel = rowModel;\n };\n SelectionService.prototype.isEmpty = function () {\n var count = 0;\n iterateObject(this.selectedNodes, function (nodeId, rowNode) {\n if (rowNode) {\n count++;\n }\n });\n return count === 0;\n };\n SelectionService.prototype.deselectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n var callback = function (rowNode) { return rowNode.selectThisNode(false); };\n var rowModelClientSide = this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (justFiltered) {\n if (!rowModelClientSide) {\n console.error('AG Grid: selecting just filtered only works with In Memory Row Model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n iterateObject(this.selectedNodes, function (id, rowNode) {\n // remember the reference can be to null, as we never 'delete' from the map\n if (rowNode) {\n callback(rowNode);\n }\n });\n // this clears down the map (whereas above only sets the items in map to 'undefined')\n this.reset();\n }\n // the above does not clean up the parent rows if they are selected\n if (rowModelClientSide && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n };\n this.eventService.dispatchEvent(event);\n };\n SelectionService.prototype.selectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n throw new Error(\"selectAll only available with normal row model, ie not \" + this.rowModel.getType());\n }\n var clientSideRowModel = this.rowModel;\n var callback = function (rowNode) { return rowNode.selectThisNode(true); };\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n clientSideRowModel.forEachNode(callback);\n }\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n };\n this.eventService.dispatchEvent(event);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.selectNode = function (rowNode, tryMulti) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.deselectIndex = function (rowIndex) {\n var node = this.rowModel.getRow(rowIndex);\n this.deselectNode(node);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.deselectNode = function (rowNode) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: false, clearSelection: false });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.selectIndex = function (index, tryMulti) {\n var node = this.rowModel.getRow(index);\n this.selectNode(node, tryMulti);\n };\n __decorate$K([\n Autowired('rowModel')\n ], SelectionService.prototype, \"rowModel\", void 0);\n __decorate$K([\n __param$4(0, Qualifier('loggerFactory'))\n ], SelectionService.prototype, \"setBeans\", null);\n __decorate$K([\n PostConstruct\n ], SelectionService.prototype, \"init\", null);\n SelectionService = __decorate$K([\n Bean('selectionService')\n ], SelectionService);\n return SelectionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnApi = /** @class */ (function () {\n function ColumnApi() {\n }\n /** Gets the grid to size the columns to the specified width in pixels, e.g. `sizeColumnsToFit(900)`. To have the grid fit the columns to the grid's width, use the Grid API `gridApi.sizeColumnsToFit()` instead. */\n ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {\n // AG-3403 validate that gridWidth is provided because this method has the same name as\n // a method on the grid API that takes no arguments, and it's easy to confuse the two\n if (typeof gridWidth === \"undefined\") {\n console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');\n }\n this.columnModel.sizeColumnsToFit(gridWidth, 'api');\n };\n /** Call this if you want to open or close a column group. */\n ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnModel.setColumnGroupOpened(group, newValue, 'api'); };\n /** Returns the column group with the given name. */\n ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnModel.getColumnGroup(name, instanceId); };\n /** Returns the provided column group with the given name. */\n ColumnApi.prototype.getProvidedColumnGroup = function (name) { return this.columnModel.getProvidedColumnGroup(name); };\n /** Returns the display name for a column. Useful if you are doing your own header rendering and want the grid to work out if `headerValueGetter` is used, or if you are doing your own column management GUI, to know what to show as the column name. */\n ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnModel.getDisplayNameForColumn(column, location) || ''; };\n /** Returns the display name for a column group (when grouping columns). */\n ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnModel.getDisplayNameForColumnGroup(columnGroup, location) || ''; };\n /** Returns the column with the given `colKey`, which can either be the `colId` (a string) or the `colDef` (an object). */\n ColumnApi.prototype.getColumn = function (key) { return this.columnModel.getPrimaryColumn(key); };\n /** Returns all the columns, regardless of visible or not. */\n ColumnApi.prototype.getColumns = function () { return this.columnModel.getAllPrimaryColumns(); };\n /** Applies the state of the columns from a previous state. Returns `false` if one or more columns could not be found. */\n ColumnApi.prototype.applyColumnState = function (params) { return this.columnModel.applyColumnState(params, 'api'); };\n /** Gets the state of the columns. Typically used when saving column state. */\n ColumnApi.prototype.getColumnState = function () { return this.columnModel.getColumnState(); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnState = function () { this.columnModel.resetColumnState('api'); };\n /** Gets the state of the column groups. Typically used when saving column group state. */\n ColumnApi.prototype.getColumnGroupState = function () { return this.columnModel.getColumnGroupState(); };\n /** Sets the state of the column group state from a previous state. */\n ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnModel.setColumnGroupState(stateItems, 'api'); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnGroupState = function () { this.columnModel.resetColumnGroupState('api'); };\n /** Returns `true` if pinning left or right, otherwise `false`. */\n ColumnApi.prototype.isPinning = function () { return this.columnModel.isPinningLeft() || this.columnModel.isPinningRight(); };\n /** Returns `true` if pinning left, otherwise `false`. */\n ColumnApi.prototype.isPinningLeft = function () { return this.columnModel.isPinningLeft(); };\n /** Returns `true` if pinning right, otherwise `false`. */\n ColumnApi.prototype.isPinningRight = function () { return this.columnModel.isPinningRight(); };\n /** Returns the column to the right of the provided column, taking into consideration open / closed column groups and visible columns. This is useful if you need to know what column is beside yours e.g. if implementing your own cell navigation. */\n ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnModel.getDisplayedColAfter(col); };\n /** Same as `getVisibleColAfter` except gives column to the left. */\n ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnModel.getDisplayedColBefore(col); };\n /** Sets the visibility of a column. Key can be the column ID or `Column` object. */\n ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnModel.setColumnVisible(key, visible, 'api'); };\n /** Same as `setColumnVisible`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnModel.setColumnsVisible(keys, visible, 'api'); };\n /** Sets the column pinned / unpinned. Key can be the column ID, field, `ColDef` object or `Column` object. */\n ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnModel.setColumnPinned(key, pinned, 'api'); };\n /** Same as `setColumnPinned`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnModel.setColumnsPinned(keys, pinned, 'api'); };\n /**\n * Returns all the grid columns, same as `getColumns()`, except\n *\n * a) it has the order of the columns that are presented in the grid\n *\n * b) it's after the 'pivot' step, so if pivoting, has the value columns for the pivot.\n */\n ColumnApi.prototype.getAllGridColumns = function () { return this.columnModel.getAllGridColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnModel.getDisplayedLeftColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the center portion of the grid. */\n ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnModel.getDisplayedCenterColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnModel.getDisplayedRightColumns(); };\n /** Returns all columns currently displayed (e.g. are visible and if in a group, the group is showing the columns) for the pinned left, centre and pinned right portions of the grid. */\n ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnModel.getAllDisplayedColumns(); };\n /** Same as `getAllGridColumns()`, except only returns rendered columns, i.e. columns that are not within the viewport and therefore not rendered, due to column virtualisation, are not displayed. */\n ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnModel.getViewportColumns(); };\n /** Moves a column to `toIndex`. The column is first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */\n ColumnApi.prototype.moveColumn = function (key, toIndex) {\n if (typeof key === 'number') {\n // moveColumn used to take indexes, so this is advising user who hasn't moved to new method name\n console.warn('AG Grid: you are using moveColumn(fromIndex, toIndex) - moveColumn takes a column key and a destination index, not two indexes, to move with indexes use moveColumnByIndex(from,to) instead');\n this.columnModel.moveColumnByIndex(key, toIndex, 'api');\n }\n else {\n this.columnModel.moveColumn(key, toIndex, 'api');\n }\n };\n /** Same as `moveColumn` but works on index locations. */\n ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnModel.moveColumnByIndex(fromIndex, toIndex, 'api'); };\n /** Same as `moveColumn` but works on list. */\n ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnModel.moveColumns(columnsToMoveKeys, toIndex, 'api'); };\n /** Move the column to a new position in the row grouping order. */\n ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnModel.moveRowGroupColumn(fromIndex, toIndex); };\n /** Sets the agg function for a column. `aggFunc` can be one of the built-in aggregations or a custom aggregation by name or direct function. */\n ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnModel.setColumnAggFunc(key, aggFunc); };\n /** Sets the column width on a single column. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished, source);\n };\n /** Sets the column widths on multiple columns. This method offers better performance than calling `setColumnWidth` multiple times. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidths = function (columnWidths, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths(columnWidths, false, finished, source);\n };\n /** Set the pivot mode. */\n ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnModel.setPivotMode(pivotMode); };\n /** Get the pivot mode. */\n ColumnApi.prototype.isPivotMode = function () { return this.columnModel.isPivotMode(); };\n /** @deprecated Use `getPivotResultColumn` instead */\n ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n console.warn('AG Grid: since version 28.0.x getSecondaryPivotColumn has been renamed, please use getPivotResultColumn instead');\n return this.getPivotResultColumn(pivotKeys, valueColKey);\n };\n /** Returns the pivot result column for the given `pivotKeys` and `valueColId`. Useful to then call operations on the pivot column. */\n ColumnApi.prototype.getPivotResultColumn = function (pivotKeys, valueColKey) { return this.columnModel.getSecondaryPivotColumn(pivotKeys, valueColKey); };\n /** Set the value columns to the provided list of columns. */\n ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnModel.setValueColumns(colKeys, 'api'); };\n /** Get a list of the existing value columns. */\n ColumnApi.prototype.getValueColumns = function () { return this.columnModel.getValueColumns(); };\n /** Remove the given column from the existing set of value columns. */\n ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnModel.removeValueColumn(colKey, 'api'); };\n /** Like `removeValueColumn` but remove the given list of columns from the existing set of value columns. */\n ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnModel.removeValueColumns(colKeys, 'api'); };\n /** Add the given column to the set of existing value columns. */\n ColumnApi.prototype.addValueColumn = function (colKey) { this.columnModel.addValueColumn(colKey, 'api'); };\n /** Like `addValueColumn` but add the given list of columns to the existing set of value columns. */\n ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnModel.addValueColumns(colKeys, 'api'); };\n /** Set the row group columns. */\n ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnModel.setRowGroupColumns(colKeys, 'api'); };\n /** Remove a column from the row groups. */\n ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnModel.removeRowGroupColumn(colKey, 'api'); };\n /** Same as `removeRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnModel.removeRowGroupColumns(colKeys, 'api'); };\n /** Add a column to the row groups. */\n ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnModel.addRowGroupColumn(colKey, 'api'); };\n /** Same as `addRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnModel.addRowGroupColumns(colKeys, 'api'); };\n /** Get row group columns. */\n ColumnApi.prototype.getRowGroupColumns = function () { return this.columnModel.getRowGroupColumns(); };\n /** Set the pivot columns. */\n ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnModel.setPivotColumns(colKeys, 'api'); };\n /** Remove a pivot column. */\n ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnModel.removePivotColumn(colKey, 'api'); };\n /** Same as `removePivotColumn` but provide a list of columns. */\n ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnModel.removePivotColumns(colKeys, 'api'); };\n /** Add a pivot column. */\n ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnModel.addPivotColumn(colKey, 'api'); };\n /** Same as `addPivotColumn` but provide a list of columns. */\n ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnModel.addPivotColumns(colKeys, 'api'); };\n /** Get the pivot columns. */\n ColumnApi.prototype.getPivotColumns = function () { return this.columnModel.getPivotColumns(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeLeft(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the center portion of the grid. */\n ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeCentre(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeRight(); };\n /** Returns all 'root' column headers. If you are not grouping columns, these return the columns. If you are grouping, these return the top level groups - you can navigate down through each one to get the other lower level headers and finally the columns at the bottom. */\n ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnModel.getAllDisplayedTrees(); };\n /** Auto-sizes a column based on its contents. */\n ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnModel.autoSizeColumn(key, skipHeader, 'api'); };\n /** Same as `autoSizeColumn`, but provide a list of column keys. */\n ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) {\n this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader });\n };\n /** Calls `autoSizeColumns` on all displayed columns. */\n ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnModel.autoSizeAllColumns(skipHeader, 'api'); };\n /** @deprecated Use `setPivotResultColumns` instead. */\n ColumnApi.prototype.setSecondaryColumns = function (colDefs) {\n console.warn('AG Grid: since version 28.0.x setSecondaryColumns has been renamed, please use setPivotResultColumns instead');\n this.setPivotResultColumns(colDefs);\n };\n /** Set the pivot result columns. */\n ColumnApi.prototype.setPivotResultColumns = function (colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); };\n /** @deprecated Use `getPivotResultColumns` instead. */\n ColumnApi.prototype.getSecondaryColumns = function () {\n console.warn('AG Grid: since version 28.0.x getSecondaryColumns has been renamed, please use getPivotResultColumns instead');\n return this.getPivotResultColumns();\n };\n /** Returns the grid's pivot result columns. */\n ColumnApi.prototype.getPivotResultColumns = function () { return this.columnModel.getSecondaryColumns(); };\n /** @deprecated Use `getColumns` instead. */\n ColumnApi.prototype.getPrimaryColumns = function () {\n console.warn('AG Grid: since version 28.0.x getPrimaryColumns has been renamed, please use getColumns instead');\n return this.getColumns();\n };\n ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(_.removeAllReferences.bind(window, this, 'Column API'), 100);\n };\n // below goes through deprecated items, prints message to user, then calls the new version of the same method\n // public getColumnDefs(): (ColDef | ColGroupDef)[] {\n // this.setColumnGroupOpened(group, newValue);\n // return null;\n // }\n /** @deprecated Use `getColumns` instead */\n ColumnApi.prototype.getAllColumns = function () {\n console.warn('AG Grid: since version 28.0.x getAllColumns has been renamed, please use getColumns instead');\n return this.getColumns();\n };\n /** @deprecated columnGroupOpened no longer exists, use setColumnGroupOpened */\n ColumnApi.prototype.columnGroupOpened = function (group, newValue) {\n console.error('AG Grid: columnGroupOpened no longer exists, use setColumnGroupOpened');\n this.setColumnGroupOpened(group, newValue);\n };\n /** @deprecated hideColumns is deprecated, use setColumnsVisible */\n ColumnApi.prototype.hideColumns = function (colIds, hide) {\n console.error('AG Grid: hideColumns is deprecated, use setColumnsVisible');\n this.columnModel.setColumnsVisible(colIds, !hide, 'api');\n };\n /** @deprecated hideColumn is deprecated, use setColumnVisible */\n ColumnApi.prototype.hideColumn = function (colId, hide) {\n console.error('AG Grid: hideColumn is deprecated, use setColumnVisible');\n this.columnModel.setColumnVisible(colId, !hide, 'api');\n };\n /** @deprecated setState is deprecated, use setColumnState */\n ColumnApi.prototype.setState = function (columnState) {\n console.error('AG Grid: setState is deprecated, use setColumnState');\n return this.setColumnState(columnState);\n };\n /** @deprecated getState is deprecated, use getColumnState */\n ColumnApi.prototype.getState = function () {\n console.error('AG Grid: getState is deprecated, use getColumnState');\n return this.getColumnState();\n };\n /** @deprecated resetState is deprecated, use resetColumnState */\n ColumnApi.prototype.resetState = function () {\n console.error('AG Grid: resetState is deprecated, use resetColumnState');\n this.resetColumnState();\n };\n /** @deprecated getAggregationColumns is deprecated, use getValueColumns */\n ColumnApi.prototype.getAggregationColumns = function () {\n console.error('AG Grid: getAggregationColumns is deprecated, use getValueColumns');\n return this.columnModel.getValueColumns();\n };\n /** @deprecated removeAggregationColumn is deprecated, use removeValueColumn */\n ColumnApi.prototype.removeAggregationColumn = function (colKey) {\n console.error('AG Grid: removeAggregationColumn is deprecated, use removeValueColumn');\n this.columnModel.removeValueColumn(colKey, 'api');\n };\n /** @deprecated removeAggregationColumns is deprecated, use removeValueColumns */\n ColumnApi.prototype.removeAggregationColumns = function (colKeys) {\n console.error('AG Grid: removeAggregationColumns is deprecated, use removeValueColumns');\n this.columnModel.removeValueColumns(colKeys, 'api');\n };\n /** @deprecated addAggregationColumn is deprecated, use addValueColumn */\n ColumnApi.prototype.addAggregationColumn = function (colKey) {\n console.error('AG Grid: addAggregationColumn is deprecated, use addValueColumn');\n this.columnModel.addValueColumn(colKey, 'api');\n };\n /** @deprecated addAggregationColumns is deprecated, use addValueColumns */\n ColumnApi.prototype.addAggregationColumns = function (colKeys) {\n console.error('AG Grid: addAggregationColumns is deprecated, use addValueColumns');\n this.columnModel.addValueColumns(colKeys, 'api');\n };\n /** @deprecated setColumnAggFunction is deprecated, use setColumnAggFunc */\n ColumnApi.prototype.setColumnAggFunction = function (column, aggFunc) {\n console.error('AG Grid: setColumnAggFunction is deprecated, use setColumnAggFunc');\n this.columnModel.setColumnAggFunc(column, aggFunc, 'api');\n };\n /** @deprecated getDisplayNameForCol is deprecated, use getDisplayNameForColumn */\n ColumnApi.prototype.getDisplayNameForCol = function (column) {\n console.error('AG Grid: getDisplayNameForCol is deprecated, use getDisplayNameForColumn');\n return this.getDisplayNameForColumn(column, null);\n };\n /** @deprecated setColumnState is deprecated, use applyColumnState. */\n ColumnApi.prototype.setColumnState = function (columnState) {\n console.error('AG Grid: setColumnState is deprecated, use applyColumnState');\n return this.columnModel.applyColumnState({ state: columnState, applyOrder: true }, 'api');\n };\n /** @deprecated getOriginalColumnGroup is deprecated, use getProvidedColumnGroup. */\n ColumnApi.prototype.getOriginalColumnGroup = function (name) {\n console.error('AG Grid: getOriginalColumnGroup is deprecated, use getProvidedColumnGroup');\n return this.columnModel.getProvidedColumnGroup(name);\n };\n __decorate$J([\n Autowired('columnModel')\n ], ColumnApi.prototype, \"columnModel\", void 0);\n __decorate$J([\n PreDestroy\n ], ColumnApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n ColumnApi = __decorate$J([\n Bean('columnApi')\n ], ColumnApi);\n return ColumnApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueService = /** @class */ (function (_super) {\n __extends$H(ValueService, _super);\n function ValueService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.initialised = false;\n return _this;\n }\n ValueService.prototype.init = function () {\n var _this = this;\n this.cellExpressions = this.gridOptionsWrapper.isEnableCellExpressions();\n this.initialised = true;\n // We listen to our own event and use it to call the columnSpecific callback,\n // this way the handler calls are correctly interleaved with other global events\n this.eventService.addEventListener(Events.EVENT_CELL_VALUE_CHANGED, function (event) { return _this.callColumnCellValueChangedHandler(event); }, this.gridOptionsWrapper.useAsyncEvents());\n };\n ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {\n if (forFilter === void 0) { forFilter = false; }\n if (ignoreAggData === void 0) { ignoreAggData = false; }\n // hack - the grid is getting refreshed before this bean gets initialised, race condition.\n // really should have a way so they get initialised in the right order???\n if (!this.initialised) {\n this.init();\n }\n if (!rowNode) {\n return;\n }\n // pull these out to make code below easier to read\n var colDef = column.getColDef();\n var field = colDef.field;\n var colId = column.getId();\n var data = rowNode.data;\n var result;\n // if there is a value getter, this gets precedence over a field\n var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;\n var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.gridOptionsWrapper.isTreeData() && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && (field && data)) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n else if (groupDataExists) {\n result = rowNode.groupData[colId];\n }\n else if (aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (field && data) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n // the result could be an expression itself, if we are allowing cell values to be expressions\n if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {\n var cellValueGetter = result.substring(1);\n result = this.executeValueGetter(cellValueGetter, data, column, rowNode);\n }\n if (result == null) {\n var openedGroup = this.getOpenedGroup(rowNode, column);\n if (openedGroup != null) {\n return openedGroup;\n }\n }\n return result;\n };\n ValueService.prototype.getOpenedGroup = function (rowNode, column) {\n if (!this.gridOptionsWrapper.isShowOpenedGroup()) {\n return;\n }\n var colDef = column.getColDef();\n if (!colDef.showRowGroup) {\n return;\n }\n var showRowGroup = column.getColDef().showRowGroup;\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getId())) {\n return pointer.key;\n }\n pointer = pointer.parent;\n }\n return undefined;\n };\n /**\n * Sets the value of a GridCell\n * @param rowNode The `RowNode` to be updated\n * @param colKey The `Column` to be updated\n * @param newValue The new value to be set\n * @param eventSource The event source\n * @returns `True` if the value has been updated, otherwise`False`.\n */\n ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (!rowNode || !column) {\n return false;\n }\n // this will only happen if user is trying to paste into a group row, which doesn't make sense\n // the user should not be trying to paste into group rows\n if (missing(rowNode.data)) {\n rowNode.data = {};\n }\n // for backwards compatibility we are also retrieving the newValueHandler as well as the valueSetter\n var _a = column.getColDef(), field = _a.field, newValueHandler = _a.newValueHandler, valueSetter = _a.valueSetter;\n // need either a field or a newValueHandler for this to work\n if (missing(field) && missing(newValueHandler) && missing(valueSetter)) {\n // we don't tell user about newValueHandler, as that is deprecated\n console.warn(\"AG Grid: you need either field or valueSetter set on colDef for editing to work\");\n return false;\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n oldValue: this.getValue(column, rowNode),\n newValue: newValue,\n colDef: column.getColDef(),\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n params.newValue = newValue;\n var valueWasDifferent;\n if (newValueHandler && exists(newValueHandler)) {\n valueWasDifferent = newValueHandler(params);\n }\n else if (exists(valueSetter)) {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n else {\n valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());\n }\n // in case user forgot to return something (possible if they are not using TypeScript\n // and just forgot, or using an old newValueHandler we didn't always expect a return\n // value here), we default the return value to true, so we always refresh.\n if (valueWasDifferent === undefined) {\n valueWasDifferent = true;\n }\n // if no change to the value, then no need to do the updating, or notifying via events.\n // otherwise the user could be tabbing around the grid, and cellValueChange would get called\n // all the time.\n if (!valueWasDifferent) {\n return false;\n }\n // reset quick filter on this row\n rowNode.resetQuickFilterAggregateText();\n this.valueCache.onDataChanged();\n params.newValue = this.getValue(column, rowNode);\n var event = {\n type: Events.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n columnApi: params.columnApi,\n colDef: params.colDef,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n return true;\n };\n ValueService.prototype.callColumnCellValueChangedHandler = function (event) {\n var onCellValueChanged = event.colDef.onCellValueChanged;\n if (typeof onCellValueChanged === 'function') {\n onCellValueChanged({\n node: event.node,\n data: event.data,\n oldValue: event.oldValue,\n newValue: event.newValue,\n colDef: event.colDef,\n column: event.column,\n api: event.api,\n columnApi: event.columnApi,\n context: event.context\n });\n }\n };\n ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {\n if (!field) {\n return false;\n }\n // if no '.', then it's not a deep value\n var valuesAreSame = false;\n if (!isFieldContainsDots) {\n // soft comparison to match strings and numbers\n valuesAreSame = data[field] == newValue;\n if (!valuesAreSame) {\n data[field] = newValue;\n }\n }\n else {\n // otherwise it is a deep value, so need to dig for it\n var fieldPieces = field.split('.');\n var currentObject = data;\n while (fieldPieces.length > 0 && currentObject) {\n var fieldPiece = fieldPieces.shift();\n if (fieldPieces.length === 0) {\n // soft comparison to match strings and numbers\n valuesAreSame = currentObject[fieldPiece] == newValue;\n if (!valuesAreSame) {\n currentObject[fieldPiece] = newValue;\n }\n }\n else {\n currentObject = currentObject[fieldPiece];\n }\n }\n }\n return !valuesAreSame;\n };\n ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n return this.expressionService.evaluate(valueGetter, params);\n };\n ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {\n var colId = column.getId();\n // if inside the same turn, just return back the value we got last time\n var valueFromCache = this.valueCache.getValue(rowNode, colId);\n if (valueFromCache !== undefined) {\n return valueFromCache;\n }\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n var result = this.expressionService.evaluate(valueGetter, params);\n // if a turn is active, store the value in case the grid asks for it again\n this.valueCache.setValue(rowNode, colId, result);\n return result;\n };\n ValueService.prototype.getValueCallback = function (node, field) {\n var otherColumn = this.columnModel.getPrimaryColumn(field);\n if (otherColumn) {\n return this.getValue(otherColumn, node);\n }\n return null;\n };\n // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col\n ValueService.prototype.getKeyForNode = function (col, rowNode) {\n var value = this.getValue(col, rowNode);\n var keyCreator = col.getColDef().keyCreator;\n var result = value;\n if (keyCreator) {\n var keyParams = {\n value: value,\n colDef: col.getColDef(),\n column: col,\n node: rowNode,\n data: rowNode.data,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n result = keyCreator(keyParams);\n }\n // if already a string, or missing, just return it\n if (typeof result === 'string' || result == null) {\n return result;\n }\n result = String(result);\n if (result === '[object Object]') {\n doOnce(function () {\n console.warn('AG Grid: a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se AG Grid docs) or b) to toString() on the object to return a key');\n }, 'getKeyForNode - warn about [object,object]');\n }\n return result;\n };\n __decorate$I([\n Autowired('expressionService')\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate$I([\n Autowired('columnModel')\n ], ValueService.prototype, \"columnModel\", void 0);\n __decorate$I([\n Autowired('valueCache')\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate$I([\n PostConstruct\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate$I([\n Bean('valueService')\n ], ValueService);\n return ValueService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$3 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ExpressionService = /** @class */ (function (_super) {\n __extends$G(ExpressionService, _super);\n function ExpressionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.expressionToFunctionCache = {};\n return _this;\n }\n ExpressionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ExpressionService');\n };\n ExpressionService.prototype.evaluate = function (expressionOrFunc, params) {\n if (typeof expressionOrFunc === 'function') {\n // valueGetter is a function, so just call it\n var func = expressionOrFunc;\n return func(params);\n }\n else if (typeof expressionOrFunc === 'string') {\n // valueGetter is an expression, so execute the expression\n var expression = expressionOrFunc;\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('AG Grid: value should be either a string or a function', expressionOrFunc);\n }\n };\n ExpressionService.prototype.evaluateExpression = function (expression, params) {\n try {\n var javaScriptFunction = this.createExpressionFunction(expression);\n // the params don't have all these values, rather we add every possible\n // value a params can have, which makes whatever is in the params available.\n var result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);\n return result;\n }\n catch (e) {\n // the expression failed, which can happen, as it's the client that\n // provides the expression. so print a nice message\n // tslint:disable-next-line\n console.log('Processing of the expression failed');\n // tslint:disable-next-line\n console.log('Expression = ' + expression);\n // tslint:disable-next-line\n console.log('Params =', params);\n // tslint:disable-next-line\n console.log('Exception = ' + e);\n return null;\n }\n };\n ExpressionService.prototype.createExpressionFunction = function (expression) {\n // check cache first\n if (this.expressionToFunctionCache[expression]) {\n return this.expressionToFunctionCache[expression];\n }\n // if not found in cache, return the function\n var functionBody = this.createFunctionBody(expression);\n var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);\n // store in cache\n this.expressionToFunctionCache[expression] = theFunction;\n return theFunction;\n };\n ExpressionService.prototype.createFunctionBody = function (expression) {\n // if the expression has the 'return' word in it, then use as is,\n // if not, then wrap it with return and ';' to make a function\n if (expression.indexOf('return') >= 0) {\n return expression;\n }\n else {\n return 'return ' + expression + ';';\n }\n };\n __decorate$H([\n __param$3(0, Qualifier('loggerFactory'))\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate$H([\n Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TemplateService = /** @class */ (function (_super) {\n __extends$F(TemplateService, _super);\n function TemplateService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateCache = {};\n _this.waitingCallbacks = {};\n return _this;\n }\n // returns the template if it is loaded, or null if it is not loaded\n // but will call the callback when it is loaded\n TemplateService.prototype.getTemplate = function (url, callback) {\n var templateFromCache = this.templateCache[url];\n if (templateFromCache) {\n return templateFromCache;\n }\n var callbackList = this.waitingCallbacks[url];\n var that = this;\n if (!callbackList) {\n // first time this was called, so need a new list for callbacks\n callbackList = [];\n this.waitingCallbacks[url] = callbackList;\n // and also need to do the http request\n var client = new XMLHttpRequest();\n client.onload = function () {\n that.handleHttpResult(this, url);\n };\n client.open(\"GET\", url);\n client.send();\n }\n // add this callback\n if (callback) {\n callbackList.push(callback);\n }\n // caller needs to wait for template to load, so return null\n return null;\n };\n TemplateService.prototype.handleHttpResult = function (httpResult, url) {\n if (httpResult.status !== 200 || httpResult.response === null) {\n console.warn(\"AG Grid: Unable to get template error \" + httpResult.status + \" - \" + url);\n return;\n }\n // response success, so process it\n // in IE9 the response is in - responseText\n this.templateCache[url] = httpResult.response || httpResult.responseText;\n // inform all listeners that this is now in the cache\n var callbacks = this.waitingCallbacks[url];\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n // we could pass the callback the response, however we know the client of this code\n // is the cell renderer, and it passes the 'cellRefresh' method in as the callback\n // which doesn't take any parameters.\n callback();\n }\n };\n TemplateService = __decorate$G([\n Bean('templateService')\n ], TemplateService);\n return TemplateService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$2 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LoggerFactory = /** @class */ (function (_super) {\n __extends$E(LoggerFactory, _super);\n function LoggerFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoggerFactory.prototype.setBeans = function (gridOptionsWrapper) {\n this.logging = gridOptionsWrapper.isDebug();\n };\n LoggerFactory.prototype.create = function (name) {\n return new Logger(name, this.isLogging.bind(this));\n };\n LoggerFactory.prototype.isLogging = function () {\n return this.logging;\n };\n __decorate$F([\n __param$2(0, Qualifier('gridOptionsWrapper'))\n ], LoggerFactory.prototype, \"setBeans\", null);\n LoggerFactory = __decorate$F([\n Bean('loggerFactory')\n ], LoggerFactory);\n return LoggerFactory;\n}(BeanStub));\nvar Logger = /** @class */ (function () {\n function Logger(name, isLoggingFunc) {\n this.name = name;\n this.isLoggingFunc = isLoggingFunc;\n }\n Logger.prototype.isLogging = function () {\n return this.isLoggingFunc();\n };\n Logger.prototype.log = function (message) {\n if (this.isLoggingFunc()) {\n // tslint:disable-next-line\n console.log('AG Grid.' + this.name + ': ' + message);\n }\n };\n return Logger;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridCtrl = /** @class */ (function (_super) {\n __extends$D(GridCtrl, _super);\n function GridCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridCtrl.prototype.setComp = function (view, eGridDiv, eGui) {\n var _this = this;\n this.view = view;\n this.eGridHostDiv = eGridDiv;\n this.eGui = eGui;\n // this drop target is just used to see if the drop event is inside the grid\n this.dragAndDropService.addDropTarget({\n getContainer: function () { return _this.eGui; },\n isInterestedIn: function (type) { return type === DragSourceType.HeaderCell || type === DragSourceType.ToolPanel; },\n getIconName: function () { return DragAndDropService.ICON_NOT_ALLOWED; },\n });\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);\n this.createManagedBean(new LayoutFeature(this.view));\n // important to set rtl before doLayout, as setting the RTL class impacts the scroll position,\n // which doLayout indirectly depends on\n this.addRtlSupport();\n this.addManagedListener(this, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(true);\n });\n this.addManagedListener(this, Events.EVENT_MOUSE_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(false);\n });\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n this.ctrlsService.registerGridCtrl(this);\n };\n GridCtrl.prototype.isDetailGrid = function () {\n var _a, _b;\n var el = this.focusService.findTabbableParent(this.getGui());\n return ((_b = (_a = el) === null || _a === void 0 ? void 0 : _a.getAttribute('row-id')) === null || _b === void 0 ? void 0 : _b.startsWith('detail')) || false;\n };\n GridCtrl.prototype.showDropZones = function () {\n return ModuleRegistry.isRegistered(ModuleNames.RowGroupingModule);\n };\n GridCtrl.prototype.showSideBar = function () {\n return ModuleRegistry.isRegistered(ModuleNames.SideBarModule);\n };\n GridCtrl.prototype.showStatusBar = function () {\n return ModuleRegistry.isRegistered(ModuleNames.StatusBarModule);\n };\n GridCtrl.prototype.showWatermark = function () {\n return ModuleRegistry.isRegistered(ModuleNames.EnterpriseCoreModule);\n };\n GridCtrl.prototype.onGridSizeChanged = function () {\n var event = {\n type: Events.EVENT_GRID_SIZE_CHANGED,\n clientWidth: this.eGridHostDiv.clientWidth,\n clientHeight: this.eGridHostDiv.clientHeight\n };\n this.eventService.dispatchEvent(event);\n };\n GridCtrl.prototype.addRtlSupport = function () {\n var cssClass = this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr';\n this.view.setRtlClass(cssClass);\n };\n GridCtrl.prototype.destroyGridUi = function () {\n this.view.destroyGridUi();\n };\n GridCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n GridCtrl.prototype.setResizeCursor = function (on) {\n this.view.setCursor(on ? 'ew-resize' : null);\n };\n GridCtrl.prototype.disableUserSelect = function (on) {\n this.view.setUserSelect(on ? 'none' : null);\n };\n GridCtrl.prototype.focusNextInnerContainer = function (backwards) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var focusableContainers = this.view.getFocusableContainers();\n var idxWithFocus = focusableContainers.findIndex(function (container) { return container.contains(eDocument.activeElement); });\n var nextIdx = idxWithFocus + (backwards ? -1 : 1);\n if (nextIdx <= 0 || nextIdx >= focusableContainers.length) {\n return false;\n }\n return this.focusService.focusInto(focusableContainers[nextIdx]);\n };\n GridCtrl.prototype.focusInnerElement = function (fromBottom) {\n var focusableContainers = this.view.getFocusableContainers();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusService.focusInto(last(focusableContainers), true);\n }\n var lastColumn = last(this.columnModel.getAllDisplayedColumns());\n if (this.focusService.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n return this.focusService.focusFirstHeader();\n };\n GridCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.view.forceFocusOutOfContainer(up);\n };\n __decorate$E([\n Autowired('focusService')\n ], GridCtrl.prototype, \"focusService\", void 0);\n __decorate$E([\n Autowired('resizeObserverService')\n ], GridCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$E([\n Autowired('columnModel')\n ], GridCtrl.prototype, \"columnModel\", void 0);\n __decorate$E([\n Autowired('ctrlsService')\n ], GridCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$E([\n Autowired('mouseEventService')\n ], GridCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$E([\n Autowired('dragAndDropService')\n ], GridCtrl.prototype, \"dragAndDropService\", void 0);\n return GridCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridComp = /** @class */ (function (_super) {\n __extends$C(GridComp, _super);\n function GridComp(eGridDiv) {\n var _this = _super.call(this, undefined) || this;\n _this.eGridDiv = eGridDiv;\n return _this;\n }\n GridComp.prototype.postConstruct = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('GridComp');\n var compProxy = {\n destroyGridUi: function () { return _this.destroyBean(_this); },\n setRtlClass: function (cssClass) { return _this.addCssClass(cssClass); },\n addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(FocusService.AG_KEYBOARD_FOCUS, addOrRemove); },\n forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),\n updateLayoutClasses: this.updateLayoutClasses.bind(this),\n getFocusableContainers: this.getFocusableContainers.bind(this),\n setUserSelect: function (value) {\n _this.getGui().style.userSelect = value != null ? value : '';\n _this.getGui().style.webkitUserSelect = value != null ? value : '';\n },\n setCursor: function (value) {\n _this.getGui().style.cursor = value != null ? value : '';\n }\n };\n this.ctrl = this.createManagedBean(new GridCtrl());\n var template = this.createTemplate();\n this.setTemplate(template);\n this.ctrl.setComp(compProxy, this.eGridDiv, this.getGui());\n this.insertGridIntoDom();\n this.initialiseTabGuard({\n // we want to override the default behaviour to do nothing for onTabKeyDown\n onTabKeyDown: function () { return undefined; },\n focusInnerElement: function (fromBottom) { return _this.ctrl.focusInnerElement(fromBottom); }\n });\n };\n GridComp.prototype.insertGridIntoDom = function () {\n var _this = this;\n var eGui = this.getGui();\n this.eGridDiv.appendChild(eGui);\n this.addDestroyFunc(function () {\n _this.eGridDiv.removeChild(eGui);\n _this.logger.log('Grid removed from DOM');\n });\n };\n GridComp.prototype.updateLayoutClasses = function (cssClass, params) {\n var eRootWrapperBodyClassList = this.eRootWrapperBody.classList;\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.PRINT, params.print);\n this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n };\n GridComp.prototype.createTemplate = function () {\n var dropZones = this.ctrl.showDropZones() ? '' : '';\n var sideBar = this.ctrl.showSideBar() ? '' : '';\n var statusBar = this.ctrl.showStatusBar() ? '' : '';\n var watermark = this.ctrl.showWatermark() ? '' : '';\n var template = /* html */ \"
\\n \" + dropZones + \"\\n
\\n \\n \" + sideBar + \"\\n
\\n \" + statusBar + \"\\n \\n \" + watermark + \"\\n
\";\n return template;\n };\n GridComp.prototype.getFocusableElement = function () {\n return this.eRootWrapperBody;\n };\n GridComp.prototype.getFocusableContainers = function () {\n var focusableContainers = [\n this.gridBodyComp.getGui()\n ];\n if (this.sideBarComp) {\n focusableContainers.push(this.sideBarComp.getGui());\n }\n return focusableContainers.filter(function (el) { return isVisible(el); });\n };\n __decorate$D([\n Autowired('loggerFactory')\n ], GridComp.prototype, \"loggerFactory\", void 0);\n __decorate$D([\n RefSelector('gridBody')\n ], GridComp.prototype, \"gridBodyComp\", void 0);\n __decorate$D([\n RefSelector('sideBar')\n ], GridComp.prototype, \"sideBarComp\", void 0);\n __decorate$D([\n RefSelector('rootWrapperBody')\n ], GridComp.prototype, \"eRootWrapperBody\", void 0);\n __decorate$D([\n PostConstruct\n ], GridComp.prototype, \"postConstruct\", null);\n return GridComp;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$3 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$4(arguments[i]));\n return ar;\n};\nvar SortController = /** @class */ (function (_super) {\n __extends$B(SortController, _super);\n function SortController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortController_1 = SortController;\n SortController.prototype.progressSort = function (column, multiSort, source) {\n var nextDirection = this.getNextSortDirection(column);\n this.setSortForColumn(column, nextDirection, multiSort, source);\n };\n SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {\n var _a;\n // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== Constants.SORT_ASC && sort !== Constants.SORT_DESC) {\n sort = null;\n }\n var isColumnsSortingCoupledToGroup = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n var columnsToUpdate = [column];\n if (isColumnsSortingCoupledToGroup) {\n if (column.getColDef().showRowGroup) {\n var rowGroupColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n var sortableRowGroupColumns = (_a = rowGroupColumns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return col.getColDef().sortable; });\n if (sortableRowGroupColumns) {\n columnsToUpdate = __spread$3([column], sortableRowGroupColumns);\n }\n }\n }\n columnsToUpdate.forEach(function (col) { return col.setSort(sort, source); });\n var doingMultiSort = (multiSort || this.gridOptionsWrapper.isAlwaysMultiSort()) && !this.gridOptionsWrapper.isSuppressMultiSort();\n // clear sort on all columns except those changed, and update the icons\n if (!doingMultiSort) {\n this.clearSortBarTheseColumns(columnsToUpdate, source);\n }\n // sortIndex used for knowing order of cols when multi-col sort\n this.updateSortIndex(column);\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.updateSortIndex = function (lastColToChange) {\n var isCoupled = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n var groupParent = this.columnModel.getGroupDisplayColumnForGroup(lastColToChange.getId());\n var lastSortIndexCol = isCoupled ? groupParent || lastColToChange : lastColToChange;\n var allSortedCols = this.getIndexableColumnsOrdered();\n // reset sort index on everything\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (col) { return col.setSortIndex(null); });\n var allSortedColsWithoutChanges = allSortedCols.filter(function (col) { return col !== lastSortIndexCol; });\n var sortedColsWithIndices = !!lastSortIndexCol.getSort() ? __spread$3(allSortedColsWithoutChanges, [lastSortIndexCol]) : allSortedColsWithoutChanges;\n sortedColsWithIndices.forEach(function (col, idx) { return (col.setSortIndex(idx)); });\n };\n // gets called by API, so if data changes, use can call this, which will end up\n // working out the sort order again of the rows.\n SortController.prototype.onSortChanged = function (source) {\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.isSortActive = function () {\n // pull out all the columns that have sorting set\n var allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });\n return sortedCols && sortedCols.length > 0;\n };\n SortController.prototype.dispatchSortChangedEvents = function (source) {\n var event = {\n type: Events.EVENT_SORT_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n SortController.prototype.clearSortBarTheseColumns = function (columnsToSkip, source) {\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {\n // Do not clear if either holding shift, or if column in question was clicked\n if (!columnsToSkip.includes(columnToClear)) {\n // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise\n // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.\n columnToClear.setSort(undefined, source);\n }\n });\n };\n SortController.prototype.getNextSortDirection = function (column) {\n var sortingOrder;\n if (column.getColDef().sortingOrder) {\n sortingOrder = column.getColDef().sortingOrder;\n }\n else if (this.gridOptionsWrapper.getSortingOrder()) {\n sortingOrder = this.gridOptionsWrapper.getSortingOrder();\n }\n else {\n sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;\n }\n if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {\n console.warn(\"AG Grid: sortingOrder must be an array with at least one element, currently it's \" + sortingOrder);\n return null;\n }\n var currentIndex = sortingOrder.indexOf(column.getSort());\n var notInArray = currentIndex < 0;\n var lastItemInArray = currentIndex == sortingOrder.length - 1;\n var result;\n if (notInArray || lastItemInArray) {\n result = sortingOrder[0];\n }\n else {\n result = sortingOrder[currentIndex + 1];\n }\n // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid\n if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {\n console.warn('AG Grid: invalid sort type ' + result);\n return null;\n }\n return result;\n };\n SortController.prototype.getColumnsOrderedForSort = function () {\n // pull out all the columns that have sorting set\n var allColumnsIncludingAuto = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n // when both cols are missing sortIndex, we use the position of the col in all cols list.\n // this means if colDefs only have sort, but no sortIndex, we deterministically pick which\n // cols is sorted by first.\n var allColsIndexes = {};\n allColumnsIncludingAuto.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });\n // put the columns in order of which one got sorted first\n allColumnsIncludingAuto.sort(function (a, b) {\n var iA = a.getSortIndex();\n var iB = b.getSortIndex();\n if (iA != null && iB != null) {\n return iA - iB; // both present, normal comparison\n }\n else if (iA == null && iB == null) {\n // both missing, compare using column positions\n var posA = allColsIndexes[a.getId()];\n var posB = allColsIndexes[b.getId()];\n return posA > posB ? 1 : -1;\n }\n else if (iB == null) {\n return -1; // iB missing\n }\n else {\n return 1; // iA missing\n }\n });\n return allColumnsIncludingAuto;\n };\n SortController.prototype.getIndexableColumnsOrdered = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isColumnsSortingCoupledToGroup()) {\n return this.getColumnsWithSortingOrdered();\n }\n return this.getColumnsOrderedForSort()\n .filter(function (col) {\n var _a;\n if (!!col.getColDef().showRowGroup) {\n if (col.getColDef().field && col.getSort()) {\n return true;\n }\n var sourceCols = _this.columnModel.getSourceColumnsForGroupColumn(col);\n return (_a = sourceCols) === null || _a === void 0 ? void 0 : _a.some(function (col) { return !!col.getSort(); });\n }\n return !!col.getSort();\n });\n };\n SortController.prototype.getColumnsWithSortingOrdered = function () {\n // pull out all the columns that have sorting set\n var orderedColumns = this.getColumnsOrderedForSort();\n return orderedColumns.filter(function (column) { return !!column.getSort(); });\n };\n // used by server side row models, to sent sort to server\n SortController.prototype.getSortModel = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n colId: column.getId()\n }); });\n };\n SortController.prototype.getSortOptions = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n column: column\n }); });\n };\n SortController.prototype.canColumnDisplayMixedSort = function (column) {\n var isColumnSortCouplingActive = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n var isGroupDisplayColumn = !!column.getColDef().showRowGroup;\n return isColumnSortCouplingActive && isGroupDisplayColumn;\n };\n SortController.prototype.getDisplaySortForColumn = function (column) {\n var _a;\n var linkedColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n if (!this.canColumnDisplayMixedSort(column) || !((_a = linkedColumns) === null || _a === void 0 ? void 0 : _a.length)) {\n return column.getSort();\n }\n // if column has unique data, its sorting is independent - but can still be mixed\n var columnHasUniqueData = !!column.getColDef().field;\n var sortableColumns = columnHasUniqueData ? __spread$3([column], linkedColumns) : linkedColumns;\n var firstSort = sortableColumns[0].getSort();\n // the == is intentional, as null and undefined both represent no sort, which means they are equivalent\n var allMatch = sortableColumns.every(function (col) { return col.getSort() == firstSort; });\n if (!allMatch) {\n return 'mixed';\n }\n return firstSort;\n };\n SortController.prototype.getDisplaySortIndexForColumn = function (column) {\n var _this = this;\n var isColumnSortCouplingActive = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n if (!isColumnSortCouplingActive) {\n return this.getColumnsWithSortingOrdered().indexOf(column);\n }\n var displayColumn = this.columnModel.getGroupDisplayColumnForGroup(column.getId());\n if (displayColumn) {\n if (!!column.getSort()) {\n return this.getDisplaySortIndexForColumn(displayColumn);\n }\n return null;\n }\n var allSortedCols = this.getIndexableColumnsOrdered()\n .filter(function (col) { return !_this.columnModel.getGroupDisplayColumnForGroup(col.getId()); });\n return allSortedCols.indexOf(column);\n };\n var SortController_1;\n SortController.DEFAULT_SORTING_ORDER = [Constants.SORT_ASC, Constants.SORT_DESC, null];\n __decorate$C([\n Autowired('columnModel')\n ], SortController.prototype, \"columnModel\", void 0);\n SortController = SortController_1 = __decorate$C([\n Bean('sortController')\n ], SortController);\n return SortController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnHoverService = /** @class */ (function (_super) {\n __extends$A(ColumnHoverService, _super);\n function ColumnHoverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHoverService.prototype.setMouseOver = function (columns) {\n this.selectedColumns = columns;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.clearMouseOver = function () {\n this.selectedColumns = null;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.isHovered = function (column) {\n return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n };\n ColumnHoverService = __decorate$B([\n Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnAnimationService = /** @class */ (function (_super) {\n __extends$z(ColumnAnimationService, _super);\n function ColumnAnimationService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.executeNextFuncs = [];\n _this.executeLaterFuncs = [];\n _this.active = false;\n _this.animationThreadCount = 0;\n return _this;\n }\n ColumnAnimationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) { return _this.gridBodyCtrl = p.gridBodyCtrl; });\n };\n ColumnAnimationService.prototype.isActive = function () {\n return this.active;\n };\n ColumnAnimationService.prototype.start = function () {\n if (this.active) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsWrapper.isEnableRtl()) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n };\n ColumnAnimationService.prototype.finish = function () {\n if (!this.active) {\n return;\n }\n this.flush();\n this.active = false;\n };\n ColumnAnimationService.prototype.executeNextVMTurn = function (func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {\n var _this = this;\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n var animationThreadCountCopy = this.animationThreadCount;\n this.gridBodyCtrl.setColumnMovingCss(true);\n this.executeLaterFuncs.push(function () {\n // only remove the class if this thread was the last one to update it\n if (_this.animationThreadCount === animationThreadCountCopy) {\n _this.gridBodyCtrl.setColumnMovingCss(false);\n }\n });\n };\n ColumnAnimationService.prototype.flush = function () {\n var nowFuncs = this.executeNextFuncs;\n this.executeNextFuncs = [];\n var waitFuncs = this.executeLaterFuncs;\n this.executeLaterFuncs = [];\n if (nowFuncs.length === 0 && waitFuncs.length === 0) {\n return;\n }\n window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);\n window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);\n };\n __decorate$A([\n Autowired('ctrlsService')\n ], ColumnAnimationService.prototype, \"ctrlsService\", void 0);\n __decorate$A([\n PostConstruct\n ], ColumnAnimationService.prototype, \"postConstruct\", null);\n ColumnAnimationService = __decorate$A([\n Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AutoGroupColService = /** @class */ (function (_super) {\n __extends$y(AutoGroupColService, _super);\n function AutoGroupColService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoGroupColService_1 = AutoGroupColService;\n AutoGroupColService.prototype.createAutoGroupColumns = function (existingCols, rowGroupColumns) {\n var _this = this;\n var groupAutoColumns = [];\n var doingTreeData = this.gridOptionsWrapper.isTreeData();\n var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupMultiAutoColumn, then we call the method multiple times, once\n // for each column we are grouping by\n if (doingMultiAutoColumn) {\n rowGroupColumns.forEach(function (rowGroupCol, index) {\n groupAutoColumns.push(_this.createOneAutoGroupColumn(existingCols, rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn(existingCols));\n }\n return groupAutoColumns;\n };\n // rowGroupCol and index are missing if groupMultiAutoColumn=false\n AutoGroupColService.prototype.createOneAutoGroupColumn = function (existingCols, rowGroupCol, index) {\n // if one provided by user, use it, otherwise create one\n var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);\n // if doing multi, set the field\n var colId;\n if (rowGroupCol) {\n colId = Constants.GROUP_AUTO_COLUMN_ID + \"-\" + rowGroupCol.getId();\n }\n else {\n colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;\n }\n var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n mergeDeep(defaultAutoColDef, userAutoColDef);\n defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);\n defaultAutoColDef.colId = colId;\n // For tree data the filter is always allowed\n if (!this.gridOptionsWrapper.isTreeData()) {\n // we would only allow filter if the user has provided field or value getter. otherwise the filter\n // would not be able to work.\n var noFieldOrValueGetter = missing(defaultAutoColDef.field) && missing(defaultAutoColDef.valueGetter) && missing(defaultAutoColDef.filterValueGetter);\n if (noFieldOrValueGetter) {\n defaultAutoColDef.filter = false;\n }\n }\n // if showing many cols, we don't want to show more than one with a checkbox for selection\n if (index && index > 0) {\n defaultAutoColDef.headerCheckboxSelection = false;\n }\n var existingCol = existingCols.find(function (col) { return col.getId() == colId; });\n if (existingCol) {\n existingCol.setColDef(defaultAutoColDef, null);\n this.columnFactory.applyColumnState(existingCol, defaultAutoColDef);\n return existingCol;\n }\n var newCol = new Column(defaultAutoColDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n };\n AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {\n var userDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var res = {\n headerName: localeTextFunc('group', 'Group')\n };\n var userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);\n // only add the default group cell renderer if user hasn't provided one\n if (!userHasProvidedGroupCellRenderer) {\n res.cellRenderer = 'agGroupCellRenderer';\n }\n // we never allow moving the group column\n // defaultAutoColDef.suppressMovable = true;\n if (rowGroupCol) {\n var colDef = rowGroupCol.getColDef();\n Object.assign(res, {\n // cellRendererParams.groupKey: colDefToCopy.field;\n headerName: this.columnModel.getDisplayNameForColumn(rowGroupCol, 'header'),\n headerValueGetter: colDef.headerValueGetter\n });\n if (colDef.cellRenderer || colDef.cellRendererFramework) {\n Object.assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\n innerRendererFramework: colDef.cellRendererFramework,\n innerRendererParams: colDef.cellRendererParams\n }\n });\n }\n res.showRowGroup = rowGroupCol.getColId();\n }\n else {\n res.showRowGroup = true;\n }\n return res;\n };\n var AutoGroupColService_1;\n AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = Constants.GROUP_AUTO_COLUMN_ID;\n __decorate$z([\n Autowired('columnModel')\n ], AutoGroupColService.prototype, \"columnModel\", void 0);\n __decorate$z([\n Autowired('columnFactory')\n ], AutoGroupColService.prototype, \"columnFactory\", void 0);\n AutoGroupColService = AutoGroupColService_1 = __decorate$z([\n Bean('autoGroupColService')\n ], AutoGroupColService);\n return AutoGroupColService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationAutoPageSizeService = /** @class */ (function (_super) {\n __extends$x(PaginationAutoPageSizeService, _super);\n function PaginationAutoPageSizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaginationAutoPageSizeService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCtrl;\n _this.addManagedListener(_this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));\n _this.addManagedListener(_this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));\n _this.checkPageSize();\n });\n };\n PaginationAutoPageSizeService.prototype.notActive = function () {\n return !this.gridOptionsWrapper.isPaginationAutoPageSize();\n };\n PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.checkPageSize = function () {\n if (this.notActive()) {\n return;\n }\n var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n var newPageSize = Math.floor(bodyHeight / rowHeight);\n this.gridOptionsWrapper.setProperty('paginationPageSize', newPageSize);\n }\n };\n __decorate$y([\n Autowired('ctrlsService')\n ], PaginationAutoPageSizeService.prototype, \"ctrlsService\", void 0);\n __decorate$y([\n PostConstruct\n ], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\n PaginationAutoPageSizeService = __decorate$y([\n Bean('paginationAutoPageSizeService')\n ], PaginationAutoPageSizeService);\n return PaginationAutoPageSizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueCache = /** @class */ (function (_super) {\n __extends$w(ValueCache, _super);\n function ValueCache() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cacheVersion = 0;\n return _this;\n }\n ValueCache.prototype.init = function () {\n this.active = this.gridOptionsWrapper.isValueCache();\n this.neverExpires = this.gridOptionsWrapper.isValueCacheNeverExpires();\n };\n ValueCache.prototype.onDataChanged = function () {\n if (this.neverExpires) {\n return;\n }\n this.expire();\n };\n ValueCache.prototype.expire = function () {\n this.cacheVersion++;\n };\n ValueCache.prototype.setValue = function (rowNode, colId, value) {\n if (this.active) {\n if (rowNode.__cacheVersion !== this.cacheVersion) {\n rowNode.__cacheVersion = this.cacheVersion;\n rowNode.__cacheData = {};\n }\n rowNode.__cacheData[colId] = value;\n }\n };\n ValueCache.prototype.getValue = function (rowNode, colId) {\n if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {\n return undefined;\n }\n return rowNode.__cacheData[colId];\n };\n __decorate$x([\n PostConstruct\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate$x([\n Bean('valueCache')\n ], ValueCache);\n return ValueCache;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChangeDetectionService = /** @class */ (function (_super) {\n __extends$v(ChangeDetectionService, _super);\n function ChangeDetectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChangeDetectionService.prototype.init = function () {\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n };\n ChangeDetectionService.prototype.onCellValueChanged = function (event) {\n // Clipboard service manages its own change detection, so no need to do it here.\n // The clipboard manages its own as otherwise this would happen once for every cell\n // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,\n // this doChangeDetection would get called 100 times (once for each cell), instead clipboard\n // service executes the logic we have here once (in essence batching up all cell changes\n // into one change detection).\n if (event.source === Constants.SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsWrapper.isSuppressChangeDetection()) {\n return;\n }\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n var changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells();\n };\n __decorate$w([\n Autowired('rowModel')\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate$w([\n Autowired('rowRenderer')\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate$w([\n PostConstruct\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate$w([\n Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgComponentUtils = /** @class */ (function (_super) {\n __extends$u(AgComponentUtils, _super);\n function AgComponentUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AgComponentUtils.prototype.adaptFunction = function (propertyName, jsCompFunc) {\n var metadata = this.componentMetadataProvider.retrieve(propertyName);\n if (metadata && metadata.functionAdapter) {\n return metadata.functionAdapter(jsCompFunc);\n }\n return null;\n };\n AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {\n var Adapter = /** @class */ (function () {\n function Adapter() {\n }\n Adapter.prototype.refresh = function (params) {\n return false;\n };\n Adapter.prototype.getGui = function () {\n return this.eGui;\n };\n Adapter.prototype.init = function (params) {\n var callbackResult = callback(params);\n var type = typeof callbackResult;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n this.eGui = loadTemplate('' + callbackResult + '');\n return;\n }\n if (callbackResult == null) {\n this.eGui = loadTemplate('');\n return;\n }\n this.eGui = callbackResult;\n };\n return Adapter;\n }());\n return Adapter;\n };\n AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {\n if (!candidate) {\n return false;\n }\n return candidate.prototype && 'getGui' in candidate.prototype;\n };\n __decorate$v([\n Autowired(\"componentMetadataProvider\")\n ], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\n AgComponentUtils = __decorate$v([\n Bean(\"agComponentUtils\")\n ], AgComponentUtils);\n return AgComponentUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ComponentMetadataProvider = /** @class */ (function (_super) {\n __extends$t(ComponentMetadataProvider, _super);\n function ComponentMetadataProvider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComponentMetadataProvider.prototype.postConstruct = function () {\n this.componentMetaData = {\n dateComponent: {\n mandatoryMethodList: ['getDate', 'setDate'],\n optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']\n },\n detailCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n headerComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerGroupComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n noRowsOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n floatingFilterComponent: {\n mandatoryMethodList: ['onParentModelChanged'],\n optionalMethodList: ['afterGuiAttached']\n },\n floatingFilterWrapperComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n cellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n cellEditor: {\n mandatoryMethodList: ['getValue'],\n optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']\n },\n innerRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n fullWidthCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n pinnedRowCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n groupRowRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n filter: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']\n },\n filterComponent: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']\n },\n statusPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n },\n toolPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached']\n },\n tooltipComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n }\n };\n };\n ComponentMetadataProvider.prototype.retrieve = function (name) {\n return this.componentMetaData[name];\n };\n __decorate$u([\n Autowired(\"agComponentUtils\")\n ], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n __decorate$u([\n PostConstruct\n ], ComponentMetadataProvider.prototype, \"postConstruct\", null);\n ComponentMetadataProvider = __decorate$u([\n Bean(\"componentMetadataProvider\")\n ], ComponentMetadataProvider);\n return ComponentMetadataProvider;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MAT_GRID_SIZE = 8;\nvar BASE_GRID_SIZE = 4;\nvar BALHAM_GRID_SIZE = 4;\nvar ALPINE_GRID_SIZE = 6;\nvar HARD_CODED_SIZES = {\n // this item is required for custom themes\n 'ag-theme-custom': {\n headerHeight: 25,\n headerCellMinWidth: 24,\n listItemHeight: BASE_GRID_SIZE * 5,\n rowHeight: 25,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n headerCellMinWidth: 48,\n listItemHeight: MAT_GRID_SIZE * 4,\n rowHeight: MAT_GRID_SIZE * 6,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n headerCellMinWidth: 24,\n listItemHeight: BALHAM_GRID_SIZE * 6,\n rowHeight: BALHAM_GRID_SIZE * 7,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-alpine': {\n headerHeight: ALPINE_GRID_SIZE * 8,\n headerCellMinWidth: 36,\n listItemHeight: ALPINE_GRID_SIZE * 4,\n rowHeight: ALPINE_GRID_SIZE * 7,\n chartMenuPanelWidth: 240\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get its height.\n *
\n *
\n *
\n *
\n *
\n */\nvar SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n headerCellMinWidth: ['ag-header-cell'],\n listItemHeight: ['ag-virtual-list-item'],\n rowHeight: ['ag-row'],\n chartMenuPanelWidth: ['ag-chart-docked-container']\n};\nvar CALCULATED_SIZES = {};\nvar Environment = /** @class */ (function (_super) {\n __extends$s(Environment, _super);\n function Environment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Environment.prototype.getSassVariable = function (theme, key) {\n var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');\n var defaultValue = HARD_CODED_SIZES[useTheme][key];\n var calculatedValue = 0;\n if (!CALCULATED_SIZES[theme]) {\n CALCULATED_SIZES[theme] = {};\n }\n var size = CALCULATED_SIZES[theme][key];\n if (size != null) {\n return size;\n }\n if (SASS_PROPERTY_BUILDER[key]) {\n var classList = SASS_PROPERTY_BUILDER[key];\n var div = document.createElement('div');\n div.classList.add(theme);\n div.style.position = 'absolute';\n var el = classList.reduce(function (prevEl, currentClass) {\n var currentDiv = document.createElement('div');\n currentDiv.style.position = 'static';\n currentDiv.classList.add(currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n if (document.body) {\n document.body.appendChild(div);\n var sizeName = key.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n document.body.removeChild(div);\n }\n }\n CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;\n return CALCULATED_SIZES[theme][key];\n };\n Environment.prototype.isThemeDark = function () {\n var theme = this.getTheme().theme;\n return !!theme && theme.indexOf('dark') >= 0;\n };\n Environment.prototype.chartMenuPanelWidth = function () {\n var theme = this.getTheme().themeFamily;\n return this.getSassVariable(theme, 'chartMenuPanelWidth');\n };\n Environment.prototype.getTheme = function () {\n var reg = /\\bag-(material|(?:theme-([\\w\\-]*)))\\b/g;\n var el = this.eGridDiv;\n var themeMatch = null;\n var allThemes = [];\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement || undefined;\n }\n else {\n var matched = el.className.match(reg);\n if (matched) {\n allThemes = matched;\n }\n break;\n }\n }\n if (!themeMatch) {\n return { allThemes: allThemes };\n }\n var theme = themeMatch[0];\n var usingOldTheme = themeMatch[2] === undefined;\n if (usingOldTheme) {\n var newTheme_1 = theme.replace('ag-', 'ag-theme-');\n doOnce(function () { return console.warn(\"AG Grid: As of v19 old theme are no longer provided. Please replace \" + theme + \" with \" + newTheme_1 + \".\"); }, 'using-old-theme');\n }\n return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, ''), allThemes: allThemes };\n };\n __decorate$t([\n Autowired('eGridDiv')\n ], Environment.prototype, \"eGridDiv\", void 0);\n Environment = __decorate$t([\n Bean('environment')\n ], Environment);\n return Environment;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nvar RowContainerHeightService = /** @class */ (function (_super) {\n __extends$r(RowContainerHeightService, _super);\n function RowContainerHeightService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // the scrollY position\n _this.scrollY = 0;\n // how tall the body is\n _this.uiBodyHeight = 0;\n return _this;\n }\n RowContainerHeightService.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowContainerHeightService\");\n };\n RowContainerHeightService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.maxDivHeight = getMaxDivHeight();\n this.logger.log('maxDivHeight = ' + this.maxDivHeight);\n };\n RowContainerHeightService.prototype.isStretching = function () {\n return this.stretching;\n };\n RowContainerHeightService.prototype.getDivStretchOffset = function () {\n return this.divStretchOffset;\n };\n RowContainerHeightService.prototype.updateOffset = function () {\n if (!this.stretching) {\n return;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;\n var newBodyHeight = this.getUiBodyHeight();\n var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n };\n RowContainerHeightService.prototype.calculateOffset = function () {\n this.setUiContainerHeight(this.maxDivHeight);\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n var scrollPercent = this.scrollY / this.maxScrollY;\n var divStretchOffset = scrollPercent * this.pixelsToShave;\n this.logger.log(\"Div Stretch Offset = \" + divStretchOffset + \" (\" + this.pixelsToShave + \" * \" + scrollPercent + \")\");\n this.setDivStretchOffset(divStretchOffset);\n };\n RowContainerHeightService.prototype.setUiContainerHeight = function (height) {\n if (height !== this.uiContainerHeight) {\n this.uiContainerHeight = height;\n this.eventService.dispatchEvent({ type: Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED });\n }\n };\n RowContainerHeightService.prototype.clearOffset = function () {\n this.setUiContainerHeight(this.modelHeight);\n this.pixelsToShave = 0;\n this.setDivStretchOffset(0);\n };\n RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.divStretchOffset === newOffsetFloor) {\n return;\n }\n this.divStretchOffset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: Events.EVENT_HEIGHT_SCALE_CHANGED });\n };\n RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {\n this.modelHeight = modelHeight;\n this.stretching = modelHeight != null // null happens when in print layout\n && this.maxDivHeight > 0\n && modelHeight > this.maxDivHeight;\n if (this.stretching) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n };\n RowContainerHeightService.prototype.getUiContainerHeight = function () {\n return this.uiContainerHeight;\n };\n RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {\n return modelPixel - this.divStretchOffset;\n };\n RowContainerHeightService.prototype.getUiBodyHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var pos = gridBodyCon.getScrollFeature().getVScrollPosition();\n return pos.bottom - pos.top;\n };\n RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n var scrollPercent = rowTop / modelMaxScroll;\n var scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n };\n __decorate$s([\n Autowired('ctrlsService')\n ], RowContainerHeightService.prototype, \"ctrlsService\", void 0);\n __decorate$s([\n __param$1(0, Qualifier(\"loggerFactory\"))\n ], RowContainerHeightService.prototype, \"agWire\", null);\n __decorate$s([\n PostConstruct\n ], RowContainerHeightService.prototype, \"postConstruct\", null);\n RowContainerHeightService = __decorate$s([\n Bean('rowContainerHeightService')\n ], RowContainerHeightService);\n return RowContainerHeightService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectableService = /** @class */ (function (_super) {\n __extends$q(SelectableService, _super);\n function SelectableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n };\n SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {\n if (this.isRowSelectableFunc) {\n var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };\n this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);\n }\n };\n SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {\n var _this = this;\n if (!children) {\n return;\n }\n children.forEach(function (child) {\n if (!child.group) {\n return;\n } // only interested in groups\n if (child.hasChildren()) {\n _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);\n }\n var rowSelectable;\n if (_this.groupSelectsChildren) {\n // have this group selectable if at least one direct child is selectable\n var firstSelectable = (nextChildrenFunc(child) || []).find(function (rowNode) { return rowNode.selectable === true; });\n rowSelectable = exists(firstSelectable);\n }\n else {\n // directly retrieve selectable value from user callback\n rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;\n }\n child.setRowSelectable(rowSelectable);\n });\n };\n __decorate$r([\n PostConstruct\n ], SelectableService.prototype, \"init\", null);\n SelectableService = __decorate$r([\n Bean('selectableService')\n ], SelectableService);\n return SelectableService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationComp = /** @class */ (function (_super) {\n __extends$p(PaginationComp, _super);\n function PaginationComp() {\n var _this = _super.call(this) || this;\n _this.previousAndFirstButtonsDisabled = false;\n _this.nextButtonDisabled = false;\n _this.lastButtonDisabled = false;\n return _this;\n }\n PaginationComp.prototype.postConstruct = function () {\n var _this = this;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n this.setTemplate(this.getTemplate());\n this.btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsWrapper));\n this.btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsWrapper));\n this.btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsWrapper));\n this.btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsWrapper));\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.setDisplayed(false);\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n [\n { el: this.btFirst, fn: this.onBtFirst.bind(this) },\n { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },\n { el: this.btNext, fn: this.onBtNext.bind(this) },\n { el: this.btLast, fn: this.onBtLast.bind(this) }\n ].forEach(function (item) {\n var el = item.el, fn = item.fn;\n _this.addManagedListener(el, 'click', fn);\n _this.addManagedListener(el, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n fn();\n }\n });\n });\n this.onPaginationChanged();\n };\n PaginationComp.prototype.onPaginationChanged = function () {\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n };\n PaginationComp.prototype.onBtFirst = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToFirstPage();\n }\n };\n PaginationComp.prototype.setCurrentPageLabel = function () {\n var pagesExist = this.paginationProxy.getTotalPages() > 0;\n var currentPage = this.paginationProxy.getCurrentPage();\n var toDisplay = pagesExist ? currentPage + 1 : 0;\n this.lbCurrent.innerHTML = this.formatNumber(toDisplay);\n };\n PaginationComp.prototype.formatNumber = function (value) {\n var userFunc = this.gridOptionsWrapper.getPaginationNumberFormatterFunc();\n if (userFunc) {\n var params = { value: value };\n return userFunc(params);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n return formatNumberCommas(value, thousandSeparator, decimalSeparator);\n };\n PaginationComp.prototype.getTemplate = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var strPage = localeTextFunc('page', 'Page');\n var strTo = localeTextFunc('to', 'to');\n var strOf = localeTextFunc('of', 'of');\n var strFirst = localeTextFunc('firstPage', 'First Page');\n var strPrevious = localeTextFunc('previousPage', 'Previous Page');\n var strNext = localeTextFunc('nextPage', 'Next Page');\n var strLast = localeTextFunc('lastPage', 'Last Page');\n var compId = this.getCompId();\n return /* html */ \"
\\n \\n \\n \" + strTo + \"\\n \\n \" + strOf + \"\\n \\n \\n \\n
\\n
\\n \\n \" + strPage + \"\\n \\n \" + strOf + \"\\n \\n \\n
\\n
\\n
\\n
\";\n };\n PaginationComp.prototype.onBtNext = function () {\n if (!this.nextButtonDisabled) {\n this.paginationProxy.goToNextPage();\n }\n };\n PaginationComp.prototype.onBtPrevious = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToPreviousPage();\n }\n };\n PaginationComp.prototype.onBtLast = function () {\n if (!this.lastButtonDisabled) {\n this.paginationProxy.goToLastPage();\n }\n };\n PaginationComp.prototype.enableOrDisableButtons = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n this.previousAndFirstButtonsDisabled = currentPage === 0;\n this.toggleButtonDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);\n this.toggleButtonDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);\n var zeroPagesToDisplay = this.isZeroPagesToDisplay();\n var onLastPage = maxRowFound && currentPage === (totalPages - 1);\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);\n this.toggleButtonDisabled(this.btNext, this.nextButtonDisabled);\n this.toggleButtonDisabled(this.btLast, this.lastButtonDisabled);\n };\n PaginationComp.prototype.toggleButtonDisabled = function (button, disabled) {\n setAriaDisabled(button, disabled);\n button.classList.toggle('ag-disabled', disabled);\n if (disabled) {\n button.removeAttribute('tabindex');\n }\n else {\n button.setAttribute('tabindex', '0');\n }\n };\n PaginationComp.prototype.updateRowLabels = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var pageSize = this.paginationProxy.getPageSize();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var rowCount = this.paginationProxy.isLastPageFound() ?\n this.paginationProxy.getMasterRowCount() : null;\n var startRow;\n var endRow;\n if (this.isZeroPagesToDisplay()) {\n startRow = endRow = 0;\n }\n else {\n startRow = (pageSize * currentPage) + 1;\n endRow = startRow + pageSize - 1;\n if (maxRowFound && endRow > rowCount) {\n endRow = rowCount;\n }\n }\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);\n if (this.rowNodeBlockLoader.isLoading()) {\n this.lbLastRowOnPage.innerHTML = '?';\n }\n else {\n this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);\n }\n };\n PaginationComp.prototype.isZeroPagesToDisplay = function () {\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n return maxRowFound && totalPages === 0;\n };\n PaginationComp.prototype.setTotalLabels = function () {\n var lastPageFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n var rowCount = lastPageFound ? this.paginationProxy.getMasterRowCount() : null;\n // When `pivotMode=true` and no grouping or value columns exist, a single 'hidden' group row (root node) is in\n // the grid and the pagination totals will correctly display total = 1. However this is confusing to users as\n // they can't see it. To address this UX issue we simply set the totals to zero in the pagination panel.\n if (rowCount === 1) {\n var firstRow = this.paginationProxy.getRow(0);\n // a group node with no group or agg data will not be visible to users\n var hiddenGroupRow = firstRow && firstRow.group && !(firstRow.groupData || firstRow.aggData);\n if (hiddenGroupRow) {\n this.setTotalLabelsToZero();\n return;\n }\n }\n if (lastPageFound) {\n this.lbTotal.innerHTML = this.formatNumber(totalPages);\n this.lbRecordCount.innerHTML = this.formatNumber(rowCount);\n }\n else {\n var moreText = this.gridOptionsWrapper.getLocaleTextFunc()('more', 'more');\n this.lbTotal.innerHTML = moreText;\n this.lbRecordCount.innerHTML = moreText;\n }\n };\n PaginationComp.prototype.setTotalLabelsToZero = function () {\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(0);\n this.lbCurrent.innerHTML = this.formatNumber(0);\n this.lbLastRowOnPage.innerHTML = this.formatNumber(0);\n this.lbTotal.innerHTML = this.formatNumber(0);\n this.lbRecordCount.innerHTML = this.formatNumber(0);\n };\n __decorate$q([\n Autowired('paginationProxy')\n ], PaginationComp.prototype, \"paginationProxy\", void 0);\n __decorate$q([\n Autowired('rowNodeBlockLoader')\n ], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$q([\n RefSelector('btFirst')\n ], PaginationComp.prototype, \"btFirst\", void 0);\n __decorate$q([\n RefSelector('btPrevious')\n ], PaginationComp.prototype, \"btPrevious\", void 0);\n __decorate$q([\n RefSelector('btNext')\n ], PaginationComp.prototype, \"btNext\", void 0);\n __decorate$q([\n RefSelector('btLast')\n ], PaginationComp.prototype, \"btLast\", void 0);\n __decorate$q([\n RefSelector('lbRecordCount')\n ], PaginationComp.prototype, \"lbRecordCount\", void 0);\n __decorate$q([\n RefSelector('lbFirstRowOnPage')\n ], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n __decorate$q([\n RefSelector('lbLastRowOnPage')\n ], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n __decorate$q([\n RefSelector('lbCurrent')\n ], PaginationComp.prototype, \"lbCurrent\", void 0);\n __decorate$q([\n RefSelector('lbTotal')\n ], PaginationComp.prototype, \"lbTotal\", void 0);\n __decorate$q([\n PostConstruct\n ], PaginationComp.prototype, \"postConstruct\", null);\n return PaginationComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingType;\n(function (LoadingType) {\n LoadingType[LoadingType[\"Loading\"] = 0] = \"Loading\";\n LoadingType[LoadingType[\"NoRows\"] = 1] = \"NoRows\";\n})(LoadingType || (LoadingType = {}));\nvar OverlayWrapperComponent = /** @class */ (function (_super) {\n __extends$o(OverlayWrapperComponent, _super);\n function OverlayWrapperComponent() {\n var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;\n _this.inProgress = false;\n _this.destroyRequested = false;\n _this.manuallyDisplayed = false;\n return _this;\n }\n OverlayWrapperComponent.prototype.updateLayoutClasses = function (cssClass, params) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n overlayWrapperClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n overlayWrapperClassList.toggle(LayoutCssClasses.PRINT, params.print);\n };\n OverlayWrapperComponent.prototype.postConstruct = function () {\n this.createManagedBean(new LayoutFeature(this));\n this.setDisplayed(false);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, this.onRowDataUpdated.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {\n this.showLoadingOverlay();\n }\n this.gridApi.registerOverlayWrapperComp(this);\n };\n OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle('ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);\n overlayWrapperClassList.toggle('ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showLoadingOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressLoadingOverlay()) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getLoadingOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.Loading);\n };\n OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getNoRowsOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {\n var _this = this;\n if (this.inProgress) {\n return;\n }\n this.setWrapperTypeClass(type);\n this.destroyActiveOverlay();\n this.inProgress = true;\n if (workItem) {\n workItem.then(function (comp) {\n _this.inProgress = false;\n _this.eOverlayWrapper.appendChild(comp.getGui());\n _this.activeOverlay = comp;\n if (_this.destroyRequested) {\n _this.destroyRequested = false;\n _this.destroyActiveOverlay();\n }\n });\n }\n this.manuallyDisplayed = this.columnModel.isReady() && !this.paginationProxy.isEmpty();\n this.setDisplayed(true);\n };\n OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {\n if (this.inProgress) {\n this.destroyRequested = true;\n return;\n }\n if (!this.activeOverlay) {\n return;\n }\n this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);\n clearElement(this.eOverlayWrapper);\n };\n OverlayWrapperComponent.prototype.hideOverlay = function () {\n this.manuallyDisplayed = false;\n this.destroyActiveOverlay();\n this.setDisplayed(false);\n };\n OverlayWrapperComponent.prototype.destroy = function () {\n this.destroyActiveOverlay();\n _super.prototype.destroy.call(this);\n };\n OverlayWrapperComponent.prototype.showOrHideOverlay = function () {\n var isEmpty = this.paginationProxy.isEmpty();\n var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();\n if (isEmpty && !isSuppressNoRowsOverlay) {\n this.showNoRowsOverlay();\n }\n else {\n this.hideOverlay();\n }\n };\n OverlayWrapperComponent.prototype.onRowDataUpdated = function () {\n this.showOrHideOverlay();\n };\n OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnModel.isReady() && !this.paginationProxy.isEmpty() && !this.manuallyDisplayed) {\n this.hideOverlay();\n }\n };\n // wrapping in outer div, and wrapper, is needed to center the loading icon\n // The idea for centering came from here: http://www.vanseodesign.com/css/vertical-centering/\n OverlayWrapperComponent.TEMPLATE = \"\\n
\\n
\\n
\\n
\\n
\";\n __decorate$p([\n Autowired('userComponentFactory')\n ], OverlayWrapperComponent.prototype, \"userComponentFactory\", void 0);\n __decorate$p([\n Autowired('paginationProxy')\n ], OverlayWrapperComponent.prototype, \"paginationProxy\", void 0);\n __decorate$p([\n Autowired('gridApi')\n ], OverlayWrapperComponent.prototype, \"gridApi\", void 0);\n __decorate$p([\n Autowired('columnModel')\n ], OverlayWrapperComponent.prototype, \"columnModel\", void 0);\n __decorate$p([\n RefSelector('eOverlayWrapper')\n ], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n __decorate$p([\n PostConstruct\n ], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n return OverlayWrapperComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowPositionUtils = /** @class */ (function (_super) {\n __extends$n(RowPositionUtils, _super);\n function RowPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowPositionUtils.prototype.getFirstRow = function () {\n var rowIndex = 0;\n var rowPinned;\n if (this.pinnedRowModel.getPinnedTopRowCount()) {\n rowPinned = Constants.PINNED_TOP;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageFirstRow();\n }\n else if (this.pinnedRowModel.getPinnedBottomRowCount()) {\n rowPinned = Constants.PINNED_BOTTOM;\n }\n return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getLastRow = function () {\n var rowIndex;\n var rowPinned = null;\n var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();\n if (pinnedBottomCount) {\n rowPinned = Constants.PINNED_BOTTOM;\n rowIndex = pinnedBottomCount - 1;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageLastRow();\n }\n else if (pinnedTopCount) {\n rowPinned = Constants.PINNED_TOP;\n rowIndex = pinnedTopCount - 1;\n }\n return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowPositionUtils.prototype.sameRow = function (rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n };\n // tests if this row selection is before the other row selection\n RowPositionUtils.prototype.before = function (rowA, rowB) {\n switch (rowA.rowPinned) {\n case Constants.PINNED_TOP:\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== Constants.PINNED_TOP) {\n return true;\n }\n break;\n case Constants.PINNED_BOTTOM:\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== Constants.PINNED_BOTTOM) {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (exists(rowB.rowPinned)) {\n return rowB.rowPinned !== Constants.PINNED_TOP;\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n };\n RowPositionUtils.prototype.rowMax = function (rows) {\n var _this = this;\n var max;\n rows.forEach(function (row) {\n if (max === undefined || _this.before(max, row)) {\n max = row;\n }\n });\n return max;\n };\n RowPositionUtils.prototype.rowMin = function (rows) {\n var _this = this;\n var min;\n rows.forEach(function (row) {\n if (min === undefined || _this.before(row, min)) {\n min = row;\n }\n });\n return min;\n };\n __decorate$o([\n Autowired('rowModel')\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate$o([\n Autowired('pinnedRowModel')\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n __decorate$o([\n Autowired('paginationProxy')\n ], RowPositionUtils.prototype, \"paginationProxy\", void 0);\n RowPositionUtils = __decorate$o([\n Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CellPositionUtils = /** @class */ (function (_super) {\n __extends$m(CellPositionUtils, _super);\n function CellPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CellPositionUtils.prototype.createId = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return this.createIdFromValues(rowIndex, column, rowPinned);\n };\n CellPositionUtils.prototype.createIdFromValues = function (rowIndex, column, rowPinned) {\n return rowIndex + \".\" + (rowPinned == null ? 'null' : rowPinned) + \".\" + column.getId();\n };\n CellPositionUtils.prototype.equals = function (cellA, cellB) {\n var colsMatch = cellA.column === cellB.column;\n var floatingMatch = cellA.rowPinned === cellB.rowPinned;\n var indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n };\n CellPositionUtils = __decorate$n([\n Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar UndoRedoAction = /** @class */ (function () {\n function UndoRedoAction(cellValueChanges) {\n this.cellValueChanges = cellValueChanges;\n }\n return UndoRedoAction;\n}());\nvar RangeUndoRedoAction = /** @class */ (function (_super) {\n __extends$l(RangeUndoRedoAction, _super);\n function RangeUndoRedoAction(cellValueChanges, initialRange, finalRange, ranges) {\n var _this = _super.call(this, cellValueChanges) || this;\n _this.initialRange = initialRange;\n _this.finalRange = finalRange;\n _this.ranges = ranges;\n return _this;\n }\n return RangeUndoRedoAction;\n}(UndoRedoAction));\nvar UndoRedoStack = /** @class */ (function () {\n function UndoRedoStack(maxStackSize) {\n this.actionStack = [];\n this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;\n this.actionStack = new Array(this.maxStackSize);\n }\n UndoRedoStack.prototype.pop = function () {\n return this.actionStack.pop();\n };\n UndoRedoStack.prototype.push = function (item) {\n var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;\n if (!shouldAddActions) {\n return;\n }\n if (this.actionStack.length === this.maxStackSize) {\n this.actionStack.shift();\n }\n this.actionStack.push(item);\n };\n UndoRedoStack.prototype.clear = function () {\n this.actionStack = [];\n };\n UndoRedoStack.prototype.getCurrentStackSize = function () {\n return this.actionStack.length;\n };\n UndoRedoStack.DEFAULT_STACK_SIZE = 10;\n return UndoRedoStack;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$2 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$3(arguments[i]));\n return ar;\n};\nvar UndoRedoService = /** @class */ (function (_super) {\n __extends$k(UndoRedoService, _super);\n function UndoRedoService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellValueChanges = [];\n _this.activeCellEdit = null;\n _this.activeRowEdit = null;\n _this.isPasting = false;\n _this.isRangeInAction = false;\n _this.onCellValueChanged = function (event) {\n var eventCell = { column: event.column, rowIndex: event.rowIndex, rowPinned: event.rowPinned };\n var isCellEditing = _this.activeCellEdit !== null && _this.cellPositionUtils.equals(_this.activeCellEdit, eventCell);\n var isRowEditing = _this.activeRowEdit !== null && _this.rowPositionUtils.sameRow(_this.activeRowEdit, eventCell);\n var shouldCaptureAction = isCellEditing || isRowEditing || _this.isPasting || _this.isRangeInAction;\n if (!shouldCaptureAction) {\n return;\n }\n var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;\n var cellValueChange = {\n rowPinned: rowPinned,\n rowIndex: rowIndex,\n columnId: column.getColId(),\n newValue: value,\n oldValue: oldValue\n };\n _this.cellValueChanges.push(cellValueChange);\n };\n _this.clearStacks = function () {\n _this.undoStack.clear();\n _this.redoStack.clear();\n };\n return _this;\n }\n UndoRedoService.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {\n return;\n }\n var undoRedoLimit = this.gridOptionsWrapper.getUndoRedoCellEditingLimit();\n if (undoRedoLimit <= 0) {\n return;\n }\n this.undoStack = new UndoRedoStack(undoRedoLimit);\n this.redoStack = new UndoRedoStack(undoRedoLimit);\n this.addRowEditingListeners();\n this.addCellEditingListeners();\n this.addPasteListeners();\n this.addFillListeners();\n this.addCellKeyListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);\n // undo / redo is restricted to actual editing so we clear the stacks when other operations are\n // performed that change the order of the row / cols.\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function (e) {\n if (!e.keepUndoRedoStack) {\n _this.clearStacks();\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DRAG_END, this.clearStacks);\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n UndoRedoService.prototype.getCurrentUndoStackSize = function () {\n return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.getCurrentRedoStackSize = function () {\n return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.undo = function () {\n if (!this.undoStack) {\n return;\n }\n var undoAction = this.undoStack.pop();\n if (!undoAction || !undoAction.cellValueChanges) {\n return;\n }\n this.processAction(undoAction, function (cellValueChange) { return cellValueChange.oldValue; });\n if (undoAction instanceof RangeUndoRedoAction) {\n this.processRange(undoAction.ranges || [undoAction.initialRange]);\n }\n else {\n this.processCell(undoAction.cellValueChanges);\n }\n this.redoStack.push(undoAction);\n };\n UndoRedoService.prototype.redo = function () {\n if (!this.redoStack) {\n return;\n }\n var redoAction = this.redoStack.pop();\n if (!redoAction || !redoAction.cellValueChanges) {\n return;\n }\n this.processAction(redoAction, function (cellValueChange) { return cellValueChange.newValue; });\n if (redoAction instanceof RangeUndoRedoAction) {\n this.processRange(redoAction.ranges || [redoAction.finalRange]);\n }\n else {\n this.processCell(redoAction.cellValueChanges);\n }\n this.undoStack.push(redoAction);\n };\n UndoRedoService.prototype.processAction = function (action, valueExtractor) {\n var _this = this;\n action.cellValueChanges.forEach(function (cellValueChange) {\n var _a;\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var currentRow = _this.getRowNode(rowPosition);\n // checks if the row has been filtered out\n if (!currentRow.displayed) {\n return;\n }\n var extractedValue = valueExtractor(cellValueChange);\n // when values are 'complex objects' we need to invoke their `toString()` to obtain value\n var value = (typeof ((_a = extractedValue) === null || _a === void 0 ? void 0 : _a.toString) === 'function') ? extractedValue.toString() : extractedValue;\n currentRow.setDataValue(columnId, value);\n });\n };\n UndoRedoService.prototype.processRange = function (ranges) {\n var _this = this;\n var lastFocusedCell;\n this.rangeService.removeAllCellRanges(true);\n ranges.forEach(function (range, idx) {\n if (!range) {\n return;\n }\n var startRow = range.startRow;\n var endRow = range.endRow;\n if (idx === ranges.length - 1) {\n lastFocusedCell = {\n rowPinned: startRow.rowPinned,\n rowIndex: startRow.rowIndex,\n columnId: range.startColumn.getColId()\n };\n _this.setLastFocusedCell(lastFocusedCell);\n }\n var cellRangeParams = {\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n rowEndIndex: endRow.rowIndex,\n rowEndPinned: endRow.rowPinned,\n columnStart: range.startColumn,\n columns: range.columns\n };\n _this.rangeService.addCellRange(cellRangeParams);\n });\n };\n UndoRedoService.prototype.processCell = function (cellValueChanges) {\n var cellValueChange = cellValueChanges[0];\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var row = this.getRowNode(rowPosition);\n var lastFocusedCell = {\n rowPinned: cellValueChange.rowPinned,\n rowIndex: row.rowIndex,\n columnId: cellValueChange.columnId\n };\n this.setLastFocusedCell(lastFocusedCell, true);\n };\n UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell, setRangeToCell) {\n var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;\n var scrollFeature = this.gridBodyCtrl.getScrollFeature();\n var column = this.columnModel.getGridColumn(columnId);\n if (!column) {\n return;\n }\n scrollFeature.ensureIndexVisible(rowIndex);\n scrollFeature.ensureColumnVisible(column);\n var cellPosition = { rowIndex: rowIndex, column: column, rowPinned: rowPinned };\n this.focusService.setFocusedCell(__assign(__assign({}, cellPosition), { forceBrowserFocus: true }));\n if (setRangeToCell) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n UndoRedoService.prototype.addRowEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STARTED, function (e) {\n _this.activeRowEdit = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STOPPED, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.activeRowEdit = null;\n });\n };\n UndoRedoService.prototype.addCellEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STARTED, function (e) {\n _this.activeCellEdit = { column: e.column, rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STOPPED, function (e) {\n _this.activeCellEdit = null;\n var shouldPushAction = e.valueChanged && !_this.activeRowEdit && !_this.isPasting && !_this.isRangeInAction;\n if (shouldPushAction) {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n }\n });\n };\n UndoRedoService.prototype.addPasteListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_START, function () {\n _this.isPasting = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_END, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.isPasting = false;\n });\n };\n UndoRedoService.prototype.addFillListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_FILL_START, function () {\n _this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILL_END, function (event) {\n var action = new RangeUndoRedoAction(_this.cellValueChanges, event.initialRange, event.finalRange);\n _this.pushActionsToUndoStack(action);\n _this.isRangeInAction = false;\n });\n };\n UndoRedoService.prototype.addCellKeyListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START, function () {\n _this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END, function () {\n var action;\n if (_this.rangeService && _this.gridOptionsWrapper.isEnableRangeSelection()) {\n action = new RangeUndoRedoAction(_this.cellValueChanges, undefined, undefined, __spread$2(_this.rangeService.getCellRanges()));\n }\n else {\n action = new UndoRedoAction(_this.cellValueChanges);\n }\n _this.pushActionsToUndoStack(action);\n _this.isRangeInAction = false;\n });\n };\n UndoRedoService.prototype.pushActionsToUndoStack = function (action) {\n this.undoStack.push(action);\n this.cellValueChanges = [];\n this.redoStack.clear();\n };\n UndoRedoService.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n __decorate$m([\n Autowired('focusService')\n ], UndoRedoService.prototype, \"focusService\", void 0);\n __decorate$m([\n Autowired('ctrlsService')\n ], UndoRedoService.prototype, \"ctrlsService\", void 0);\n __decorate$m([\n Autowired('rowModel')\n ], UndoRedoService.prototype, \"rowModel\", void 0);\n __decorate$m([\n Autowired('pinnedRowModel')\n ], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n __decorate$m([\n Autowired('cellPositionUtils')\n ], UndoRedoService.prototype, \"cellPositionUtils\", void 0);\n __decorate$m([\n Autowired('rowPositionUtils')\n ], UndoRedoService.prototype, \"rowPositionUtils\", void 0);\n __decorate$m([\n Autowired('columnModel')\n ], UndoRedoService.prototype, \"columnModel\", void 0);\n __decorate$m([\n Optional('rangeService')\n ], UndoRedoService.prototype, \"rangeService\", void 0);\n __decorate$m([\n PostConstruct\n ], UndoRedoService.prototype, \"init\", null);\n UndoRedoService = __decorate$m([\n Bean('undoRedoService')\n ], UndoRedoService);\n return UndoRedoService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderPositionUtils = /** @class */ (function (_super) {\n __extends$j(HeaderPositionUtils, _super);\n function HeaderPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {\n var nextColumn;\n var getGroupMethod;\n var getColMethod;\n if (focusedHeader.column instanceof ColumnGroup) {\n getGroupMethod = \"getDisplayedGroup\" + direction;\n nextColumn = this.columnModel[getGroupMethod](focusedHeader.column);\n }\n else {\n getColMethod = \"getDisplayedCol\" + direction;\n nextColumn = this.columnModel[getColMethod](focusedHeader.column);\n }\n if (nextColumn) {\n return {\n column: nextColumn,\n headerRowIndex: focusedHeader.headerRowIndex\n };\n }\n };\n HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];\n if (!column) {\n return;\n }\n var childContainer = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned());\n var type = childContainer.getRowType(level);\n if (type == HeaderRowType.COLUMN_GROUP) {\n var columnGroup = this.columnModel.getColumnGroupAtLevel(column, level);\n return {\n headerRowIndex: level,\n column: columnGroup\n };\n }\n return {\n // if type==null, means the header level didn't exist\n headerRowIndex: type == null ? -1 : level,\n column: column\n };\n };\n __decorate$l([\n Autowired('columnModel')\n ], HeaderPositionUtils.prototype, \"columnModel\", void 0);\n __decorate$l([\n Autowired('ctrlsService')\n ], HeaderPositionUtils.prototype, \"ctrlsService\", void 0);\n HeaderPositionUtils = __decorate$l([\n Bean('headerPositionUtils')\n ], HeaderPositionUtils);\n return HeaderPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnDefFactory = /** @class */ (function () {\n function ColumnDefFactory() {\n }\n ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {\n var _this = this;\n var res = [];\n var colGroupDefs = {};\n cols.forEach(function (col) {\n var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);\n var addToResult = true;\n var childDef = colDef;\n var pointer = col.getOriginalParent();\n while (pointer) {\n var parentDef = null;\n // we don't include padding groups, as the column groups provided\n // by application didn't have these. the whole point of padding groups\n // is to balance the column tree that the user provided.\n if (pointer.isPadding()) {\n pointer = pointer.getOriginalParent();\n continue;\n }\n // if colDef for this group already exists, use it\n var existingParentDef = colGroupDefs[pointer.getGroupId()];\n if (existingParentDef) {\n existingParentDef.children.push(childDef);\n // if we added to result, it would be the second time we did it\n addToResult = false;\n // we don't want to continue up the tree, as it has already been\n // done for this group\n break;\n }\n parentDef = _this.createDefFromGroup(pointer);\n if (parentDef) {\n parentDef.children = [childDef];\n colGroupDefs[parentDef.groupId] = parentDef;\n childDef = parentDef;\n pointer = pointer.getOriginalParent();\n }\n }\n if (addToResult) {\n res.push(childDef);\n }\n });\n return res;\n };\n ColumnDefFactory.prototype.createDefFromGroup = function (group) {\n var defCloned = deepCloneDefinition(group.getColGroupDef(), ['children']);\n if (defCloned) {\n defCloned.groupId = group.getGroupId();\n }\n return defCloned;\n };\n ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {\n var colDefCloned = deepCloneDefinition(col.getColDef());\n colDefCloned.colId = col.getColId();\n colDefCloned.width = col.getActualWidth();\n colDefCloned.rowGroup = col.isRowGroupActive();\n colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;\n colDefCloned.pivot = col.isPivotActive();\n colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;\n colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;\n colDefCloned.hide = col.isVisible() ? undefined : true;\n colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;\n colDefCloned.sort = col.getSort() ? col.getSort() : null;\n colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;\n return colDefCloned;\n };\n ColumnDefFactory = __decorate$k([\n Bean('columnDefFactory')\n ], ColumnDefFactory);\n return ColumnDefFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowCssClassCalculator = /** @class */ (function () {\n function RowCssClassCalculator() {\n }\n RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {\n var classes = [];\n if (exists(params.extraCssClass)) {\n classes.push(params.extraCssClass);\n }\n classes.push('ag-row');\n classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');\n if (params.fadeRowIn) {\n classes.push('ag-opacity-zero');\n }\n classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');\n if (params.rowNode.isRowPinned()) {\n classes.push('ag-row-pinned');\n }\n if (params.rowNode.isSelected()) {\n classes.push('ag-row-selected');\n }\n if (params.rowNode.footer) {\n classes.push('ag-row-footer');\n }\n classes.push('ag-row-level-' + params.rowLevel);\n if (params.rowNode.stub) {\n classes.push('ag-row-loading');\n }\n if (params.fullWidthRow) {\n classes.push('ag-full-width-row');\n }\n if (params.expandable) {\n classes.push('ag-row-group');\n classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');\n }\n if (params.rowNode.dragging) {\n classes.push('ag-row-dragging');\n }\n pushAll(classes, this.processClassesFromGridOptions(params.rowNode));\n pushAll(classes, this.preProcessRowClassRules(params.rowNode));\n // we use absolute position unless we are doing print layout\n classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');\n if (params.firstRowOnPage) {\n classes.push('ag-row-first');\n }\n if (params.lastRowOnPage) {\n classes.push('ag-row-last');\n }\n if (params.fullWidthRow) {\n if (params.pinned === Constants.PINNED_LEFT) {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.pinned === Constants.PINNED_RIGHT) {\n classes.push('ag-cell-first-right-pinned');\n }\n }\n return classes;\n };\n RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode) {\n var res = [];\n var process = function (rowCls) {\n if (typeof rowCls === 'string') {\n res.push(rowCls);\n }\n else if (Array.isArray(rowCls)) {\n rowCls.forEach(function (e) { return res.push(e); });\n }\n };\n // part 1 - rowClass\n var rowClass = this.gridOptionsWrapper.getRowClass();\n if (rowClass) {\n if (typeof rowClass === 'function') {\n console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');\n return [];\n }\n process(rowClass);\n }\n // part 2 - rowClassFunc\n var rowClassFunc = this.gridOptionsWrapper.getRowClassFunc();\n if (rowClassFunc) {\n var params = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex\n };\n var rowClassFuncResult = rowClassFunc(params);\n process(rowClassFuncResult);\n }\n return res;\n };\n RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode) {\n var res = [];\n this.processRowClassRules(rowNode, function (className) {\n res.push(className);\n }, function (className) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, onApplicableClass, onNotApplicableClass) {\n var rowClassParams = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n this.stylingService.processClassRules(this.gridOptionsWrapper.rowClassRules(), rowClassParams, onApplicableClass, onNotApplicableClass);\n };\n RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {\n if (rowNode.group) {\n return rowNode.level;\n }\n // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item\n return rowNode.parent ? (rowNode.parent.level + 1) : 0;\n };\n __decorate$j([\n Autowired('stylingService')\n ], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n __decorate$j([\n Autowired('gridOptionsWrapper')\n ], RowCssClassCalculator.prototype, \"gridOptionsWrapper\", void 0);\n RowCssClassCalculator = __decorate$j([\n Bean('rowCssClassCalculator')\n ], RowCssClassCalculator);\n return RowCssClassCalculator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// this logic is used by both SSRM and CSRM\nvar RowNodeSorter = /** @class */ (function () {\n function RowNodeSorter() {\n }\n RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {\n var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedRowNodes = rowNodes.map(mapper);\n sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));\n return sortedRowNodes.map(function (item) { return item.rowNode; });\n };\n RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {\n var nodeA = sortedNodeA.rowNode;\n var nodeB = sortedNodeB.rowNode;\n // Iterate columns, return the first that doesn't match\n for (var i = 0, len = sortOptions.length; i < len; i++) {\n var sortOption = sortOptions[i];\n var isDescending = sortOption.sort === Constants.SORT_DESC;\n var valueA = this.getValue(nodeA, sortOption.column);\n var valueB = this.getValue(nodeB, sortOption.column);\n var comparatorResult = void 0;\n var providedComparator = this.getComparator(sortOption, nodeA);\n if (providedComparator) {\n //if comparator provided, use it\n comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isDescending);\n }\n else {\n //otherwise do our own comparison\n comparatorResult = _.defaultComparator(valueA, valueB, this.gridOptionsWrapper.isAccentedSort());\n }\n // user provided comparators can return 'NaN' if they don't correctly handle 'undefined' values, this\n // typically occurs when the comparator is used on a group row\n var validResult = !isNaN(comparatorResult);\n if (validResult && comparatorResult !== 0) {\n return sortOption.sort === Constants.SORT_ASC ? comparatorResult : comparatorResult * -1;\n }\n }\n // All matched, we make is so that the original sort order is kept:\n return sortedNodeA.currentPos - sortedNodeB.currentPos;\n };\n RowNodeSorter.prototype.getComparator = function (sortOption, rowNode) {\n var column = sortOption.column;\n // comparator on col get preference over everything else\n var comparatorOnCol = column.getColDef().comparator;\n if (comparatorOnCol != null) {\n return comparatorOnCol;\n }\n if (!column.getColDef().showRowGroup) {\n return;\n }\n // if a 'field' is supplied on the autoGroupColumnDef we need to use the associated column comparator\n var groupLeafField = !rowNode.group && column.getColDef().field;\n if (!groupLeafField) {\n return;\n }\n var primaryColumn = this.columnModel.getPrimaryColumn(groupLeafField);\n if (!primaryColumn) {\n return;\n }\n return primaryColumn.getColDef().comparator;\n };\n RowNodeSorter.prototype.getValue = function (node, column) {\n var _a, _b;\n var primaryColumnsSortGroups = this.gridOptionsWrapper.isColumnsSortingCoupledToGroup();\n if (!primaryColumnsSortGroups) {\n return this.valueService.getValue(column, node, false, false);\n }\n var isNodeGroupedAtLevel = node.rowGroupColumn === column;\n if (isNodeGroupedAtLevel) {\n var isGroupRows = this.gridOptionsWrapper.isGroupUseEntireRow(this.columnModel.isPivotActive());\n if (isGroupRows) {\n // if the column has a provided a keyCreator, we have to use the key, as the group could be\n // irrelevant to the column value\n var keyCreator = column.getColDef().keyCreator;\n if (keyCreator) {\n return node.key;\n }\n // if the group was generated from the column data, all the leaf children should return the same\n // value\n var leafChild = (_a = node.allLeafChildren) === null || _a === void 0 ? void 0 : _a[0];\n if (leafChild) {\n return this.valueService.getValue(column, leafChild, false, false);\n }\n return undefined;\n }\n var displayCol = this.columnModel.getGroupDisplayColumnForGroup(column.getId());\n if (!displayCol) {\n return undefined;\n }\n return (_b = node.groupData) === null || _b === void 0 ? void 0 : _b[displayCol.getId()];\n }\n if (node.group && column.getColDef().showRowGroup) {\n return undefined;\n }\n return this.valueService.getValue(column, node, false, false);\n };\n __decorate$i([\n Autowired('gridOptionsWrapper')\n ], RowNodeSorter.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$i([\n Autowired('valueService')\n ], RowNodeSorter.prototype, \"valueService\", void 0);\n __decorate$i([\n Autowired('columnModel')\n ], RowNodeSorter.prototype, \"columnModel\", void 0);\n RowNodeSorter = __decorate$i([\n Bean('rowNodeSorter')\n ], RowNodeSorter);\n return RowNodeSorter;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsService = /** @class */ (function (_super) {\n __extends$i(CtrlsService, _super);\n function CtrlsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ready = false;\n _this.readyCallbacks = [];\n return _this;\n }\n CtrlsService_1 = CtrlsService;\n CtrlsService.prototype.checkReady = function () {\n this.ready =\n this.gridCtrl != null\n && this.gridBodyCtrl != null\n && this.centerRowContainerCtrl != null\n && this.leftRowContainerCtrl != null\n && this.rightRowContainerCtrl != null\n && this.bottomCenterRowContainerCtrl != null\n && this.bottomLeftRowContainerCtrl != null\n && this.bottomRightRowContainerCtrl != null\n && this.topCenterRowContainerCtrl != null\n && this.topLeftRowContainerCtrl != null\n && this.topRightRowContainerCtrl != null\n && this.stickyTopCenterRowContainerCtrl != null\n && this.stickyTopLeftRowContainerCtrl != null\n && this.stickyTopRightRowContainerCtrl != null\n && this.centerHeaderRowContainerCtrl != null\n && this.leftHeaderRowContainerCtrl != null\n && this.rightHeaderRowContainerCtrl != null\n && this.fakeHScrollCtrl != null\n && this.gridHeaderCtrl != null;\n if (this.ready) {\n var p_1 = this.createReadyParams();\n this.readyCallbacks.forEach(function (c) { return c(p_1); });\n this.readyCallbacks.length = 0;\n }\n };\n CtrlsService.prototype.whenReady = function (callback) {\n if (this.ready) {\n callback(this.createReadyParams());\n }\n else {\n this.readyCallbacks.push(callback);\n }\n };\n CtrlsService.prototype.createReadyParams = function () {\n return {\n centerRowContainerCtrl: this.centerRowContainerCtrl,\n leftRowContainerCtrl: this.leftRowContainerCtrl,\n rightRowContainerCtrl: this.rightRowContainerCtrl,\n bottomCenterRowContainerCtrl: this.bottomCenterRowContainerCtrl,\n bottomLeftRowContainerCtrl: this.bottomLeftRowContainerCtrl,\n bottomRightRowContainerCtrl: this.bottomRightRowContainerCtrl,\n topCenterRowContainerCtrl: this.topCenterRowContainerCtrl,\n topLeftRowContainerCtrl: this.topLeftRowContainerCtrl,\n topRightRowContainerCtrl: this.topRightRowContainerCtrl,\n stickyTopCenterRowContainerCtrl: this.stickyTopCenterRowContainerCtrl,\n stickyTopLeftRowContainerCtrl: this.stickyTopLeftRowContainerCtrl,\n stickyTopRightRowContainerCtrl: this.stickyTopRightRowContainerCtrl,\n centerHeaderRowContainerCtrl: this.centerHeaderRowContainerCtrl,\n leftHeaderRowContainerCtrl: this.leftHeaderRowContainerCtrl,\n rightHeaderRowContainerCtrl: this.rightHeaderRowContainerCtrl,\n fakeHScrollCtrl: this.fakeHScrollCtrl,\n gridBodyCtrl: this.gridBodyCtrl,\n gridCtrl: this.gridCtrl,\n gridHeaderCtrl: this.gridHeaderCtrl,\n };\n };\n CtrlsService.prototype.registerFakeHScrollCtrl = function (ctrl) {\n this.fakeHScrollCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridHeaderCtrl = function (gridHeaderCtrl) {\n this.gridHeaderCtrl = gridHeaderCtrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerCenterRowContainerCtrl = function (ctrl) {\n this.centerRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerLeftRowContainerCtrl = function (ctrl) {\n this.leftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerRightRowContainerCtrl = function (ctrl) {\n this.rightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopCenterRowContainerCtrl = function (ctrl) {\n this.topCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopLeftRowContainerCon = function (ctrl) {\n this.topLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopRightRowContainerCtrl = function (ctrl) {\n this.topRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopCenterRowContainerCtrl = function (ctrl) {\n this.stickyTopCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopLeftRowContainerCon = function (ctrl) {\n this.stickyTopLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopRightRowContainerCtrl = function (ctrl) {\n this.stickyTopRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomCenterRowContainerCtrl = function (ctrl) {\n this.bottomCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomLeftRowContainerCtrl = function (ctrl) {\n this.bottomLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomRightRowContainerCtrl = function (ctrl) {\n this.bottomRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerHeaderContainer = function (ctrl, pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n this.leftHeaderRowContainerCtrl = ctrl;\n break;\n case Constants.PINNED_RIGHT:\n this.rightHeaderRowContainerCtrl = ctrl;\n break;\n default:\n this.centerHeaderRowContainerCtrl = ctrl;\n break;\n }\n this.checkReady();\n };\n CtrlsService.prototype.registerGridBodyCtrl = function (ctrl) {\n this.gridBodyCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridCtrl = function (ctrl) {\n this.gridCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.getFakeHScrollCtrl = function () {\n return this.fakeHScrollCtrl;\n };\n CtrlsService.prototype.getGridHeaderCtrl = function () {\n return this.gridHeaderCtrl;\n };\n CtrlsService.prototype.getGridCtrl = function () {\n return this.gridCtrl;\n };\n CtrlsService.prototype.getCenterRowContainerCtrl = function () {\n return this.centerRowContainerCtrl;\n };\n CtrlsService.prototype.getTopCenterRowContainerCtrl = function () {\n return this.topCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getBottomCenterRowContainerCtrl = function () {\n return this.bottomCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getStickyTopCenterRowContainerCtrl = function () {\n return this.stickyTopCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getGridBodyCtrl = function () {\n return this.gridBodyCtrl;\n };\n CtrlsService.prototype.getHeaderRowContainerCtrls = function () {\n return [this.leftHeaderRowContainerCtrl, this.rightHeaderRowContainerCtrl, this.centerHeaderRowContainerCtrl];\n };\n CtrlsService.prototype.getHeaderRowContainerCtrl = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT: return this.leftHeaderRowContainerCtrl;\n case Constants.PINNED_RIGHT: return this.rightHeaderRowContainerCtrl;\n default: return this.centerHeaderRowContainerCtrl;\n }\n };\n var CtrlsService_1;\n CtrlsService.NAME = 'ctrlsService';\n CtrlsService = CtrlsService_1 = __decorate$h([\n Bean(CtrlsService_1.NAME)\n ], CtrlsService);\n return CtrlsService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsFactory = /** @class */ (function (_super) {\n __extends$h(CtrlsFactory, _super);\n function CtrlsFactory() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registry = {};\n return _this;\n }\n CtrlsFactory.prototype.register = function (meta) {\n this.registry[meta.controllerName] = meta.controllerClass;\n };\n CtrlsFactory.prototype.getInstance = function (name) {\n var ControllerClass = this.registry[name];\n if (ControllerClass == null) {\n return undefined;\n }\n return new ControllerClass();\n };\n CtrlsFactory = __decorate$g([\n Bean('ctrlsFactory')\n ], CtrlsFactory);\n return CtrlsFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeHScrollCtrl = /** @class */ (function (_super) {\n __extends$g(FakeHScrollCtrl, _super);\n function FakeHScrollCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FakeHScrollCtrl.prototype.setComp = function (view, eGui, eViewport, eContainer) {\n this.view = view;\n this.eViewport = eViewport;\n this.eContainer = eContainer;\n this.eGui = eGui;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n // When doing printing, this changes whether cols are pinned or not\n var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.onScrollVisibilityChanged();\n this.ctrlsService.registerFakeHScrollCtrl(this);\n this.view.addOrRemoveCssClass('ag-apple-scrollbar', isMacOsUserAgent() || isIOSUserAgent());\n };\n FakeHScrollCtrl.prototype.addActiveListenerToggles = function () {\n var _this = this;\n var activateEvents = ['mouseenter', 'mousedown', 'touchstart'];\n var deactivateEvents = ['mouseleave', 'touchend'];\n activateEvents.forEach(function (eventName) { return _this.addManagedListener(_this.eGui, eventName, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-active', true); }); });\n deactivateEvents.forEach(function (eventName) { return _this.addManagedListener(_this.eGui, eventName, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-active', false); }); });\n };\n FakeHScrollCtrl.prototype.initialiseInvisibleScrollbar = function () {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.invisibleScrollbar = isInvisibleScrollbar();\n if (this.invisibleScrollbar) {\n this.hideAndShowInvisibleScrollAsNeeded();\n this.addActiveListenerToggles();\n this.refreshCompBottom();\n }\n };\n FakeHScrollCtrl.prototype.onPinnedRowDataChanged = function () {\n this.refreshCompBottom();\n };\n FakeHScrollCtrl.prototype.refreshCompBottom = function () {\n if (!this.invisibleScrollbar) {\n return;\n }\n var bottomPinnedHeight = this.pinnedRowModel.getPinnedBottomTotalHeight();\n this.view.setBottom(bottomPinnedHeight);\n };\n FakeHScrollCtrl.prototype.onScrollVisibilityChanged = function () {\n // initialiseInvisibleScrollbar should only be called once, but the reason\n // this can't be inside `setComp` or `PostConstruct` is the DOM might not\n // be ready, so we call it until eventually, it gets calculated.\n if (this.invisibleScrollbar === undefined) {\n this.initialiseInvisibleScrollbar();\n }\n this.setScrollVisible();\n this.setFakeHScrollSpacerWidths();\n };\n FakeHScrollCtrl.prototype.hideAndShowInvisibleScrollAsNeeded = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, function (params) {\n if (params.direction === 'horizontal') {\n _this.view.addOrRemoveCssClass('ag-scrollbar-scrolling', true);\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-scrolling', false); });\n };\n FakeHScrollCtrl.prototype.setFakeHScrollSpacerWidths = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n var rightSpacing = this.columnModel.getDisplayedColumnsRightWidth();\n var scrollOnRight = !this.enableRtl && vScrollShowing;\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n this.view.setRightSpacerFixedWidth(rightSpacing);\n this.view.includeRightSpacerScrollerCss('ag-scroller-corner', rightSpacing <= scrollbarWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n var leftSpacing = this.columnModel.getDisplayedColumnsLeftWidth();\n var scrollOnLeft = this.enableRtl && vScrollShowing;\n if (scrollOnLeft) {\n leftSpacing += scrollbarWidth;\n }\n this.view.setLeftSpacerFixedWidth(leftSpacing);\n this.view.includeLeftSpacerScrollerCss('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n };\n FakeHScrollCtrl.prototype.setScrollVisible = function () {\n var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();\n var scrollbarWidth = hScrollShowing ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 15 : scrollbarWidth;\n var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n this.view.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n this.view.setHeight(scrollContainerSize);\n this.view.setViewportHeight(scrollContainerSize);\n this.view.setContainerHeight(scrollContainerSize);\n this.view.addOrRemoveCssClass('ag-hidden', !hScrollShowing);\n };\n FakeHScrollCtrl.prototype.getViewport = function () {\n return this.eViewport;\n };\n FakeHScrollCtrl.prototype.getContainer = function () {\n return this.eContainer;\n };\n __decorate$f([\n Autowired('scrollVisibleService')\n ], FakeHScrollCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$f([\n Autowired('columnModel')\n ], FakeHScrollCtrl.prototype, \"columnModel\", void 0);\n __decorate$f([\n Autowired('ctrlsService')\n ], FakeHScrollCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$f([\n Autowired('pinnedRowModel')\n ], FakeHScrollCtrl.prototype, \"pinnedRowModel\", void 0);\n return FakeHScrollCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeHScrollComp = /** @class */ (function (_super) {\n __extends$f(FakeHScrollComp, _super);\n function FakeHScrollComp() {\n return _super.call(this, FakeHScrollComp.TEMPLATE) || this;\n }\n FakeHScrollComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setHeight: function (height) { return setFixedHeight(_this.getGui(), height); },\n setBottom: function (bottom) { return _this.getGui().style.bottom = bottom + \"px\"; },\n setContainerHeight: function (height) { return setFixedHeight(_this.eContainer, height); },\n setViewportHeight: function (height) { return setFixedHeight(_this.eViewport, height); },\n setRightSpacerFixedWidth: function (width) { return setFixedWidth(_this.eRightSpacer, width); },\n setLeftSpacerFixedWidth: function (width) { return setFixedWidth(_this.eLeftSpacer, width); },\n includeLeftSpacerScrollerCss: function (cssClass, include) {\n return _this.eLeftSpacer.classList.toggle(cssClass, include);\n },\n includeRightSpacerScrollerCss: function (cssClass, include) {\n return _this.eRightSpacer.classList.toggle(cssClass, include);\n },\n };\n var ctrl = this.createManagedBean(new FakeHScrollCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.eViewport, this.eContainer);\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; }));\n };\n FakeHScrollComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$e([\n RefSelector('eLeftSpacer')\n ], FakeHScrollComp.prototype, \"eLeftSpacer\", void 0);\n __decorate$e([\n RefSelector('eRightSpacer')\n ], FakeHScrollComp.prototype, \"eRightSpacer\", void 0);\n __decorate$e([\n RefSelector('eViewport')\n ], FakeHScrollComp.prototype, \"eViewport\", void 0);\n __decorate$e([\n RefSelector('eContainer')\n ], FakeHScrollComp.prototype, \"eContainer\", void 0);\n __decorate$e([\n PostConstruct\n ], FakeHScrollComp.prototype, \"postConstruct\", null);\n return FakeHScrollComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedWidthService = /** @class */ (function (_super) {\n __extends$e(PinnedWidthService, _super);\n function PinnedWidthService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedWidthService.prototype.postConstruct = function () {\n var listener = this.checkContainerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n };\n PinnedWidthService.prototype.checkContainerWidths = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var newLeftWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsLeftWidth();\n var newRightWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsRightWidth();\n if (newLeftWidth != this.leftWidth) {\n this.leftWidth = newLeftWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_LEFT_PINNED_WIDTH_CHANGED });\n }\n if (newRightWidth != this.rightWidth) {\n this.rightWidth = newRightWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED });\n }\n };\n PinnedWidthService.prototype.getPinnedRightWidth = function () {\n return this.rightWidth;\n };\n PinnedWidthService.prototype.getPinnedLeftWidth = function () {\n return this.leftWidth;\n };\n __decorate$d([\n Autowired('columnModel')\n ], PinnedWidthService.prototype, \"columnModel\", void 0);\n __decorate$d([\n PostConstruct\n ], PinnedWidthService.prototype, \"postConstruct\", null);\n PinnedWidthService = __decorate$d([\n Bean('pinnedWidthService')\n ], PinnedWidthService);\n return PinnedWidthService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowNodeEventThrottle = /** @class */ (function (_super) {\n __extends$d(RowNodeEventThrottle, _super);\n function RowNodeEventThrottle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.events = [];\n return _this;\n }\n RowNodeEventThrottle.prototype.postConstruct = function () {\n if (this.rowModel.getType() == Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n // because the user can call rowNode.setExpanded() many times in one VM turn,\n // we throttle the calls to ClientSideRowModel using animationFrameService. this means for 100\n // row nodes getting expanded, we only update the CSRM once, and then we fire all events after\n // CSRM has updated.\n //\n // if we did not do this, then the user could call setExpanded on 100+ rows, causing the grid\n // to re-render 100+ times, which would be a performance lag.\n //\n // we use animationFrameService\n // rather than _.debounce() so this will get done if anyone flushes the animationFrameService\n // (eg user calls api.ensureRowVisible(), which in turn flushes ).\n RowNodeEventThrottle.prototype.dispatchExpanded = function (event) {\n var _this = this;\n // if not using CSRM, we don't debounce. otherwise this breaks the SSRM.\n if (this.clientSideRowModel == null) {\n this.eventService.dispatchEvent(event);\n return;\n }\n this.events.push(event);\n var func = function () {\n if (_this.clientSideRowModel) {\n _this.clientSideRowModel.onRowGroupOpened();\n }\n _this.events.forEach(function (e) { return _this.eventService.dispatchEvent(e); });\n _this.events = [];\n };\n if (this.dispatchExpandedDebounced == null) {\n this.dispatchExpandedDebounced = this.animationFrameService.debounce(func);\n }\n this.dispatchExpandedDebounced();\n };\n __decorate$c([\n Autowired('animationFrameService')\n ], RowNodeEventThrottle.prototype, \"animationFrameService\", void 0);\n __decorate$c([\n Autowired('rowModel')\n ], RowNodeEventThrottle.prototype, \"rowModel\", void 0);\n __decorate$c([\n PostConstruct\n ], RowNodeEventThrottle.prototype, \"postConstruct\", null);\n RowNodeEventThrottle = __decorate$c([\n Bean('rowNodeEventThrottle')\n ], RowNodeEventThrottle);\n return RowNodeEventThrottle;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$1 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$2(arguments[i]));\n return ar;\n};\n// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can\n// be wrapped by the framework wrappers\nvar Grid = /** @class */ (function () {\n function Grid(eGridDiv, gridOptions, params) {\n if (!gridOptions) {\n console.error('AG Grid: no gridOptions provided to the grid');\n return;\n }\n this.gridOptions = gridOptions;\n new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {\n var gridComp = new GridComp(eGridDiv);\n context.createBean(gridComp);\n }, undefined, params);\n }\n Grid.prototype.destroy = function () {\n if (this.gridOptions && this.gridOptions.api) {\n this.gridOptions.api.destroy();\n }\n };\n return Grid;\n}());\n// created services of grid only, no UI, so frameworks can use this if providing\n// their own UI\nvar GridCoreCreator = /** @class */ (function () {\n function GridCoreCreator() {\n }\n GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, createUi, acceptChanges, params) {\n var _this = this;\n var debug = !!gridOptions.debug;\n var registeredModules = this.getRegisteredModules(params);\n var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);\n var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);\n if (!beanClasses) {\n return;\n } // happens when no row model found\n var contextParams = {\n providedBeanInstances: providedBeanInstances,\n beanClasses: beanClasses,\n debug: debug\n };\n var logger = new Logger('AG Grid', function () { return gridOptions.debug; });\n var contextLogger = new Logger('Context', function () { return contextParams.debug; });\n var context = new Context(contextParams, contextLogger);\n var beans = context.getBean('beans');\n this.registerModuleUserComponents(beans, registeredModules);\n this.registerStackComponents(beans, registeredModules);\n this.registerControllers(beans, registeredModules);\n createUi(context);\n // we wait until the UI has finished initialising before setting in columns and rows\n beans.ctrlsService.whenReady(function () {\n _this.setColumnsAndData(beans);\n _this.dispatchGridReadyEvent(beans);\n var isEnterprise = ModuleRegistry.isRegistered(ModuleNames.EnterpriseCoreModule);\n logger.log(\"initialised successfully, enterprise = \" + isEnterprise);\n });\n if (acceptChanges) {\n acceptChanges(context);\n }\n };\n GridCoreCreator.prototype.registerControllers = function (beans, registeredModules) {\n registeredModules.forEach(function (module) {\n if (module.controllers) {\n module.controllers.forEach(function (meta) { return beans.ctrlsFactory.register(meta); });\n }\n });\n };\n GridCoreCreator.prototype.registerStackComponents = function (beans, registeredModules) {\n var agStackComponents = this.createAgStackComponentsList(registeredModules);\n beans.agStackComponentsRegistry.setupComponents(agStackComponents);\n };\n GridCoreCreator.prototype.getRegisteredModules = function (params) {\n var passedViaConstructor = params ? params.modules : null;\n var registered = ModuleRegistry.getRegisteredModules();\n var allModules = [];\n var mapNames = {};\n // adds to list and removes duplicates\n function addModule(moduleBased, mod) {\n function addIndividualModule(currentModule) {\n if (!mapNames[currentModule.moduleName]) {\n mapNames[currentModule.moduleName] = true;\n allModules.push(currentModule);\n ModuleRegistry.register(currentModule, moduleBased);\n }\n }\n addIndividualModule(mod);\n if (mod.dependantModules) {\n mod.dependantModules.forEach(addModule.bind(null, moduleBased));\n }\n }\n if (passedViaConstructor) {\n passedViaConstructor.forEach(addModule.bind(null, true));\n }\n if (registered) {\n registered.forEach(addModule.bind(null, !ModuleRegistry.isPackageBased()));\n }\n return allModules;\n };\n GridCoreCreator.prototype.registerModuleUserComponents = function (beans, registeredModules) {\n var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });\n moduleUserComps.forEach(function (compMeta) {\n beans.userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);\n });\n };\n GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {\n var frameworkOverrides = params ? params.frameworkOverrides : null;\n if (missing(frameworkOverrides)) {\n frameworkOverrides = new VanillaFrameworkOverrides();\n }\n var seed = {\n gridOptions: gridOptions,\n eGridDiv: eGridDiv,\n globalEventListener: params ? params.globalEventListener : null,\n frameworkOverrides: frameworkOverrides\n };\n if (params && params.providedBeanInstances) {\n Object.assign(seed, params.providedBeanInstances);\n }\n return seed;\n };\n GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {\n var components = [\n { componentName: 'AgCheckbox', componentClass: AgCheckbox },\n { componentName: 'AgRadioButton', componentClass: AgRadioButton },\n { componentName: 'AgToggleButton', componentClass: AgToggleButton },\n { componentName: 'AgInputTextField', componentClass: AgInputTextField },\n { componentName: 'AgInputTextArea', componentClass: AgInputTextArea },\n { componentName: 'AgInputNumberField', componentClass: AgInputNumberField },\n { componentName: 'AgInputRange', componentClass: AgInputRange },\n { componentName: 'AgSelect', componentClass: AgSelect },\n { componentName: 'AgSlider', componentClass: AgSlider },\n { componentName: 'AgAngleSelect', componentClass: AgAngleSelect },\n { componentName: 'AgColorPicker', componentClass: AgColorPicker },\n { componentName: 'AgGridBody', componentClass: GridBodyComp },\n { componentName: 'AgHeaderRoot', componentClass: GridHeaderComp },\n { componentName: 'AgSortIndicator', componentClass: SortIndicatorComp },\n { componentName: 'AgPagination', componentClass: PaginationComp },\n { componentName: 'AgOverlayWrapper', componentClass: OverlayWrapperComponent },\n { componentName: 'AgGroupComponent', componentClass: AgGroupComponent },\n { componentName: 'AgPanel', componentClass: AgPanel },\n { componentName: 'AgDialog', componentClass: AgDialog },\n { componentName: 'AgRowContainer', componentClass: RowContainerComp },\n { componentName: 'AgFakeHorizontalScroll', componentClass: FakeHScrollComp }\n ];\n var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });\n components = components.concat(moduleAgStackComps);\n return components;\n };\n GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {\n var rowModelClass = this.getRowModelClass(rowModelType, registeredModules);\n if (!rowModelClass) {\n return;\n }\n // beans should only contain SERVICES, it should NEVER contain COMPONENTS\n var beans = [\n rowModelClass, Beans, RowPositionUtils, CellPositionUtils, HeaderPositionUtils,\n PaginationAutoPageSizeService, GridApi, UserComponentRegistry, AgComponentUtils,\n ComponentMetadataProvider, ResizeObserverService, UserComponentFactory,\n RowContainerHeightService, HorizontalResizeService,\n PinnedRowModel, DragService, DisplayedGroupCreator, EventService, GridOptionsWrapper,\n PopupService, SelectionService, FilterManager, ColumnModel, HeaderNavigationService,\n PaginationProxy, RowRenderer, ExpressionService, ColumnFactory, TemplateService,\n AlignedGridsService, NavigationService, ValueCache, ValueService, LoggerFactory,\n ColumnUtils, AutoWidthCalculator, StandardMenuFactory, DragAndDropService, ColumnApi,\n FocusService, MouseEventService, Environment, CellNavigationService, ValueFormatterService,\n StylingService, ScrollVisibleService, SortController, ColumnHoverService, ColumnAnimationService,\n SelectableService, AutoGroupColService, ChangeDetectionService, AnimationFrameService,\n UndoRedoService, AgStackComponentsRegistry, ColumnDefFactory,\n RowCssClassCalculator, RowNodeBlockLoader, RowNodeSorter, CtrlsService,\n PinnedWidthService, RowNodeEventThrottle, CtrlsFactory\n ];\n var moduleBeans = this.extractModuleEntity(registeredModules, function (module) { return module.beans ? module.beans : []; });\n beans.push.apply(beans, __spread$1(moduleBeans));\n // check for duplicates, as different modules could include the same beans that\n // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community\n var beansNoDuplicates = [];\n beans.forEach(function (bean) {\n if (beansNoDuplicates.indexOf(bean) < 0) {\n beansNoDuplicates.push(bean);\n }\n });\n return beansNoDuplicates;\n };\n GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {\n return [].concat.apply([], __spread$1(moduleEntities.map(extractor)));\n };\n GridCoreCreator.prototype.setColumnsAndData = function (beans) {\n var columnDefs = beans.gridOptionsWrapper.getColumnDefs();\n beans.columnModel.setColumnDefs(columnDefs || [], \"gridInitializing\");\n beans.rowModel.start();\n };\n GridCoreCreator.prototype.dispatchGridReadyEvent = function (beans) {\n var readyEvent = {\n type: Events.EVENT_GRID_READY,\n };\n beans.eventService.dispatchEvent(readyEvent);\n };\n GridCoreCreator.prototype.getRowModelClass = function (rowModelType, registeredModules) {\n // default to client side\n if (!rowModelType) {\n rowModelType = Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n }\n var rowModelClasses = {};\n registeredModules.forEach(function (module) {\n iterateObject(module.rowModels, function (key, value) {\n rowModelClasses[key] = value;\n });\n });\n var rowModelClass = rowModelClasses[rowModelType];\n if (exists(rowModelClass)) {\n return rowModelClass;\n }\n if (ModuleRegistry.isPackageBased()) {\n if ([Constants.ROW_MODEL_TYPE_VIEWPORT, Constants.ROW_MODEL_TYPE_SERVER_SIDE].includes(rowModelType)) {\n // If package based only the enterprise row models could be missing.\n console.error(\"AG Grid: Row Model \\\"\" + rowModelType + \"\\\" not found. Please ensure the package 'ag-grid-enterprise' is imported. Please see: https://www.ag-grid.com/javascript-grid/packages/\");\n }\n else {\n console.error('AG Grid: could not find row model for rowModelType ' + rowModelType);\n }\n }\n else {\n if (rowModelType === Constants.ROW_MODEL_TYPE_INFINITE) {\n console.error(\"AG Grid: Row Model \\\"Infinite\\\" not found. Please ensure the \" + ModuleNames.InfiniteRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT) {\n console.error(\"AG Grid: Row Model \\\"Viewport\\\" not found. Please ensure the AG Grid Enterprise Module \" + ModuleNames.ViewportRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Server Side\\\" not found. Please ensure the AG Grid Enterprise Module \" + ModuleNames.ServerSideRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Client Side\\\" not found. Please ensure the \" + ModuleNames.ClientSideRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else {\n console.error('AG Grid: could not find row model for rowModelType ' + rowModelType);\n }\n }\n };\n return GridCoreCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction defaultGroupComparator(valueA, valueB, nodeA, nodeB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n console.warn('AG Grid: Since ag-grid 11.0.0 defaultGroupComparator is not necessary. You can remove this from your colDef');\n var nodeAIsGroup = exists(nodeA) && nodeA.group;\n var nodeBIsGroup = exists(nodeB) && nodeB.group;\n var bothAreGroups = nodeAIsGroup && nodeBIsGroup;\n var bothAreNormal = !nodeAIsGroup && !nodeBIsGroup;\n if (bothAreGroups) {\n return defaultComparator(nodeA.key, nodeB.key, accentedCompare);\n }\n if (bothAreNormal) {\n return defaultComparator(valueA, valueB, accentedCompare);\n }\n if (nodeAIsGroup) {\n return 1;\n }\n return -1;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar BaseComponentWrapper = /** @class */ (function () {\n function BaseComponentWrapper() {\n }\n BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType) {\n var _this = this;\n if (optionalMethodList === void 0) { optionalMethodList = []; }\n var wrapper = this.createWrapper(OriginalConstructor, componentType);\n mandatoryMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, true);\n }));\n optionalMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, false);\n }));\n return wrapper;\n };\n BaseComponentWrapper.prototype.unwrap = function (comp) {\n return comp;\n };\n BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {\n wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));\n };\n BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {\n return function () {\n if (wrapper.hasMethod(methodName)) {\n return wrapper.callMethod(methodName, arguments);\n }\n if (mandatory) {\n console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');\n }\n return null;\n };\n };\n return BaseComponentWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DEFAULT_CHART_GROUPS = {\n columnGroup: [\n 'column',\n 'stackedColumn',\n 'normalizedColumn'\n ],\n barGroup: [\n 'bar',\n 'stackedBar',\n 'normalizedBar'\n ],\n pieGroup: [\n 'pie',\n 'doughnut'\n ],\n lineGroup: [\n 'line'\n ],\n scatterGroup: [\n 'scatter',\n 'bubble'\n ],\n areaGroup: [\n 'area',\n 'stackedArea',\n 'normalizedArea'\n ],\n histogramGroup: [\n 'histogram'\n ],\n combinationGroup: [\n 'columnLineCombo',\n 'areaColumnCombo',\n 'customCombo'\n ]\n};\nvar CHART_TOOL_PANEL_ALLOW_LIST = [\n 'chartSettings',\n 'chartData',\n 'chartFormat'\n];\nvar CHART_TOOLBAR_ALLOW_LIST = [\n 'chartUnlink',\n 'chartLink',\n 'chartDownload'\n];\nvar CHART_TOOL_PANEL_MENU_OPTIONS = {\n settings: \"chartSettings\",\n data: \"chartData\",\n format: \"chartFormat\"\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar globalObj = typeof global === 'undefined' ? {} : global;\nglobalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;\nglobalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;\nglobalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;\nglobalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;\nglobalObj.Node = typeof Node === 'undefined' ? {} : Node;\nglobalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;\n\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$1(arguments[i]));\n return ar;\n};\nvar ClientSideNodeManager = /** @class */ (function () {\n function ClientSideNodeManager(rootNode, gridOptionsWrapper, eventService, columnModel, selectionService, beans) {\n this.nextId = 0;\n // when user is provide the id's, we also keep a map of ids to row nodes for convenience\n this.allNodesMap = {};\n this.rootNode = rootNode;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.eventService = eventService;\n this.columnModel = columnModel;\n this.beans = beans;\n this.selectionService = selectionService;\n this.rootNode.group = true;\n this.rootNode.level = -1;\n this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;\n this.rootNode.allLeafChildren = [];\n this.rootNode.childrenAfterGroup = [];\n this.rootNode.childrenAfterSort = [];\n this.rootNode.childrenAfterAggFilter = [];\n this.rootNode.childrenAfterFilter = [];\n // if we make this class a bean, then can annotate postConstruct\n this.postConstruct();\n }\n // @PostConstruct - this is not a bean, so postConstruct called by constructor\n ClientSideNodeManager.prototype.postConstruct = function () {\n // func below doesn't have 'this' pointer, so need to pull out these bits\n this.suppressParentsInRowNodes = this.gridOptionsWrapper.isSuppressParentsInRowNodes();\n this.isRowMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();\n this.doingTreeData = this.gridOptionsWrapper.isTreeData();\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n };\n ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {\n return _.cloneObject(this.allNodesMap);\n };\n ClientSideNodeManager.prototype.getRowNode = function (id) {\n return this.allNodesMap[id];\n };\n ClientSideNodeManager.prototype.setRowData = function (rowData) {\n var _this = this;\n if (typeof rowData === 'string') {\n console.warn('AG Grid: rowData must be an array, however you passed in a string. If you are loading JSON, make sure you convert the JSON string to JavaScript objects first');\n return;\n }\n var rootNode = this.rootNode;\n var sibling = this.rootNode.sibling;\n rootNode.childrenAfterFilter = null;\n rootNode.childrenAfterGroup = null;\n rootNode.childrenAfterAggFilter = null;\n rootNode.childrenAfterSort = null;\n rootNode.childrenMapped = null;\n rootNode.updateHasChildren();\n this.nextId = 0;\n this.allNodesMap = {};\n if (rowData) {\n // we use rootNode as the parent, however if using ag-grid-enterprise, the grouping stage\n // sets the parent node on each row (even if we are not grouping). so setting parent node\n // here is for benefit of ag-grid-community users\n rootNode.allLeafChildren = rowData.map(function (dataItem) { return _this.createNode(dataItem, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n }\n else {\n rootNode.allLeafChildren = [];\n rootNode.childrenAfterGroup = [];\n }\n if (sibling) {\n sibling.childrenAfterFilter = rootNode.childrenAfterFilter;\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenAfterAggFilter = rootNode.childrenAfterAggFilter;\n sibling.childrenAfterSort = rootNode.childrenAfterSort;\n sibling.childrenMapped = rootNode.childrenMapped;\n sibling.allLeafChildren = rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n var rowNodeTransaction = {\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeAdd(rowDataTran, rowNodeTransaction);\n this.updateSelection(nodesToUnselect);\n if (rowNodeOrder) {\n _.sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);\n }\n return rowNodeTransaction;\n };\n ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n nodesToUnselect.forEach(function (rowNode) {\n rowNode.setSelected(false, false, true);\n });\n }\n // we do this regardless of nodes to unselect or not, as it's possible\n // a new node was inserted, so a parent that was previously selected (as all\n // children were selected) should not be tri-state (as new one unselected against\n // all other selected children).\n this.selectionService.updateGroupsFromChildrenSelections();\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n // create new row nodes for each data item\n var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n // add new row nodes to the root nodes 'allLeafChildren'\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n var nodesBeforeIndex;\n var nodesAfterIndex;\n if (useIndex) {\n // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.\n // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.\n // allLeafChildren can be out of order, so we loop over all the Nodes to find the correct index that\n // represents the position `addIndex` intended to be.\n var allLeafChildren_1 = this.rootNode.allLeafChildren;\n // if addIndex is 0, it should always be added at the start of the array\n // there is no need to verify the order of node by nodeIndex.\n var normalizedAddIndex = addIndex === 0 ? 0 : (allLeafChildren_1.reduce(function (prevIdx, currNode, currIdx) {\n var _a;\n var rowIndex = currNode.rowIndex;\n var prevValueAtIndex = (_a = allLeafChildren_1[prevIdx]) === null || _a === void 0 ? void 0 : _a.rowIndex;\n var shouldUpdateIndex = rowIndex != null && prevValueAtIndex != null && rowIndex < addIndex && rowIndex > prevValueAtIndex;\n return shouldUpdateIndex ? currIdx : prevIdx;\n }, 0) + 1);\n nodesBeforeIndex = allLeafChildren_1.slice(0, normalizedAddIndex);\n nodesAfterIndex = allLeafChildren_1.slice(normalizedAddIndex, allLeafChildren_1.length);\n }\n else {\n nodesBeforeIndex = this.rootNode.allLeafChildren;\n nodesAfterIndex = [];\n }\n this.rootNode.allLeafChildren = __spread(nodesBeforeIndex, newNodes, nodesAfterIndex);\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n // add new row nodes to the transaction add items\n rowNodeTransaction.add = newNodes;\n };\n ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (_.missingOrEmpty(remove)) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n });\n this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (_.missingOrEmpty(update)) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);\n rowNodeTransaction.update.push(rowNode);\n });\n };\n ClientSideNodeManager.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var rowNode;\n if (getRowIdFunc) {\n // find rowNode using id\n var id = getRowIdFunc({ data: data, level: 0 });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.rootNode.allLeafChildren.find(function (node) { return node.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n console.error(\"Consider using getRowId to help the Grid find matching row data\");\n return null;\n }\n }\n return rowNode || null;\n };\n ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {\n var node = new RowNode(this.beans);\n node.group = false;\n this.setMasterForRow(node, dataItem, level, true);\n if (parent && !this.suppressParentsInRowNodes) {\n node.parent = parent;\n }\n node.level = level;\n node.setDataAndId(dataItem, this.nextId.toString());\n if (this.allNodesMap[node.id]) {\n console.warn(\"AG Grid: duplicate node id '\" + node.id + \"' detected from getRowId callback, this could cause issues in your grid.\");\n }\n this.allNodesMap[node.id] = node;\n this.nextId++;\n return node;\n };\n ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {\n if (this.doingTreeData) {\n rowNode.setMaster(false);\n if (setExpanded) {\n rowNode.expanded = false;\n }\n }\n else {\n // this is the default, for when doing grid data\n if (this.doingMasterDetail) {\n // if we are doing master detail, then the\n // default is that everything can be a Master Row.\n if (this.isRowMasterFunc) {\n rowNode.setMaster(this.isRowMasterFunc(data));\n }\n else {\n rowNode.setMaster(true);\n }\n }\n else {\n rowNode.setMaster(false);\n }\n if (setExpanded) {\n var rowGroupColumns = this.columnModel.getRowGroupColumns();\n var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;\n // need to take row group into account when determining level\n var masterRowLevel = level + numRowGroupColumns;\n rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;\n }\n }\n };\n ClientSideNodeManager.prototype.isExpanded = function (level) {\n var expandByDefault = this.gridOptionsWrapper.getGroupDefaultExpanded();\n if (expandByDefault === -1) {\n return true;\n }\n return level < expandByDefault;\n };\n ClientSideNodeManager.TOP_LEVEL = 0;\n ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';\n return ClientSideNodeManager;\n}());\n\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RecursionType;\n(function (RecursionType) {\n RecursionType[RecursionType[\"Normal\"] = 0] = \"Normal\";\n RecursionType[RecursionType[\"AfterFilter\"] = 1] = \"AfterFilter\";\n RecursionType[RecursionType[\"AfterFilterAndSort\"] = 2] = \"AfterFilterAndSort\";\n RecursionType[RecursionType[\"PivotNodes\"] = 3] = \"PivotNodes\";\n})(RecursionType || (RecursionType = {}));\nvar ClientSideRowModel = /** @class */ (function (_super) {\n __extends$c(ClientSideRowModel, _super);\n function ClientSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onRowHeightChanged_debounced = _.debounce(_this.onRowHeightChanged.bind(_this), 100);\n _this.rowsToDisplay = []; // the rows mapped to rows to display\n return _this;\n }\n ClientSideRowModel.prototype.init = function () {\n var refreshEverythingFunc = this.refreshModel.bind(this, { step: ClientSideRowModelSteps.EVERYTHING });\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.EVERYTHING,\n afterColumnsChanged: true,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refreshModel.bind(this, { step: ClientSideRowModelSteps.PIVOT }));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);\n var refreshMapListener = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.MAP,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, refreshMapListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, refreshMapListener);\n this.rootNode = new RowNode(this.beans);\n this.nodeManager = new ClientSideNodeManager(this.rootNode, this.gridOptionsWrapper, this.eventService, this.columnModel, this.selectionService, this.beans);\n };\n ClientSideRowModel.prototype.start = function () {\n var rowData = this.gridOptionsWrapper.getRowData();\n if (rowData) {\n this.setRowData(rowData);\n }\n };\n ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var atLeastOneChange;\n var res = false;\n // we do this multiple times as changing the row heights can also change the first and last rows,\n // so the first pass can make lots of rows smaller, which means the second pass we end up changing\n // more rows.\n do {\n atLeastOneChange = false;\n var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);\n var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);\n // keep check to current page if doing pagination\n var firstRow = Math.max(rowAtStartPixel, startLimitIndex);\n var lastRow = Math.min(rowAtEndPixel, endLimitIndex);\n for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {\n var rowNode = this.getRow(rowIndex);\n if (rowNode.rowHeightEstimated) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode);\n rowNode.setRowHeight(rowHeight.height);\n atLeastOneChange = true;\n res = true;\n }\n }\n if (atLeastOneChange) {\n this.setRowTopAndRowIndex();\n }\n } while (atLeastOneChange);\n return res;\n };\n ClientSideRowModel.prototype.setRowTopAndRowIndex = function () {\n var defaultRowHeight = this.gridOptionsWrapper.getDefaultRowHeight();\n var nextRowTop = 0;\n // mapping displayed rows is not needed for this method, however it's used in\n // clearRowTopAndRowIndex(), and given we are looping through this.rowsToDisplay here,\n // we create the map here for performance reasons, so we don't loop a second time\n // in clearRowTopAndRowIndex()\n var displayedRowsMapped = new Set();\n // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time\n // with these two layouts.\n var allowEstimate = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n for (var i = 0; i < this.rowsToDisplay.length; i++) {\n var rowNode = this.rowsToDisplay[i];\n if (rowNode.id != null) {\n displayedRowsMapped.add(rowNode.id);\n }\n if (rowNode.rowHeight == null) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode, allowEstimate, defaultRowHeight);\n rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);\n }\n rowNode.setRowTop(nextRowTop);\n rowNode.setRowIndex(i);\n nextRowTop += rowNode.rowHeight;\n }\n return displayedRowsMapped;\n };\n ClientSideRowModel.prototype.clearRowTopAndRowIndex = function (changedPath, displayedRowsMapped) {\n var changedPathActive = changedPath.isActive();\n var clearIfNotDisplayed = function (rowNode) {\n if (rowNode && rowNode.id != null && !displayedRowsMapped.has(rowNode.id)) {\n rowNode.clearRowTopAndRowIndex();\n }\n };\n var recurse = function (rowNode) {\n clearIfNotDisplayed(rowNode);\n clearIfNotDisplayed(rowNode.detailNode);\n clearIfNotDisplayed(rowNode.sibling);\n if (rowNode.hasChildren()) {\n if (rowNode.childrenAfterGroup) {\n // if a changedPath is active, it means we are here because of a transaction update or\n // a change detection. neither of these impacts the open/closed state of groups. so if\n // a group is not open this time, it was not open last time. so we know all closed groups\n // already have their top positions cleared. so there is no need to traverse all the way\n // when changedPath is active and the rowNode is not expanded.\n var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,\n // as expanded=undefined for root node\n var skipChildren = changedPathActive && !isRootNode && !rowNode.expanded;\n if (!skipChildren) {\n rowNode.childrenAfterGroup.forEach(recurse);\n }\n }\n }\n };\n recurse(this.rootNode);\n };\n // returns false if row was moved, otherwise true\n ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {\n var _this = this;\n if (increment === void 0) { increment = 0; }\n var indexAtPixelNow = this.getRowIndexAtPixel(pixel);\n var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n if (rowNodeAtPixelNow === rowNodes[0]) {\n return false;\n }\n rowNodes.forEach(function (rowNode) {\n _.removeFromArray(_this.rootNode.allLeafChildren, rowNode);\n });\n rowNodes.forEach(function (rowNode, idx) {\n _.insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);\n });\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n return true;\n };\n ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {\n var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;\n var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;\n if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {\n if (this.lastHighlightedRow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n return;\n }\n var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);\n if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n rowNodeAtPixelNow.setHighlighted(highlight);\n this.lastHighlightedRow = rowNodeAtPixelNow;\n };\n ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {\n if (!rowNode) {\n var index = this.getRowIndexAtPixel(pixel);\n rowNode = this.getRow(index || 0);\n if (!rowNode) {\n return RowHighlightPosition.Below;\n }\n }\n var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;\n return pixel - rowTop < rowHeight / 2 ? RowHighlightPosition.Above : RowHighlightPosition.Below;\n };\n ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {\n return this.lastHighlightedRow;\n };\n ClientSideRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ClientSideRowModel.prototype.getRowCount = function () {\n if (this.rowsToDisplay) {\n return this.rowsToDisplay.length;\n }\n return 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowCount = function () {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return 1;\n }\n var filteredChildren = this.rootNode.childrenAfterAggFilter;\n return filteredChildren ? filteredChildren.length : 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return topLevelIndex;\n }\n var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is\n while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {\n rowNode = rowNode.childrenAfterSort[0];\n }\n }\n return rowNode.rowIndex;\n };\n ClientSideRowModel.prototype.getRowBounds = function (index) {\n if (_.missing(this.rowsToDisplay)) {\n return null;\n }\n var rowNode = this.rowsToDisplay[index];\n if (rowNode) {\n return {\n rowTop: rowNode.rowTop,\n rowHeight: rowNode.rowHeight\n };\n }\n return null;\n };\n ClientSideRowModel.prototype.onRowGroupOpened = function () {\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: ClientSideRowModelSteps.MAP, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onFilterChanged = function (event) {\n if (event.afterDataChange) {\n return;\n }\n var animate = this.gridOptionsWrapper.isAnimateRows();\n var primaryOrQuickFilterChanged = event.columns.length === 0 || event.columns.some(function (col) { return col.isPrimary(); });\n var step = primaryOrQuickFilterChanged ? ClientSideRowModelSteps.FILTER : ClientSideRowModelSteps.FILTER_AGGREGATES;\n this.refreshModel({ step: step, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onSortChanged = function () {\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: ClientSideRowModelSteps.SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n };\n ClientSideRowModel.prototype.onValueChanged = function () {\n if (this.columnModel.isPivotActive()) {\n this.refreshModel({ step: ClientSideRowModelSteps.PIVOT });\n }\n else {\n this.refreshModel({ step: ClientSideRowModelSteps.AGGREGATE });\n }\n };\n ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {\n // for updates, if the row is updated at all, then we re-calc all the values\n // in that row. we could compare each value to each old value, however if we\n // did this, we would be calling the valueService twice, once on the old value\n // and once on the new value. so it's less valueGetter calls if we just assume\n // each column is different. that way the changedPath is used so that only\n // the impacted parent rows are recalculated, parents who's children have\n // not changed are not impacted.\n var noTransactions = _.missingOrEmpty(rowNodeTransactions);\n var changedPath = new ChangedPath(false, this.rootNode);\n if (noTransactions || this.gridOptionsWrapper.isTreeData()) {\n changedPath.setInactive();\n }\n return changedPath;\n };\n ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {\n if (!this.gridOptionsWrapper.isSuppressModelUpdateAfterUpdateTransaction()) {\n return false;\n }\n // return true if we are only doing update transactions\n if (params.rowNodeTransactions == null) {\n return false;\n }\n var transWithAddsOrDeletes = params.rowNodeTransactions.filter(function (tx) {\n return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);\n });\n var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;\n return transactionsContainUpdatesOnly;\n };\n ClientSideRowModel.prototype.refreshModel = function (params) {\n if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {\n return;\n }\n // this goes through the pipeline of stages. what's in my head is similar\n // to the diagram on this page:\n // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html\n // however we want to keep the results of each stage, hence we manually call\n // each step rather than have them chain each other.\n // fallthrough in below switch is on purpose,\n // eg if STEP_FILTER, then all steps below this\n // step get done\n // let start: number;\n // console.log('======= start =======');\n var changedPath = this.createChangePath(params.rowNodeTransactions);\n switch (params.step) {\n case ClientSideRowModelSteps.EVERYTHING:\n this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);\n case ClientSideRowModelSteps.FILTER:\n this.doFilter(changedPath);\n case ClientSideRowModelSteps.PIVOT:\n this.doPivot(changedPath);\n case ClientSideRowModelSteps.AGGREGATE: // depends on agg fields\n this.doAggregate(changedPath);\n case ClientSideRowModelSteps.FILTER_AGGREGATES:\n this.doFilterAggregates(changedPath);\n case ClientSideRowModelSteps.SORT:\n this.doSort(params.rowNodeTransactions, changedPath);\n case ClientSideRowModelSteps.MAP:\n this.doRowsToDisplay();\n }\n // set all row tops to null, then set row tops on all visible rows. if we don't\n // do this, then the algorithm below only sets row tops, old row tops from old rows\n // will still lie around\n var displayedNodesMapped = this.setRowTopAndRowIndex();\n this.clearRowTopAndRowIndex(changedPath, displayedNodesMapped);\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: params.animate,\n keepRenderedRows: params.keepRenderedRows,\n newData: params.newData,\n newPage: false,\n keepUndoRedoStack: params.keepUndoRedoStack\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.isEmpty = function () {\n var rowsMissing = _.missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;\n return _.missing(this.rootNode) || rowsMissing || !this.columnModel.isReady();\n };\n ClientSideRowModel.prototype.isRowsToRender = function () {\n return _.exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;\n };\n ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n // if lastSelectedNode is missing, we start at the first row\n var firstRowHit = !lastInRange;\n var lastRowHit = false;\n var lastRow;\n var result = [];\n var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.forEachNodeAfterFilterAndSort(function (rowNode) {\n var lookingForLastRow = firstRowHit && !lastRowHit;\n // check if we need to flip the select switch\n if (!firstRowHit) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n firstRowHit = true;\n }\n }\n var skipThisGroupNode = rowNode.group && groupsSelectChildren;\n if (!skipThisGroupNode) {\n var inRange = firstRowHit && !lastRowHit;\n var childOfLastRow = rowNode.isParentOfNode(lastRow);\n if (inRange || childOfLastRow) {\n result.push(rowNode);\n }\n }\n if (lookingForLastRow) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n lastRowHit = true;\n if (rowNode === lastInRange) {\n lastRow = lastInRange;\n }\n else {\n lastRow = firstInRange;\n }\n }\n }\n });\n return result;\n };\n ClientSideRowModel.prototype.setDatasource = function (datasource) {\n console.error('AG Grid: should never call setDatasource on clientSideRowController');\n };\n ClientSideRowModel.prototype.getTopLevelNodes = function () {\n return this.rootNode ? this.rootNode.childrenAfterGroup : null;\n };\n ClientSideRowModel.prototype.getRootNode = function () {\n return this.rootNode;\n };\n ClientSideRowModel.prototype.getRow = function (index) {\n return this.rowsToDisplay[index];\n };\n ClientSideRowModel.prototype.isRowPresent = function (rowNode) {\n return this.rowsToDisplay.indexOf(rowNode) >= 0;\n };\n ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {\n if (this.isEmpty() || this.rowsToDisplay.length === 0) {\n return -1;\n }\n // do binary search of tree\n // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/\n var bottomPointer = 0;\n var topPointer = this.rowsToDisplay.length - 1;\n // quick check, if the pixel is out of bounds, then return last row\n if (pixelToMatch <= 0) {\n // if pixel is less than or equal zero, it's always the first row\n return 0;\n }\n var lastNode = _.last(this.rowsToDisplay);\n if (lastNode.rowTop <= pixelToMatch) {\n return this.rowsToDisplay.length - 1;\n }\n var oldBottomPointer = -1;\n var oldTopPointer = -1;\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = this.rowsToDisplay[midPointer];\n if (this.isRowInPixel(currentRowNode, pixelToMatch)) {\n return midPointer;\n }\n if (currentRowNode.rowTop < pixelToMatch) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowTop > pixelToMatch) {\n topPointer = midPointer - 1;\n }\n // infinite loops happen when there is space between rows. this can happen\n // when Auto Height is active, cos we re-calculate row tops asyncronously\n // when row heights change, which can temporarly result in gaps between rows.\n var caughtInInfiniteLoop = oldBottomPointer === bottomPointer\n && oldTopPointer === topPointer;\n if (caughtInInfiniteLoop) {\n return midPointer;\n }\n oldBottomPointer = bottomPointer;\n oldTopPointer = topPointer;\n }\n };\n ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {\n var topPixel = rowNode.rowTop;\n var bottomPixel = rowNode.rowTop + rowNode.rowHeight;\n var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;\n return pixelInRow;\n };\n ClientSideRowModel.prototype.forEachLeafNode = function (callback) {\n if (this.rootNode.allLeafChildren) {\n this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });\n }\n };\n ClientSideRowModel.prototype.forEachNode = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterGroup, callback, RecursionType.Normal, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterAggFilter, callback, RecursionType.AfterFilter, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterSort, callback, RecursionType.AfterFilterAndSort, 0);\n };\n ClientSideRowModel.prototype.forEachPivotNode = function (callback) {\n this.recursivelyWalkNodesAndCallback([this.rootNode], callback, RecursionType.PivotNodes, 0);\n };\n // iterates through each item in memory, and calls the callback function\n // nodes - the rowNodes to traverse\n // callback - the user provided callback\n // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc\n // index - works similar to the index in forEach in javascript's array function\n ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (nodes, callback, recursionType, index) {\n if (!nodes) {\n return index;\n }\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n callback(node, index++);\n // go to the next level if it is a group\n if (node.hasChildren()) {\n // depending on the recursion type, we pick a difference set of children\n var nodeChildren = null;\n switch (recursionType) {\n case RecursionType.Normal:\n nodeChildren = node.childrenAfterGroup;\n break;\n case RecursionType.AfterFilter:\n nodeChildren = node.childrenAfterAggFilter;\n break;\n case RecursionType.AfterFilterAndSort:\n nodeChildren = node.childrenAfterSort;\n break;\n case RecursionType.PivotNodes:\n // for pivot, we don't go below leafGroup levels\n nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;\n break;\n }\n if (nodeChildren) {\n index = this.recursivelyWalkNodesAndCallback(nodeChildren, callback, recursionType, index);\n }\n }\n }\n return index;\n };\n // it's possible to recompute the aggregate without doing the other parts\n // + gridApi.recomputeAggregates()\n ClientSideRowModel.prototype.doAggregate = function (changedPath) {\n if (this.aggregationStage) {\n this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.doFilterAggregates = function (changedPath) {\n if (this.filterAggregatesStage) {\n this.filterAggregatesStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n else {\n // If filterAggregatesStage is undefined, then so is the grouping stage, so all children should be on the rootNode.\n this.rootNode.childrenAfterAggFilter = this.rootNode.childrenAfterFilter;\n }\n };\n // + gridApi.expandAll()\n // + gridApi.collapseAll()\n ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var usingPivotMode = this.columnModel.isPivotActive();\n var recursiveExpandOrCollapse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var actionRow = function () {\n rowNode.expanded = expand;\n recursiveExpandOrCollapse(rowNode.childrenAfterGroup);\n };\n if (usingTreeData) {\n var hasChildren = _.exists(rowNode.childrenAfterGroup);\n if (hasChildren) {\n actionRow();\n }\n return;\n }\n if (usingPivotMode) {\n var notLeafGroup = !rowNode.leafGroup;\n if (notLeafGroup) {\n actionRow();\n }\n return;\n }\n var isRowGroup = rowNode.group;\n if (isRowGroup) {\n actionRow();\n }\n });\n };\n if (this.rootNode) {\n recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);\n }\n this.refreshModel({ step: ClientSideRowModelSteps.MAP });\n var eventSource = expand ? 'expandAll' : 'collapseAll';\n var event = {\n type: Events.EVENT_EXPAND_COLLAPSE_ALL,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {\n this.sortStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n changedPath: changedPath\n });\n };\n ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {\n if (this.groupStage) {\n if (rowNodeTransactions) {\n this.groupStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n rowNodeOrder: rowNodeOrder,\n changedPath: changedPath\n });\n }\n else {\n this.groupStage.execute({\n rowNode: this.rootNode,\n changedPath: changedPath,\n afterColumnsChanged: afterColumnsChanged\n });\n // set open/closed state on groups\n this.restoreGroupState(groupState);\n }\n if (this.gridOptionsWrapper.isGroupSelectsChildren()) {\n this.selectionService.updateGroupsFromChildrenSelections(changedPath);\n }\n }\n else {\n this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;\n if (this.rootNode.sibling) {\n this.rootNode.sibling.childrenAfterGroup = this.rootNode.childrenAfterGroup;\n }\n this.rootNode.updateHasChildren();\n }\n };\n ClientSideRowModel.prototype.restoreGroupState = function (groupState) {\n if (!groupState) {\n return;\n }\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {\n // if the group was open last time, then open it this time. however\n // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'\n // setting will take effect.\n if (typeof groupState[key] === 'boolean') {\n node.expanded = groupState[key];\n }\n });\n };\n ClientSideRowModel.prototype.doFilter = function (changedPath) {\n this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n };\n ClientSideRowModel.prototype.doPivot = function (changedPath) {\n if (this.pivotStage) {\n this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.getGroupState = function () {\n if (!this.rootNode.childrenAfterGroup || !this.gridOptionsWrapper.isRememberGroupStateWhenNewData()) {\n return null;\n }\n var result = {};\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });\n return result;\n };\n ClientSideRowModel.prototype.getCopyOfNodesMap = function () {\n return this.nodeManager.getCopyOfNodesMap();\n };\n ClientSideRowModel.prototype.getRowNode = function (id) {\n // although id is typed a string, this could be called by the user, and they could have passed a number\n var idIsGroup = typeof id == 'string' && id.indexOf(RowNode.ID_PREFIX_ROW_GROUP) == 0;\n if (idIsGroup) {\n // only one users complained about getRowNode not working for groups, after years of\n // this working for normal rows. so have done quick implementation. if users complain\n // about performance, then GroupStage should store / manage created groups in a map,\n // which is a chunk of work.\n var res_1 = undefined;\n this.forEachNode(function (node) {\n if (node.id === id) {\n res_1 = node;\n }\n });\n return res_1;\n }\n return this.nodeManager.getRowNode(id);\n };\n // rows: the rows to put into the model\n ClientSideRowModel.prototype.setRowData = function (rowData) {\n // no need to invalidate cache, as the cache is stored on the rowNode,\n // so new rowNodes means the cache is wiped anyway.\n // remember group state, so we can expand groups that should be expanded\n var groupState = this.getGroupState();\n this.nodeManager.setRowData(rowData);\n // - clears selection\n this.selectionService.reset();\n // - updates filters\n this.filterManager.onNewRowsLoaded('rowDataUpdated');\n // this event kicks off:\n // - shows 'no rows' overlay if needed\n var rowDataUpdatedEvent = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(rowDataUpdatedEvent);\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n groupState: groupState,\n newData: true\n });\n };\n ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var _this = this;\n if (this.applyAsyncTransactionsTimeout == null) {\n this.rowDataTransactionBatch = [];\n var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();\n this.applyAsyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeBatchUpdateRowData();\n }, waitMillis);\n }\n this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });\n };\n ClientSideRowModel.prototype.flushAsyncTransactions = function () {\n if (this.applyAsyncTransactionsTimeout != null) {\n clearTimeout(this.applyAsyncTransactionsTimeout);\n this.executeBatchUpdateRowData();\n }\n };\n ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {\n var _this = this;\n this.valueCache.onDataChanged();\n var callbackFuncsBound = [];\n var rowNodeTrans = [];\n // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to\n // commonUpdateRowData, using addIndex would have no effect when grouping.\n var forceRowNodeOrder = false;\n if (this.rowDataTransactionBatch) {\n this.rowDataTransactionBatch.forEach(function (tranItem) {\n var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);\n rowNodeTrans.push(rowNodeTran);\n if (tranItem.callback) {\n callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));\n }\n if (typeof tranItem.rowDataTransaction.addIndex === 'number') {\n forceRowNodeOrder = true;\n }\n });\n }\n this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);\n // do callbacks in next VM turn so it's async\n if (callbackFuncsBound.length > 0) {\n window.setTimeout(function () {\n callbackFuncsBound.forEach(function (func) { return func(); });\n }, 0);\n }\n if (rowNodeTrans.length > 0) {\n var event_1 = {\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: rowNodeTrans\n };\n this.eventService.dispatchEvent(event_1);\n }\n this.rowDataTransactionBatch = null;\n this.applyAsyncTransactionsTimeout = undefined;\n };\n ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n this.valueCache.onDataChanged();\n var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);\n // if doing immutableData, addIndex is never present. however if doing standard transaction, and user\n // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup\n // stage also uses the\n var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';\n this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);\n return rowNodeTran;\n };\n ClientSideRowModel.prototype.createRowNodeOrder = function () {\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n if (suppressSortOrder) {\n return;\n }\n var orderMap = {};\n if (this.rootNode && this.rootNode.allLeafChildren) {\n for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {\n var node = this.rootNode.allLeafChildren[index];\n orderMap[node.id] = index;\n }\n }\n return orderMap;\n };\n // common to updateRowData and batchUpdateRowData\n ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n if (forceRowNodeOrder) {\n rowNodeOrder = this.createRowNodeOrder();\n }\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n rowNodeTransactions: rowNodeTrans,\n rowNodeOrder: rowNodeOrder,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n // - updates filters\n this.filterManager.onNewRowsLoaded('rowDataUpdated');\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doRowsToDisplay = function () {\n this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });\n };\n ClientSideRowModel.prototype.onRowHeightChanged = function () {\n this.refreshModel({ step: ClientSideRowModelSteps.MAP, keepRenderedRows: true, keepEditingRows: true, keepUndoRedoStack: true });\n };\n /** This method is debounced. It is used for row auto-height. If we don't debounce,\n * then the Row Models will end up recalculating each row position\n * for each row height change and result in the Row Renderer laying out rows.\n * This is particularly bad if using print layout, and showing eg 1,000 rows,\n * each row will change it's height, causing Row Model to update 1,000 times.\n */\n ClientSideRowModel.prototype.onRowHeightChangedDebounced = function () {\n this.onRowHeightChanged_debounced();\n };\n ClientSideRowModel.prototype.resetRowHeights = function () {\n var atLeastOne = false;\n this.forEachNode(function (rowNode) {\n rowNode.setRowHeight(rowNode.rowHeight, true);\n // we keep the height each row is at, however we set estimated=true rather than clear the height.\n // this means the grid will not reset the row heights back to defaults, rather it will re-calc\n // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.\n var detailNode = rowNode.detailNode;\n if (detailNode) {\n detailNode.setRowHeight(detailNode.rowHeight, true);\n }\n atLeastOne = true;\n });\n if (atLeastOne) {\n this.onRowHeightChanged();\n }\n };\n __decorate$b([\n Autowired('columnModel')\n ], ClientSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$b([\n Autowired('selectionService')\n ], ClientSideRowModel.prototype, \"selectionService\", void 0);\n __decorate$b([\n Autowired('filterManager')\n ], ClientSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$b([\n Autowired('valueCache')\n ], ClientSideRowModel.prototype, \"valueCache\", void 0);\n __decorate$b([\n Autowired('beans')\n ], ClientSideRowModel.prototype, \"beans\", void 0);\n __decorate$b([\n Autowired('filterStage')\n ], ClientSideRowModel.prototype, \"filterStage\", void 0);\n __decorate$b([\n Autowired('sortStage')\n ], ClientSideRowModel.prototype, \"sortStage\", void 0);\n __decorate$b([\n Autowired('flattenStage')\n ], ClientSideRowModel.prototype, \"flattenStage\", void 0);\n __decorate$b([\n Optional('groupStage')\n ], ClientSideRowModel.prototype, \"groupStage\", void 0);\n __decorate$b([\n Optional('aggregationStage')\n ], ClientSideRowModel.prototype, \"aggregationStage\", void 0);\n __decorate$b([\n Optional('pivotStage')\n ], ClientSideRowModel.prototype, \"pivotStage\", void 0);\n __decorate$b([\n Optional('filterAggregatesStage')\n ], ClientSideRowModel.prototype, \"filterAggregatesStage\", void 0);\n __decorate$b([\n PostConstruct\n ], ClientSideRowModel.prototype, \"init\", null);\n ClientSideRowModel = __decorate$b([\n Bean('rowModel')\n ], ClientSideRowModel);\n return ClientSideRowModel;\n}(BeanStub));\n\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterStage = /** @class */ (function (_super) {\n __extends$b(FilterStage, _super);\n function FilterStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterStage.prototype.execute = function (params) {\n var changedPath = params.changedPath;\n this.filterService.filter(changedPath);\n };\n __decorate$a([\n Autowired('filterService')\n ], FilterStage.prototype, \"filterService\", void 0);\n FilterStage = __decorate$a([\n Bean('filterStage')\n ], FilterStage);\n return FilterStage;\n}(BeanStub));\n\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortStage = /** @class */ (function (_super) {\n __extends$a(SortStage, _super);\n function SortStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortStage.prototype.execute = function (params) {\n var _this = this;\n var sortOptions = this.sortController.getSortOptions();\n var sortActive = _.exists(sortOptions) && sortOptions.length > 0;\n var deltaSort = sortActive\n && _.exists(params.rowNodeTransactions)\n // in time we can remove this check, so that delta sort is always\n // on if transactions are present. it's off for now so that we can\n // selectively turn it on and test it with some select users before\n // rolling out to everyone.\n && this.gridOptionsWrapper.isDeltaSort();\n var sortContainsGroupColumns = sortOptions.some(function (opt) { return !!_this.columnModel.getGroupDisplayColumnForGroup(opt.column.getId()); });\n this.sortService.sort(sortOptions, sortActive, deltaSort, params.rowNodeTransactions, params.changedPath, sortContainsGroupColumns);\n };\n __decorate$9([\n Autowired('sortService')\n ], SortStage.prototype, \"sortService\", void 0);\n __decorate$9([\n Autowired('sortController')\n ], SortStage.prototype, \"sortController\", void 0);\n __decorate$9([\n Autowired('columnModel')\n ], SortStage.prototype, \"columnModel\", void 0);\n SortStage = __decorate$9([\n Bean('sortStage')\n ], SortStage);\n return SortStage;\n}(BeanStub));\n\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FlattenStage = /** @class */ (function (_super) {\n __extends$9(FlattenStage, _super);\n function FlattenStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FlattenStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n // even if not doing grouping, we do the mapping, as the client might\n // of passed in data that already has a grouping in it somewhere\n var result = [];\n // putting value into a wrapper so it's passed by reference\n var nextRowTop = { value: 0 };\n var skipLeafNodes = this.columnModel.isPivotMode();\n // if we are reducing, and not grouping, then we want to show the root node, as that\n // is where the pivot values are\n var showRootNode = skipLeafNodes && rootNode.leafGroup;\n var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;\n this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);\n // we do not want the footer total if the gris is empty\n var atLeastOneRowPresent = result.length > 0;\n var includeGroupTotalFooter = !showRootNode\n // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)\n && atLeastOneRowPresent\n && this.gridOptionsWrapper.isGroupIncludeTotalFooter();\n if (includeGroupTotalFooter) {\n this.ensureFooterNodeExists(rootNode);\n this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);\n }\n return result;\n };\n FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {\n if (_.missingOrEmpty(rowsToFlatten)) {\n return;\n }\n var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();\n // these two are mutually exclusive, so if first set, we don't set the second\n var groupRemoveSingleChildren = this.gridOptionsWrapper.isGroupRemoveSingleChildren();\n var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n for (var i = 0; i < rowsToFlatten.length; i++) {\n var rowNode = rowsToFlatten[i];\n // check all these cases, for working out if this row should be included in the final mapped list\n var isParent = rowNode.hasChildren();\n var isSkippedLeafNode = skipLeafNodes && !isParent;\n var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&\n isParent &&\n rowNode.childrenAfterGroup.length === 1;\n var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&\n isParent &&\n rowNode.leafGroup &&\n rowNode.childrenAfterGroup.length === 1;\n // hide open parents means when group is open, we don't show it. we also need to make sure the\n // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).\n // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')\n var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;\n var isHiddenOpenParent = hideOpenParents && rowNode.expanded && !rowNode.master && (!neverAllowToExpand);\n var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&\n !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;\n if (thisRowShouldBeRendered) {\n this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);\n }\n // if we are pivoting, we never map below the leaf group\n if (skipLeafNodes && rowNode.leafGroup) {\n continue;\n }\n if (isParent) {\n var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;\n // we traverse the group if it is expended, however we always traverse if the parent node\n // was removed (as the group will never be opened if it is not displayed, we show the children instead)\n if (rowNode.expanded || excludedParent) {\n // if the parent was excluded, then ui level is that of the parent\n var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;\n this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);\n // put a footer in if user is looking for it\n if (this.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.ensureFooterNodeExists(rowNode);\n this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);\n }\n }\n }\n else if (rowNode.master && rowNode.expanded) {\n var detailNode = this.createDetailNode(rowNode);\n this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);\n }\n }\n };\n // duplicated method, it's also in floatingRowModel\n FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {\n var isGroupMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n result.push(rowNode);\n rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);\n };\n FlattenStage.prototype.ensureFooterNodeExists = function (groupNode) {\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (_.exists(groupNode.sibling)) {\n return;\n }\n var footerNode = new RowNode(this.beans);\n Object.keys(groupNode).forEach(function (key) {\n footerNode[key] = groupNode[key];\n });\n footerNode.footer = true;\n footerNode.setRowTop(null);\n footerNode.setRowIndex(null);\n // manually set oldRowTop to null so we discard any\n // previous information about its position.\n footerNode.oldRowTop = null;\n if (_.exists(footerNode.id)) {\n footerNode.id = 'rowGroupFooter_' + footerNode.id;\n }\n // get both header and footer to reference each other as siblings. this is never undone,\n // only overwritten. so if a group is expanded, then contracted, it will have a ghost\n // sibling - but that's fine, as we can ignore this if the header is contracted.\n footerNode.sibling = groupNode;\n groupNode.sibling = footerNode;\n };\n FlattenStage.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$8([\n Autowired('columnModel')\n ], FlattenStage.prototype, \"columnModel\", void 0);\n __decorate$8([\n Autowired('beans')\n ], FlattenStage.prototype, \"beans\", void 0);\n FlattenStage = __decorate$8([\n Bean('flattenStage')\n ], FlattenStage);\n return FlattenStage;\n}(BeanStub));\n\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortService = /** @class */ (function (_super) {\n __extends$8(SortService, _super);\n function SortService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortService.prototype.init = function () {\n this.postSortFunc = this.gridOptionsWrapper.getPostSortFunc();\n };\n SortService.prototype.sort = function (sortOptions, sortActive, useDeltaSort, rowNodeTransactions, changedPath, sortContainsGroupColumns) {\n var _this = this;\n var groupMaintainOrder = this.gridOptionsWrapper.isGroupMaintainOrder();\n var groupColumnsPresent = this.columnModel.getAllGridColumns().some(function (c) { return c.isRowGroupActive(); });\n var allDirtyNodes = {};\n if (useDeltaSort && rowNodeTransactions) {\n allDirtyNodes = this.calculateDirtyNodes(rowNodeTransactions);\n }\n var isPivotMode = this.columnModel.isPivotMode();\n var callback = function (rowNode) {\n // we clear out the 'pull down open parents' first, as the values mix up the sorting\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterAggFilter, true);\n // It's pointless to sort rows which aren't being displayed. in pivot mode we don't need to sort the leaf group children.\n var skipSortingPivotLeafs = isPivotMode && rowNode.leafGroup;\n // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,\n // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we\n // are going to inspect the original array position. This is what sortedRowNodes is for.\n var skipSortingGroups = groupMaintainOrder && groupColumnsPresent && !rowNode.leafGroup && !sortContainsGroupColumns;\n if (!sortActive || skipSortingGroups || skipSortingPivotLeafs) {\n // when 'groupMaintainOrder' is enabled we skip sorting groups unless we are sorting on group columns\n var childrenToBeSorted = rowNode.childrenAfterAggFilter.slice(0);\n if (groupMaintainOrder && rowNode.childrenAfterSort) {\n var indexedOrders_1 = rowNode.childrenAfterSort.reduce(function (acc, row, idx) {\n acc[row.id] = idx;\n return acc;\n }, {});\n childrenToBeSorted.sort(function (row1, row2) { return (indexedOrders_1[row1.id] || 0) - (indexedOrders_1[row2.id] || 0); });\n }\n rowNode.childrenAfterSort = childrenToBeSorted;\n }\n else if (useDeltaSort) {\n rowNode.childrenAfterSort = _this.doDeltaSort(rowNode, allDirtyNodes, changedPath, sortOptions);\n }\n else {\n rowNode.childrenAfterSort = _this.rowNodeSorter.doFullSort(rowNode.childrenAfterAggFilter, sortOptions);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterSort = rowNode.childrenAfterSort;\n }\n _this.updateChildIndexes(rowNode);\n if (_this.postSortFunc) {\n var params = { nodes: rowNode.childrenAfterSort };\n _this.postSortFunc(params);\n }\n };\n if (changedPath) {\n changedPath.forEachChangedNodeDepthFirst(callback);\n }\n this.updateGroupDataForHideOpenParents(changedPath);\n };\n SortService.prototype.calculateDirtyNodes = function (rowNodeTransactions) {\n var dirtyNodes = {};\n var addNodesFunc = function (rowNodes) {\n if (rowNodes) {\n rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });\n }\n };\n // all leaf level nodes in the transaction were impacted\n if (rowNodeTransactions) {\n rowNodeTransactions.forEach(function (tran) {\n addNodesFunc(tran.add);\n addNodesFunc(tran.update);\n addNodesFunc(tran.remove);\n });\n }\n return dirtyNodes;\n };\n SortService.prototype.doDeltaSort = function (rowNode, allTouchedNodes, changedPath, sortOptions) {\n var _this = this;\n var unsortedRows = rowNode.childrenAfterAggFilter;\n var oldSortedRows = rowNode.childrenAfterSort;\n if (!oldSortedRows) {\n return this.rowNodeSorter.doFullSort(unsortedRows, sortOptions);\n }\n var untouchedRowsMap = {};\n var touchedRows = [];\n unsortedRows.forEach(function (row) {\n if (allTouchedNodes[row.id] || !changedPath.canSkip(row)) {\n touchedRows.push(row);\n }\n else {\n untouchedRowsMap[row.id] = true;\n }\n });\n var sortedUntouchedRows = oldSortedRows.filter(function (child) { return untouchedRowsMap[child.id]; });\n var mapNodeToSortedNode = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedChangedRows = touchedRows\n .map(mapNodeToSortedNode)\n .sort(function (a, b) { return _this.rowNodeSorter.compareRowNodes(sortOptions, a, b); });\n return this.mergeSortedArrays(sortOptions, sortedChangedRows, sortedUntouchedRows.map(mapNodeToSortedNode)).map(function (_a) {\n var rowNode = _a.rowNode;\n return rowNode;\n });\n };\n // Merge two sorted arrays into each other\n SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {\n var res = [];\n var i = 0;\n var j = 0;\n // Traverse both array, adding them in order\n while (i < arr1.length && j < arr2.length) {\n // Check if current element of first\n // array is smaller than current element\n // of second array. If yes, store first\n // array element and increment first array\n // index. Otherwise do same with second array\n var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);\n if (compareResult < 0) {\n res.push(arr1[i++]);\n }\n else {\n res.push(arr2[j++]);\n }\n }\n // add remaining from arr1\n while (i < arr1.length) {\n res.push(arr1[i++]);\n }\n // add remaining from arr2\n while (j < arr2.length) {\n res.push(arr2[j++]);\n }\n return res;\n };\n SortService.prototype.updateChildIndexes = function (rowNode) {\n if (_.missing(rowNode.childrenAfterSort)) {\n return;\n }\n var listToSort = rowNode.childrenAfterSort;\n for (var i = 0; i < listToSort.length; i++) {\n var child = listToSort[i];\n var firstChild = i === 0;\n var lastChild = i === rowNode.childrenAfterSort.length - 1;\n child.setFirstChild(firstChild);\n child.setLastChild(lastChild);\n child.setChildIndex(i);\n }\n };\n SortService.prototype.updateGroupDataForHideOpenParents = function (changedPath) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var msg_1 = \"AG Grid: The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them (as opposed to Row Grouping, which only has Aggregated Values at the group level).\";\n _.doOnce(function () { return console.warn(msg_1); }, 'sortService.hideOpenParentsWithTreeData');\n return false;\n }\n // recurse breadth first over group nodes after sort to 'pull down' group data to child groups\n var callback = function (rowNode) {\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);\n rowNode.childrenAfterSort.forEach(function (child) {\n if (child.hasChildren()) {\n callback(child);\n }\n });\n };\n if (changedPath) {\n changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });\n }\n };\n SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents() || _.missing(rowNodes)) {\n return;\n }\n rowNodes.forEach(function (childRowNode) {\n var groupDisplayCols = _this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (groupDisplayCol) {\n var showRowGroup = groupDisplayCol.getColDef().showRowGroup;\n if (typeof showRowGroup !== 'string') {\n console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');\n return;\n }\n var displayingGroupKey = showRowGroup;\n var rowGroupColumn = _this.columnModel.getPrimaryColumn(displayingGroupKey);\n var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;\n if (thisRowNodeMatches) {\n return;\n }\n if (clearOperation) {\n // if doing a clear operation, we clear down the value for every possible group column\n childRowNode.setGroupValue(groupDisplayCol.getId(), undefined);\n }\n else {\n // if doing a set operation, we set only where the pull down is to occur\n var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);\n if (parentToStealFrom) {\n childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);\n }\n }\n });\n });\n };\n __decorate$7([\n Autowired('columnModel')\n ], SortService.prototype, \"columnModel\", void 0);\n __decorate$7([\n Autowired('rowNodeSorter')\n ], SortService.prototype, \"rowNodeSorter\", void 0);\n __decorate$7([\n PostConstruct\n ], SortService.prototype, \"init\", null);\n SortService = __decorate$7([\n Bean('sortService')\n ], SortService);\n return SortService;\n}(BeanStub));\n\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterService = /** @class */ (function (_super) {\n __extends$7(FilterService, _super);\n function FilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterService.prototype.filter = function (changedPath) {\n var filterActive = this.filterManager.isColumnFilterPresent()\n || this.filterManager.isQuickFilterPresent()\n || this.filterManager.isExternalFilterPresent();\n this.filterNodes(filterActive, changedPath);\n };\n FilterService.prototype.filterNodes = function (filterActive, changedPath) {\n var _this = this;\n var filterCallback = function (rowNode, includeChildNodes) {\n // recursively get all children that are groups to also filter\n if (rowNode.hasChildren()) {\n // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes\n if (filterActive && !includeChildNodes) {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {\n // a group is included in the result if it has any children of it's own.\n // by this stage, the child groups are already filtered\n var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;\n // both leaf level nodes and tree data nodes have data. these get added if\n // the data passes the filter\n var passBecauseDataPasses = childNode.data\n && _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass\n return passBecauseChildren || passBecauseDataPasses;\n });\n }\n else {\n // if not filtering, the result is the original list\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n }\n else {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterFilter = rowNode.childrenAfterFilter;\n }\n };\n if (this.doingTreeDataFiltering()) {\n var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {\n // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes\n // filter, and parent nodes will be include if any children exist.\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n // first check if current node passes filter before invoking child nodes\n var foundInParent = alreadyFoundInParent\n || _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n if (childNode.childrenAfterGroup) {\n treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);\n }\n else {\n filterCallback(childNode, foundInParent);\n }\n }\n }\n filterCallback(rowNode, alreadyFoundInParent);\n };\n var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };\n changedPath.executeFromRootNode(treeDataFilterCallback);\n }\n else {\n var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };\n changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);\n }\n };\n FilterService.prototype.doingTreeDataFiltering = function () {\n return this.gridOptionsWrapper.isTreeData() && !this.gridOptionsWrapper.isExcludeChildrenWhenTreeDataFiltering();\n };\n __decorate$6([\n Autowired('filterManager')\n ], FilterService.prototype, \"filterManager\", void 0);\n FilterService = __decorate$6([\n Bean(\"filterService\")\n ], FilterService);\n return FilterService;\n}(BeanStub));\n\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ImmutableService = /** @class */ (function (_super) {\n __extends$6(ImmutableService, _super);\n function ImmutableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ImmutableService.prototype.postConstruct = function () {\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n ImmutableService.prototype.isActive = function () {\n return this.gridOptionsWrapper.isImmutableData();\n };\n ImmutableService.prototype.setRowData = function (rowData) {\n var transactionAndMap = this.createTransactionForRowData(rowData);\n if (!transactionAndMap) {\n return;\n }\n var _a = __read(transactionAndMap, 2), transaction = _a[0], orderIdMap = _a[1];\n var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);\n // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened\n // to the data change event on the row node and refreshed itself.\n if (nodeTransaction) {\n this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);\n }\n };\n // converts the setRowData() command to a transaction\n ImmutableService.prototype.createTransactionForRowData = function (rowData) {\n if (_.missing(this.clientSideRowModel)) {\n console.error('AG Grid: ImmutableService only works with ClientSideRowModel');\n return;\n }\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n if (getRowIdFunc == null) {\n console.error('AG Grid: ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!');\n return;\n }\n // convert the data into a transaction object by working out adds, removes and updates\n var transaction = {\n remove: [],\n update: [],\n add: []\n };\n var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n var orderMap = suppressSortOrder ? undefined : {};\n if (_.exists(rowData)) {\n // split all the new data in the following:\n // if new, push to 'add'\n // if update, push to 'update'\n // if not changed, do not include in the transaction\n rowData.forEach(function (data, index) {\n var id = getRowIdFunc({ data: data, level: 0 });\n var existingNode = existingNodesMap[id];\n if (orderMap) {\n orderMap[id] = index;\n }\n if (existingNode) {\n var dataHasChanged = existingNode.data !== data;\n if (dataHasChanged) {\n transaction.update.push(data);\n }\n // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta\n // remove from list, so we know the item is not to be removed\n existingNodesMap[id] = undefined;\n }\n else {\n transaction.add.push(data);\n }\n });\n }\n // at this point, all rows that are left, should be removed\n _.iterateObject(existingNodesMap, function (id, rowNode) {\n if (rowNode) {\n transaction.remove.push(rowNode.data);\n }\n });\n return [transaction, orderMap];\n };\n __decorate$5([\n Autowired('rowModel')\n ], ImmutableService.prototype, \"rowModel\", void 0);\n __decorate$5([\n Autowired('rowRenderer')\n ], ImmutableService.prototype, \"rowRenderer\", void 0);\n __decorate$5([\n Autowired('columnApi')\n ], ImmutableService.prototype, \"columnApi\", void 0);\n __decorate$5([\n Autowired('gridApi')\n ], ImmutableService.prototype, \"gridApi\", void 0);\n __decorate$5([\n Autowired('filterManager')\n ], ImmutableService.prototype, \"filterManager\", void 0);\n __decorate$5([\n PostConstruct\n ], ImmutableService.prototype, \"postConstruct\", null);\n ImmutableService = __decorate$5([\n Bean('immutableService')\n ], ImmutableService);\n return ImmutableService;\n}(BeanStub));\n\nvar ClientSideRowModelModule = {\n moduleName: ModuleNames.ClientSideRowModelModule,\n beans: [FilterStage, SortStage, FlattenStage, SortService, FilterService, ImmutableService],\n rowModels: { clientSide: ClientSideRowModel }\n};\n\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteBlock = /** @class */ (function (_super) {\n __extends$5(InfiniteBlock, _super);\n function InfiniteBlock(id, parentCache, params) {\n var _this = _super.call(this, id) || this;\n _this.parentCache = parentCache;\n _this.params = params;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = id * params.blockSize;\n _this.endRow = _this.startRow + params.blockSize;\n return _this;\n }\n InfiniteBlock.prototype.postConstruct = function () {\n this.createRowNodes();\n };\n InfiniteBlock.prototype.getBlockStateJson = function () {\n return {\n id: '' + this.getId(),\n state: {\n blockNumber: this.getId(),\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n pageStatus: this.getState()\n }\n };\n };\n InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {\n // if there's no id and the rowNode was rendered before, it means this\n // was a placeholder rowNode and should not be recycled. Setting\n // `alreadyRendered` to `false` forces the rowRenderer to flush it.\n if (!rowNode.id && rowNode.alreadyRendered) {\n rowNode.alreadyRendered = false;\n }\n if (_.exists(data)) {\n // this means if the user is not providing id's we just use the\n // index for the row. this will allow selection to work (that is based\n // on index) as long user is not inserting or deleting rows,\n // or wanting to keep selection between server side sorting or filtering\n rowNode.setDataAndId(data, index.toString());\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n }\n };\n InfiniteBlock.prototype.loadFromDatasource = function () {\n var _this = this;\n var params = this.createLoadParams();\n if (_.missing(this.params.datasource.getRows)) {\n console.warn(\"AG Grid: datasource is missing getRows method\");\n return;\n }\n // put in timeout, to force result to be async\n window.setTimeout(function () {\n _this.params.datasource.getRows(params);\n }, 0);\n };\n InfiniteBlock.prototype.processServerFail = function () {\n // todo - this method has better handling in SSRM\n };\n InfiniteBlock.prototype.createLoadParams = function () {\n // PROBLEM . . . . when the user sets sort via colDef.sort, then this code\n // is executing before the sort is set up, so server is not getting the sort\n // model. need to change with regards order - so the server side request is\n // AFTER thus it gets the right sort model.\n var params = {\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n sortModel: this.params.sortModel,\n filterModel: this.params.filterModel,\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var rowIndex = _this.startRow + index;\n if (rowIndex < rowCount) {\n callback(rowNode, sequence.next());\n }\n });\n };\n InfiniteBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {\n if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }\n if (!dontTouchLastAccessed) {\n this.lastAccessed = this.params.lastAccessedSequence.next();\n }\n var localIndex = rowIndex - this.startRow;\n return this.rowNodes[localIndex];\n };\n InfiniteBlock.prototype.getStartRow = function () {\n return this.startRow;\n };\n InfiniteBlock.prototype.getEndRow = function () {\n return this.endRow;\n };\n // creates empty row nodes, data is missing as not loaded yet\n InfiniteBlock.prototype.createRowNodes = function () {\n this.rowNodes = [];\n for (var i = 0; i < this.params.blockSize; i++) {\n var rowIndex = this.startRow + i;\n var rowNode = new RowNode(this.beans);\n rowNode.setRowHeight(this.params.rowHeight);\n rowNode.uiLevel = 0;\n rowNode.setRowIndex(rowIndex);\n rowNode.setRowTop(this.params.rowHeight * rowIndex);\n this.rowNodes.push(rowNode);\n }\n };\n InfiniteBlock.prototype.processServerResult = function (params) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var data = params.rowData ? params.rowData[index] : undefined;\n _this.setDataAndId(rowNode, data, _this.startRow + index);\n });\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n this.parentCache.pageLoaded(this, finalRowCount);\n };\n InfiniteBlock.prototype.destroyRowNodes = function () {\n this.rowNodes.forEach(function (rowNode) {\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown.\n rowNode.clearRowTopAndRowIndex();\n });\n };\n __decorate$4([\n Autowired('beans')\n ], InfiniteBlock.prototype, \"beans\", void 0);\n __decorate$4([\n PostConstruct\n ], InfiniteBlock.prototype, \"postConstruct\", null);\n __decorate$4([\n PreDestroy\n ], InfiniteBlock.prototype, \"destroyRowNodes\", null);\n return InfiniteBlock;\n}(RowNodeBlock));\n\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InfiniteCache = /** @class */ (function (_super) {\n __extends$4(InfiniteCache, _super);\n function InfiniteCache(params) {\n var _this = _super.call(this) || this;\n _this.lastRowIndexKnown = false;\n _this.blocks = {};\n _this.blockCount = 0;\n _this.rowCount = params.initialRowCount;\n _this.params = params;\n return _this;\n }\n InfiniteCache.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('InfiniteCache');\n };\n // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,\n // it will want new pages in the cache as it asks for rows. only when we are inserting /\n // removing rows via the api is dontCreatePage set, where we move rows between the pages.\n InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {\n if (dontCreatePage === void 0) { dontCreatePage = false; }\n var blockId = Math.floor(rowIndex / this.params.blockSize);\n var block = this.blocks[blockId];\n if (!block) {\n if (dontCreatePage) {\n return undefined;\n }\n block = this.createBlock(blockId);\n }\n return block.getRow(rowIndex);\n };\n InfiniteCache.prototype.createBlock = function (blockNumber) {\n var newBlock = this.createBean(new InfiniteBlock(blockNumber, this, this.params));\n this.blocks[newBlock.getId()] = newBlock;\n this.blockCount++;\n this.purgeBlocksIfNeeded(newBlock);\n this.params.rowNodeBlockLoader.addBlock(newBlock);\n return newBlock;\n };\n // we have this on infinite row model only, not server side row model,\n // because for server side, it would leave the children in inconsistent\n // state - eg if a node had children, but after the refresh it had data\n // for a different row, then the children would be with the wrong row node.\n InfiniteCache.prototype.refreshCache = function () {\n var nothingToRefresh = this.blockCount == 0;\n if (nothingToRefresh) {\n this.purgeCache();\n return;\n }\n this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });\n this.params.rowNodeBlockLoader.checkBlockToLoad();\n };\n InfiniteCache.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n };\n InfiniteCache.prototype.getRowCount = function () {\n return this.rowCount;\n };\n InfiniteCache.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n // block calls this, when page loaded\n InfiniteCache.prototype.pageLoaded = function (block, lastRow) {\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + lastRow);\n this.checkRowCount(block, lastRow);\n // we fire cacheUpdated even if the row count has not changed, as some items need updating even\n // if no new rows to render. for example the pagination panel has '?' as the total rows when loading\n // is underway, which would need to get updated when loading finishes.\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.params.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === InfiniteBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, so burn baby burn\n _this.removeBlockFromCache(block);\n }\n });\n };\n InfiniteCache.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getStartRow();\n var blockIndexEnd = block.getEndRow();\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getStartRow();\n var endIndex = block.getEndRow() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {\n if (!blockToRemove) {\n return;\n }\n this.destroyBlock(blockToRemove);\n // we do not want to remove the 'loaded' event listener, as the\n // concurrent loads count needs to be updated when the load is complete\n // if the purged page is in loading state\n };\n InfiniteCache.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.params.blockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n this.rowCount = rowCount;\n // if undefined is passed, we do not set this value, if one of {true,false}\n // is passed, we do set the value.\n if (_.exists(lastRowIndexKnown)) {\n this.lastRowIndexKnown = lastRowIndexKnown;\n }\n // if we are still searching, then the row count must not end at the end\n // of a particular page, otherwise the searching will not pop into the\n // next page\n if (!this.lastRowIndexKnown) {\n if (this.rowCount % this.params.blockSize === 0) {\n this.rowCount++;\n }\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.forEachNodeDeep = function (callback) {\n var _this = this;\n var sequence = new NumberSequence();\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });\n };\n InfiniteCache.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = _.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n InfiniteCache.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.blockCount--;\n this.params.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n InfiniteCache.prototype.onCacheUpdated = function () {\n if (this.isAlive()) {\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if user explicitly sets\n // the virtual row count, or the datasource returns a result and sets lastRow to something\n // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n // this results in both row models (infinite and server side) firing ModelUpdated,\n // however server side row model also updates the row indexes first\n var event_1 = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.params.blockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n InfiniteCache.prototype.purgeCache = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.rowCount === 0) {\n this.rowCount = this.params.initialRowCount;\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var _this = this;\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n var numberSequence = new NumberSequence();\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNode(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n }, numberSequence, _this.rowCount);\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n __decorate$3([\n Autowired('rowRenderer')\n ], InfiniteCache.prototype, \"rowRenderer\", void 0);\n __decorate$3([\n Autowired(\"focusService\")\n ], InfiniteCache.prototype, \"focusService\", void 0);\n __decorate$3([\n __param(0, Qualifier('loggerFactory'))\n ], InfiniteCache.prototype, \"setBeans\", null);\n __decorate$3([\n PreDestroy\n ], InfiniteCache.prototype, \"destroyAllBlocks\", null);\n return InfiniteCache;\n}(BeanStub));\n\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteRowModel = /** @class */ (function (_super) {\n __extends$3(InfiniteRowModel, _super);\n function InfiniteRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InfiniteRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n // we don't implement as lazy row heights is not supported in this row model\n InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n return false;\n };\n InfiniteRowModel.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isRowModelInfinite()) {\n return;\n }\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.addEventListeners();\n this.addDestroyFunc(function () { return _this.destroyCache(); });\n this.verifyProps();\n };\n InfiniteRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsWrapper.getInitialGroupOrderComparator() != null) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'IRM.InitialGroupOrderComparator');\n }\n };\n InfiniteRowModel.prototype.start = function () {\n this.setDatasource(this.gridOptionsWrapper.getDatasource());\n };\n InfiniteRowModel.prototype.destroyDatasource = function () {\n if (this.datasource) {\n this.getContext().destroyBean(this.datasource);\n this.rowRenderer.datasourceChanged();\n this.datasource = null;\n }\n };\n InfiniteRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));\n };\n InfiniteRowModel.prototype.onFilterChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onSortChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onColumnEverything = function () {\n var resetRequired;\n // if cache params, we require reset only if sort model has changed. we don't need to check\n // for filter model, as the filter manager will fire an event when columns change that result\n // in the filter changing.\n if (this.cacheParams) {\n resetRequired = this.isSortModelDifferent();\n }\n else {\n // if no cacheParams, means first time creating the cache, so always create one\n resetRequired = true;\n }\n if (resetRequired) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isSortModelDifferent = function () {\n return !_.jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());\n };\n InfiniteRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_INFINITE;\n };\n InfiniteRowModel.prototype.setDatasource = function (datasource) {\n this.destroyDatasource();\n this.datasource = datasource;\n // only reset if we have a valid datasource to working with\n if (datasource) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isEmpty = function () {\n return !this.infiniteCache;\n };\n InfiniteRowModel.prototype.isRowsToRender = function () {\n return !!this.infiniteCache;\n };\n InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];\n };\n InfiniteRowModel.prototype.reset = function () {\n // important to return here, as the user could be setting filter or sort before\n // data-source is set\n if (!this.datasource) {\n return;\n }\n // if user is providing id's, then this means we can keep the selection between datasource hits,\n // as the rows will keep their unique id's even if, for example, server side sorting or filtering\n // is done.\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var userGeneratingIds = getRowIdFunc != null;\n if (!userGeneratingIds) {\n this.selectionService.reset();\n }\n this.resetCache();\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.createModelUpdatedEvent = function () {\n return {\n type: Events.EVENT_MODEL_UPDATED,\n // not sure if these should all be false - noticed if after implementing,\n // maybe they should be true?\n newPage: false,\n newData: false,\n keepRenderedRows: true,\n animate: false\n };\n };\n InfiniteRowModel.prototype.resetCache = function () {\n // if not first time creating a cache, need to destroy the old one\n this.destroyCache();\n this.cacheParams = {\n // the user provided datasource\n datasource: this.datasource,\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortController.getSortModel(),\n rowNodeBlockLoader: this.rowNodeBlockLoader,\n // properties - this way we take a snapshot of them, so if user changes any, they will be\n // used next time we create a new cache, which is generally after a filter or sort change,\n // or a new datasource is set\n initialRowCount: this.defaultIfInvalid(this.gridOptionsWrapper.getInfiniteInitialRowCount(), 1),\n maxBlocksInCache: this.gridOptionsWrapper.getMaxBlocksInCache(),\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past\n // the current page and request first row of next page\n overflowSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheOverflowSize(), 1),\n // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the\n // server for one page at a time. so the default if not specified is 100.\n blockSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheBlockSize(), 100),\n // the cache could create this, however it is also used by the pages, so handy to create it\n // here as the settings are also passed to the pages\n lastAccessedSequence: new NumberSequence()\n };\n this.infiniteCache = this.createBean(new InfiniteCache(this.cacheParams));\n };\n InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {\n return value > 0 ? value : defaultValue;\n };\n InfiniteRowModel.prototype.destroyCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache = this.destroyBean(this.infiniteCache);\n }\n };\n InfiniteRowModel.prototype.onCacheUpdated = function () {\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.getRow = function (rowIndex) {\n if (!this.infiniteCache) {\n return undefined;\n }\n if (rowIndex >= this.infiniteCache.getRowCount()) {\n return undefined;\n }\n return this.infiniteCache.getRow(rowIndex);\n };\n InfiniteRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n InfiniteRowModel.prototype.forEachNode = function (callback) {\n if (this.infiniteCache) {\n this.infiniteCache.forEachNodeDeep(callback);\n }\n };\n InfiniteRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n var rowIndexForPixel = Math.floor(pixel / this.rowHeight);\n var lastRowIndex = this.getRowCount() - 1;\n if (rowIndexForPixel > lastRowIndex) {\n return lastRowIndex;\n }\n return rowIndexForPixel;\n }\n return 0;\n };\n InfiniteRowModel.prototype.getRowCount = function () {\n return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;\n };\n InfiniteRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n InfiniteRowModel.prototype.refreshCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.refreshCache();\n }\n };\n InfiniteRowModel.prototype.purgeCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.purgeCache();\n }\n };\n // for iRowModel\n InfiniteRowModel.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteCache) {\n return this.infiniteCache.isLastRowIndexKnown();\n }\n return false;\n };\n InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n if (this.infiniteCache) {\n this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);\n }\n };\n __decorate$2([\n Autowired('filterManager')\n ], InfiniteRowModel.prototype, \"filterManager\", void 0);\n __decorate$2([\n Autowired('sortController')\n ], InfiniteRowModel.prototype, \"sortController\", void 0);\n __decorate$2([\n Autowired('selectionService')\n ], InfiniteRowModel.prototype, \"selectionService\", void 0);\n __decorate$2([\n Autowired('rowRenderer')\n ], InfiniteRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$2([\n Autowired('rowNodeBlockLoader')\n ], InfiniteRowModel.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$2([\n PostConstruct\n ], InfiniteRowModel.prototype, \"init\", null);\n __decorate$2([\n PreDestroy\n ], InfiniteRowModel.prototype, \"destroyDatasource\", null);\n InfiniteRowModel = __decorate$2([\n Bean('rowModel')\n ], InfiniteRowModel);\n return InfiniteRowModel;\n}(BeanStub));\n\nvar InfiniteRowModelModule = {\n moduleName: ModuleNames.InfiniteRowModelModule,\n rowModels: { infinite: InfiniteRowModel }\n};\n\nvar BaseCreator = /** @class */ (function () {\n function BaseCreator() {\n }\n BaseCreator.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseCreator.prototype.getFileName = function (fileName) {\n var extension = this.getDefaultFileExtension();\n if (fileName == null || !fileName.length) {\n fileName = this.getDefaultFileName();\n }\n return fileName.indexOf('.') === -1 ? fileName + \".\" + extension : fileName;\n };\n BaseCreator.prototype.getData = function (params) {\n var serializingSession = this.createSerializingSession(params);\n var data = this.beans.gridSerializer.serialize(serializingSession, params);\n return data;\n };\n return BaseCreator;\n}());\n\nvar BaseGridSerializingSession = /** @class */ (function () {\n function BaseGridSerializingSession(config) {\n this.groupColumns = [];\n var columnModel = config.columnModel, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.processCellCallback = processCellCallback;\n this.processHeaderCallback = processHeaderCallback;\n this.processGroupHeaderCallback = processGroupHeaderCallback;\n this.processRowGroupCallback = processRowGroupCallback;\n }\n BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {\n this.groupColumns = columnsToExport.filter(function (col) { return !!col.getColDef().showRowGroup; });\n };\n BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {\n var value = this.getHeaderName(this.processHeaderCallback, column);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {\n // we render the group summary text e.g. \"-> Parent -> Child\"...\n var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();\n var value = (!hideOpenParents && this.shouldRenderGroupSummaryCell(node, column, index))\n ? this.createValueForGroupNode(node)\n : this.valueService.getValue(column, node);\n var processedValue = this.processCell({\n accumulatedRowIndex: accumulatedRowIndex,\n rowNode: node,\n column: column,\n value: value,\n processCellCallback: this.processCellCallback,\n type: type\n });\n return processedValue != null ? processedValue : '';\n };\n BaseGridSerializingSession.prototype.shouldRenderGroupSummaryCell = function (node, column, currentColumnIndex) {\n var _a;\n var isGroupNode = node && node.group;\n // only on group rows\n if (!isGroupNode) {\n return false;\n }\n var currentColumnGroupIndex = this.groupColumns.indexOf(column);\n if (currentColumnGroupIndex !== -1 && ((_a = node.groupData) === null || _a === void 0 ? void 0 : _a[column.getId()])) {\n return true;\n }\n var isGroupUseEntireRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.columnModel.isPivotMode());\n return currentColumnIndex === 0 && isGroupUseEntireRow;\n };\n BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {\n if (callback) {\n return callback({\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n });\n }\n return this.columnModel.getDisplayNameForColumn(column, 'csv', true);\n };\n BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {\n if (this.processRowGroupCallback) {\n return this.processRowGroupCallback({\n node: node,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n });\n }\n var keys = [node.key];\n if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n return keys.reverse().join(' -> ');\n };\n BaseGridSerializingSession.prototype.processCell = function (params) {\n var accumulatedRowIndex = params.accumulatedRowIndex, rowNode = params.rowNode, column = params.column, value = params.value, processCellCallback = params.processCellCallback, type = params.type;\n if (processCellCallback) {\n return processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n type: type\n });\n }\n return value != null ? value : '';\n };\n return BaseGridSerializingSession;\n}());\n\nvar Downloader = /** @class */ (function () {\n function Downloader() {\n }\n Downloader.download = function (fileName, content) {\n var win = document.defaultView || window;\n if (!win) {\n console.warn('AG Grid: There is no `window` associated with the current `document`');\n return;\n }\n var element = document.createElement('a');\n // @ts-ignore\n var url = win.URL.createObjectURL(content);\n element.setAttribute('href', url);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.dispatchEvent(new MouseEvent('click', {\n bubbles: false,\n cancelable: true,\n view: win\n }));\n document.body.removeChild(element);\n win.setTimeout(function () {\n // @ts-ignore\n win.URL.revokeObjectURL(url);\n }, 0);\n };\n return Downloader;\n}());\n\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LINE_SEPARATOR$1 = '\\r\\n';\nvar CsvSerializingSession = /** @class */ (function (_super) {\n __extends$2(CsvSerializingSession, _super);\n function CsvSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.isFirstLine = true;\n _this.result = '';\n var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;\n _this.suppressQuotes = suppressQuotes;\n _this.columnSeparator = columnSeparator;\n return _this;\n }\n CsvSerializingSession.prototype.addCustomContent = function (content) {\n var _this = this;\n if (!content) {\n return;\n }\n if (typeof content === 'string') {\n if (!/^\\s*\\n/.test(content)) {\n this.beginNewLine();\n }\n // replace whatever newlines are supplied with the style we're using\n content = content.replace(/\\r?\\n/g, LINE_SEPARATOR$1);\n this.result += content;\n }\n else {\n content.forEach(function (row) {\n _this.beginNewLine();\n row.forEach(function (cell, index) {\n if (index !== 0) {\n _this.result += _this.columnSeparator;\n }\n _this.result += _this.putInQuotes(cell.data.value || '');\n if (cell.mergeAcross) {\n _this.appendEmptyCells(cell.mergeAcross);\n }\n });\n });\n }\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderGroupingRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (columnGroup, header, index, span) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(header);\n this.appendEmptyCells(span);\n };\n CsvSerializingSession.prototype.appendEmptyCells = function (count) {\n for (var i = 1; i <= count; i++) {\n this.result += this.columnSeparator + this.putInQuotes(\"\");\n }\n };\n CsvSerializingSession.prototype.onNewHeaderRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractHeaderValue(column));\n };\n CsvSerializingSession.prototype.onNewBodyRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewBodyRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, Constants.EXPORT_TYPE_CSV, node));\n };\n CsvSerializingSession.prototype.putInQuotes = function (value) {\n if (this.suppressQuotes) {\n return value;\n }\n if (value === null || value === undefined) {\n return '\"\"';\n }\n var stringValue;\n if (typeof value === 'string') {\n stringValue = value;\n }\n else if (typeof value.toString === 'function') {\n stringValue = value.toString();\n }\n else {\n console.warn('AG Grid: unknown value type during csv conversion');\n stringValue = '';\n }\n // replace each \" with \"\" (ie two sets of double quotes is how to do double quotes in csv)\n var valueEscaped = stringValue.replace(/\"/g, \"\\\"\\\"\");\n return '\"' + valueEscaped + '\"';\n };\n CsvSerializingSession.prototype.parse = function () {\n return this.result;\n };\n CsvSerializingSession.prototype.beginNewLine = function () {\n if (!this.isFirstLine) {\n this.result += LINE_SEPARATOR$1;\n }\n this.isFirstLine = false;\n };\n return CsvSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CsvCreator = /** @class */ (function (_super) {\n __extends$1(CsvCreator, _super);\n function CsvCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CsvCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n CsvCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('csv');\n return Object.assign({}, baseParams, params);\n };\n CsvCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var packagedFile = new Blob([\"\\ufeff\", data], { type: 'text/plain' });\n Downloader.download(this.getFileName(mergedParams.fileName), packagedFile);\n return data;\n };\n CsvCreator.prototype.exportDataAsCsv = function (params) {\n return this.export(params);\n };\n CsvCreator.prototype.getDataAsCsv = function (params, skipDefaultParams) {\n if (skipDefaultParams === void 0) { skipDefaultParams = false; }\n var mergedParams = skipDefaultParams\n ? Object.assign({}, params)\n : this.getMergedParams(params);\n return this.getData(mergedParams);\n };\n CsvCreator.prototype.getDefaultFileName = function () {\n return 'export.csv';\n };\n CsvCreator.prototype.getDefaultFileExtension = function () {\n return 'csv';\n };\n CsvCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;\n return new CsvSerializingSession({\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper,\n processCellCallback: processCellCallback || undefined,\n processHeaderCallback: processHeaderCallback || undefined,\n processGroupHeaderCallback: processGroupHeaderCallback || undefined,\n processRowGroupCallback: processRowGroupCallback || undefined,\n suppressQuotes: suppressQuotes || false,\n columnSeparator: columnSeparator || ','\n });\n };\n CsvCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressCsvExport();\n };\n __decorate$1([\n Autowired('columnModel')\n ], CsvCreator.prototype, \"columnModel\", void 0);\n __decorate$1([\n Autowired('valueService')\n ], CsvCreator.prototype, \"valueService\", void 0);\n __decorate$1([\n Autowired('gridSerializer')\n ], CsvCreator.prototype, \"gridSerializer\", void 0);\n __decorate$1([\n Autowired('gridOptionsWrapper')\n ], CsvCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1([\n PostConstruct\n ], CsvCreator.prototype, \"postConstruct\", null);\n CsvCreator = __decorate$1([\n Bean('csvCreator')\n ], CsvCreator);\n return CsvCreator;\n}(BaseCreator));\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowType;\n(function (RowType) {\n RowType[RowType[\"HEADER_GROUPING\"] = 0] = \"HEADER_GROUPING\";\n RowType[RowType[\"HEADER\"] = 1] = \"HEADER\";\n RowType[RowType[\"BODY\"] = 2] = \"BODY\";\n})(RowType || (RowType = {}));\nvar GridSerializer = /** @class */ (function (_super) {\n __extends(GridSerializer, _super);\n function GridSerializer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridSerializer.prototype.serialize = function (gridSerializingSession, params) {\n if (params === void 0) { params = {}; }\n var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);\n var serializeChain = _.compose(\n // first pass, put in the header names of the cols\n this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));\n return serializeChain(gridSerializingSession).parse();\n };\n GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {\n var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var context = gridOptionsWrapper.getContext();\n var api = gridOptionsWrapper.getApi();\n var columnApi = gridOptionsWrapper.getColumnApi();\n var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();\n var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n // if onlySelected, we ignore groupHideOpenParents as the user has explicitly selected the rows they wish to export.\n // similarly, if specific rowNodes are provided we do the same. (the clipboard service uses rowNodes to define which rows to export)\n var isClipboardExport = params.rowPositions != null;\n var isExplicitExportSelection = isClipboardExport || !!params.onlySelected;\n var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents() && !isExplicitExportSelection;\n var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;\n var skipRowGroups = params.skipGroups || params.skipRowGroups;\n var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;\n var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);\n if (skipRowGroups && params.skipGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');\n }\n if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||\n (params.onlySelected && !node.isSelected()) ||\n (params.skipPinnedTop && node.rowPinned === 'top') ||\n (params.skipPinnedBottom && node.rowPinned === 'bottom')) {\n return;\n }\n // if we are in pivotMode, then the grid will show the root node only\n // if it's not a leaf group\n var nodeIsRootNode = node.level === -1;\n if (nodeIsRootNode && !node.leafGroup && (!node.footer || !isClipboardExport)) {\n return;\n }\n var shouldRowBeSkipped = rowSkipper({ node: node, api: api, columnApi: columnApi, context: context });\n if (shouldRowBeSkipped) {\n return;\n }\n var rowAccumulator = gridSerializingSession.onNewBodyRow();\n columnsToExport.forEach(function (column, index) {\n rowAccumulator.onColumn(column, index, node);\n });\n if (params.getCustomContentBelowRow) {\n var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });\n if (content) {\n gridSerializingSession.addCustomContent(content);\n }\n }\n };\n GridSerializer.prototype.appendContent = function (params) {\n return function (gridSerializingSession) {\n var appendContent = params.customFooter || params.appendContent;\n if (appendContent) {\n if (params.customFooter) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');\n }\n gridSerializingSession.addCustomContent(appendContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prependContent = function (params) {\n return function (gridSerializingSession) {\n var prependContent = params.customHeader || params.prependContent;\n if (prependContent) {\n if (params.customHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');\n }\n gridSerializingSession.addCustomContent(prependContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prepareSession = function (columnsToExport) {\n return function (gridSerializingSession) {\n gridSerializingSession.prepare(columnsToExport);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n if (!params.skipColumnGroupHeaders) {\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnModel.getGridBalancedTree(), groupInstanceIdCreator, null);\n _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);\n }\n else if (params.columnGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {\n return function (gridSerializingSession) {\n if (!params.skipHeader && !params.skipColumnHeaders) {\n var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();\n columnsToExport.forEach(function (column, index) {\n gridRowIterator_1.onColumn(column, index, undefined);\n });\n }\n else if (params.skipHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (params.rowPositions) {\n params.rowPositions\n // only pinnedTop rows, other models are processed by `processRows` and `processPinnedBottomsRows`\n .filter(function (position) { return position.rowPinned === 'top'; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return _this.pinnedRowModel.getPinnedTopRow(position.rowIndex); })\n .forEach(processRow);\n }\n else {\n _this.pinnedRowModel.forEachPinnedTopRow(processRow);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n // when in pivot mode, we always render cols on screen, never 'all columns'\n var rowModel = _this.rowModel;\n var rowModelType = rowModel.getType();\n var usingCsrm = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingSsrm = rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n var _a = params.exportedRows, exportedRows = _a === void 0 ? 'filteredAndSorted' : _a;\n if (params.rowPositions) {\n params.rowPositions\n // pinnedRows are processed by `processPinnedTopRows` and `processPinnedBottomsRows`\n .filter(function (position) { return position.rowPinned == null; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return rowModel.getRow(position.rowIndex); })\n .forEach(processRow);\n }\n else if (_this.columnModel.isPivotMode()) {\n if (usingCsrm) {\n rowModel.forEachPivotNode(processRow);\n }\n else {\n // must be enterprise, so we can just loop through all the nodes\n rowModel.forEachNode(processRow);\n }\n }\n else {\n // onlySelectedAllPages: user doing pagination and wants selected items from\n // other pages, so cannot use the standard row model as it won't have rows from\n // other pages.\n // onlySelectedNonStandardModel: if user wants selected in non standard row model\n // (eg viewport) then again RowModel cannot be used, so need to use selected instead.\n if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {\n var selectedNodes = _this.selectionService.getSelectedNodes();\n selectedNodes.forEach(processRow);\n }\n else {\n // here is everything else - including standard row model and selected. we don't use\n // the selection model even when just using selected, so that the result is the order\n // of the rows appearing on the screen.\n if (exportedRows === 'all') {\n rowModel.forEachNode(processRow);\n }\n else if (usingCsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (params.rowPositions) {\n params.rowPositions\n // only pinnedBottom rows, other models are processed by `processRows` and `processPinnedTopRows`\n .filter(function (position) { return position.rowPinned === 'bottom'; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return _this.pinnedRowModel.getPinnedBottomRow(position.rowIndex); })\n .forEach(processRow);\n }\n else {\n _this.pinnedRowModel.forEachPinnedBottomRow(processRow);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {\n if (allColumns === void 0) { allColumns = false; }\n var isPivotMode = this.columnModel.isPivotMode();\n if (columnKeys && columnKeys.length) {\n return this.columnModel.getGridColumns(columnKeys);\n }\n if (allColumns && !isPivotMode) {\n // add auto group column for tree data\n var columns = this.gridOptionsWrapper.isTreeData()\n ? this.columnModel.getGridColumns([Constants.GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnModel.getAllPrimaryColumns() || []);\n }\n return this.columnModel.getAllDisplayedColumns();\n };\n GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {\n var directChildrenHeaderGroups = [];\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n if (!columnGroup.getChildren) {\n return;\n }\n columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });\n });\n if (displayedGroups.length > 0 && displayedGroups[0] instanceof ColumnGroup) {\n this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);\n }\n if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {\n this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);\n }\n };\n GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {\n var _this = this;\n var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();\n var columnIndex = 0;\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n var name;\n if (processGroupHeaderCallback) {\n name = processGroupHeaderCallback({\n columnGroup: columnGroup,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n });\n }\n else {\n name = _this.columnModel.getDisplayNameForColumnGroup(columnGroup, 'header');\n }\n var collapsibleGroupRanges = columnGroup.getLeafColumns().reduce(function (collapsibleGroups, currentColumn, currentIdx, arr) {\n var lastGroup = _.last(collapsibleGroups);\n var groupShow = currentColumn.getColumnGroupShow() === 'open';\n if (!groupShow) {\n if (lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx - 1;\n }\n }\n else if (!lastGroup || lastGroup[1] != null) {\n lastGroup = [currentIdx];\n collapsibleGroups.push(lastGroup);\n }\n if (currentIdx === arr.length - 1 && lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx;\n }\n return collapsibleGroups;\n }, []);\n gridRowIterator.onColumn(columnGroup, name || '', columnIndex++, columnGroup.getLeafColumns().length - 1, collapsibleGroupRanges);\n });\n };\n __decorate([\n Autowired('displayedGroupCreator')\n ], GridSerializer.prototype, \"displayedGroupCreator\", void 0);\n __decorate([\n Autowired('columnModel')\n ], GridSerializer.prototype, \"columnModel\", void 0);\n __decorate([\n Autowired('rowModel')\n ], GridSerializer.prototype, \"rowModel\", void 0);\n __decorate([\n Autowired('pinnedRowModel')\n ], GridSerializer.prototype, \"pinnedRowModel\", void 0);\n __decorate([\n Autowired('selectionService')\n ], GridSerializer.prototype, \"selectionService\", void 0);\n __decorate([\n Autowired('rowPositionUtils')\n ], GridSerializer.prototype, \"rowPositionUtils\", void 0);\n GridSerializer = __decorate([\n Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(BeanStub));\n\nvar CsvExportModule = {\n moduleName: ModuleNames.CsvExportModule,\n beans: [CsvCreator, GridSerializer]\n};\n\nvar LINE_SEPARATOR = '\\r\\n';\nvar XmlFactory = /** @class */ (function () {\n function XmlFactory() {\n }\n XmlFactory.createHeader = function (headerElement) {\n if (headerElement === void 0) { headerElement = {}; }\n var headerStart = '';\n var keys = ['version'];\n if (!headerElement.version) {\n headerElement.version = \"1.0\";\n }\n if (headerElement.encoding) {\n keys.push('encoding');\n }\n if (headerElement.standalone) {\n keys.push('standalone');\n }\n var att = keys.map(function (key) { return key + \"=\\\"\" + headerElement[key] + \"\\\"\"; }).join(' ');\n return headerStart + \"xml \" + att + \" \" + headerEnd;\n };\n XmlFactory.createXml = function (xmlElement, booleanTransformer) {\n var _this = this;\n var props = '';\n if (xmlElement.properties) {\n if (xmlElement.properties.prefixedAttributes) {\n xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {\n Object.keys(prefixedSet.map).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);\n });\n });\n }\n if (xmlElement.properties.rawMap) {\n Object.keys(xmlElement.properties.rawMap).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);\n });\n }\n }\n var result = '<' + xmlElement.name + props;\n if (!xmlElement.children && xmlElement.textNode == null) {\n return result + '/>' + LINE_SEPARATOR;\n }\n if (xmlElement.textNode != null) {\n return result + '>' + xmlElement.textNode + '' + LINE_SEPARATOR;\n }\n result += '>' + LINE_SEPARATOR;\n if (xmlElement.children) {\n xmlElement.children.forEach(function (it) {\n result += _this.createXml(it, booleanTransformer);\n });\n }\n return result + '' + LINE_SEPARATOR;\n };\n XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {\n if (!value && value !== '' && value !== 0) {\n return '';\n }\n var xmlValue = value;\n if ((typeof (value) === 'boolean')) {\n if (booleanTransformer) {\n xmlValue = booleanTransformer(value);\n }\n }\n return \" \" + key + \"=\\\"\" + xmlValue + \"\\\"\";\n };\n return XmlFactory;\n}());\n\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// table for crc calculation\n// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references\nvar crcTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n]);\nvar ZipContainer = /** @class */ (function () {\n function ZipContainer() {\n }\n ZipContainer.addFolders = function (paths) {\n paths.forEach(this.addFolder.bind(this));\n };\n ZipContainer.addFolder = function (path) {\n this.folders.push({\n path: path,\n created: new Date(),\n isBase64: false\n });\n };\n ZipContainer.addFile = function (path, content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n this.files.push({\n path: path,\n created: new Date(),\n content: content,\n isBase64: isBase64\n });\n };\n ZipContainer.getContent = function (mimeType) {\n if (mimeType === void 0) { mimeType = 'application/zip'; }\n var textOutput = this.buildFileStream();\n var uInt8Output = this.buildUint8Array(textOutput);\n this.clearStream();\n return new Blob([uInt8Output], { type: mimeType });\n };\n ZipContainer.clearStream = function () {\n this.folders = [];\n this.files = [];\n };\n ZipContainer.buildFileStream = function (fData) {\n var e_1, _a;\n if (fData === void 0) { fData = ''; }\n var totalFiles = this.folders.concat(this.files);\n var len = totalFiles.length;\n var foData = '';\n var lL = 0;\n var cL = 0;\n try {\n for (var totalFiles_1 = __values(totalFiles), totalFiles_1_1 = totalFiles_1.next(); !totalFiles_1_1.done; totalFiles_1_1 = totalFiles_1.next()) {\n var currentFile = totalFiles_1_1.value;\n var _b = this.getHeader(currentFile, lL), fileHeader = _b.fileHeader, folderHeader = _b.folderHeader, content = _b.content;\n lL += fileHeader.length + content.length;\n cL += folderHeader.length;\n fData += fileHeader + content;\n foData += folderHeader;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (totalFiles_1_1 && !totalFiles_1_1.done && (_a = totalFiles_1.return)) _a.call(totalFiles_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var foEnd = this.buildFolderEnd(len, cL, lL);\n return fData + foData + foEnd;\n };\n ZipContainer.getHeader = function (currentFile, offset) {\n var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;\n var utf8_encode = _.utf8_encode, decToHex = _.decToHex;\n var utfPath = utf8_encode(path);\n var isUTF8 = utfPath !== path;\n var time = this.convertTime(created);\n var dt = this.convertDate(created);\n var extraFields = '';\n if (isUTF8) {\n var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;\n extraFields = \"\\x75\\x70\" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;\n }\n var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;\n var header = '\\x0A\\x00' +\n (isUTF8 ? '\\x00\\x08' : '\\x00\\x00') +\n '\\x00\\x00' +\n decToHex(time, 2) + // last modified time\n decToHex(dt, 2) + // last modified date\n decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +\n decToHex(size, 4) + // compressed size\n decToHex(size, 4) + // uncompressed size\n decToHex(utfPath.length, 2) + // file name length\n decToHex(extraFields.length, 2); // extra field length\n var fileHeader = 'PK\\x03\\x04' + header + utfPath + extraFields;\n var folderHeader = 'PK\\x01\\x02' + // central header\n '\\x14\\x00' +\n header + // file header\n '\\x00\\x00' +\n '\\x00\\x00' +\n '\\x00\\x00' +\n (content ? '\\x00\\x00\\x00\\x00' : '\\x10\\x00\\x00\\x00') + // external file attributes\n decToHex(offset, 4) + // relative offset of local header\n utfPath + // file name\n extraFields; // extra field\n return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };\n };\n ZipContainer.getConvertedContent = function (content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n if (isBase64) {\n content = content.split(';base64,')[1];\n }\n content = isBase64 ? atob(content) : content;\n return {\n size: content.length,\n content: content\n };\n };\n ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {\n var decToHex = _.decToHex;\n return 'PK\\x05\\x06' + // central folder end\n '\\x00\\x00' +\n '\\x00\\x00' +\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(cLen, 4) + // size of the central folder\n decToHex(lLen, 4) + // central folder start offset\n '\\x00\\x00';\n };\n ZipContainer.buildUint8Array = function (content) {\n var uint8 = new Uint8Array(content.length);\n for (var i = 0; i < uint8.length; i++) {\n uint8[i] = content.charCodeAt(i);\n }\n return uint8;\n };\n ZipContainer.getFromCrc32Table = function (content) {\n if (!content.length) {\n return 0;\n }\n var size = content.length;\n var iterable = new Uint8Array(size);\n for (var i = 0; i < size; i++) {\n iterable[i] = content.charCodeAt(i);\n }\n var crc = 0 ^ (-1);\n var j = 0;\n var k = 0;\n var l = 0;\n for (var i = 0; i < size; i++) {\n j = iterable[i];\n k = (crc ^ j) & 0xFF;\n l = crcTable[k];\n crc = (crc >>> 8) ^ l;\n }\n return crc ^ (-1);\n };\n ZipContainer.convertTime = function (date) {\n var time = date.getHours();\n time <<= 6;\n time = time | date.getMinutes();\n time <<= 5;\n time = time | date.getSeconds() / 2;\n return time;\n };\n ZipContainer.convertDate = function (date) {\n var dt = date.getFullYear() - 1980;\n dt <<= 4;\n dt = dt | (date.getMonth() + 1);\n dt <<= 5;\n dt = dt | date.getDate();\n return dt;\n };\n ZipContainer.folders = [];\n ZipContainer.files = [];\n return ZipContainer;\n}());\n\nvar AllCommunityModules = [ClientSideRowModelModule, InfiniteRowModelModule, CsvExportModule];\n\nModuleRegistry.registerModules(AllCommunityModules);\n\nexport { AbstractHeaderCellCtrl, AgAbstractField, AgAngleSelect, AgCheckbox, AgColorPicker, AgDialog, AgGroupComponent, AgInputNumberField, AgInputRange, AgInputTextArea, AgInputTextField, AgMenuItemComponent, AgMenuList, AgMenuPanel, AgPanel, AgPromise, AgPromiseStatus, AgRadioButton, AgSelect, AgSlider, AgStackComponentsRegistry, AgToggleButton, AlignedGridsService, AllCommunityModules, AnimateShowChangeCellRenderer, AnimateSlideCellRenderer, AnimationFrameService, AutoScrollService, AutoWidthCalculator, Autowired, BarColumnLabelPlacement, BaseComponentWrapper, BaseCreator, BaseGridSerializingSession, Bean, BeanStub, Beans, BodyDropPivotTarget, BodyDropTarget, CHART_TOOLBAR_ALLOW_LIST, CHART_TOOL_PANEL_ALLOW_LIST, CHART_TOOL_PANEL_MENU_OPTIONS, CellComp, CellCtrl, CellNavigationService, CellPositionUtils, CellRangeType, ChangedPath, CheckboxSelectionComponent, ClientSideRowModelModule, ClientSideRowModelSteps, ColDefUtil, Color, Column, ColumnApi, ColumnFactory, ColumnGroup, ColumnKeyCreator, ColumnModel, ColumnUtils, Component, ComponentUtil, Constants, Context, CssClassApplier, CssClassManager, CsvCreator, CsvExportModule, CtrlsService, CustomTooltipFeature, DEFAULT_CHART_GROUPS, DateFilter, DisplayedGroupCreator, Downloader, DragAndDropService, DragService, DragSourceType, Environment, EventService, Events, ExcelFactoryMode, ExpressionService, FilterManager, FloatingFilterMapper, FocusService, Grid, GridApi, GridBodyComp, GridBodyCtrl, GridComp, GridCoreCreator, GridCtrl, GridHeaderComp, GridHeaderCtrl, GridOptionsWrapper, GridSerializer, GroupCellRenderer, GroupCellRendererCtrl, GroupInstanceIdCreator, HeaderCellCtrl, HeaderFilterCellComp, HeaderFilterCellCtrl, HeaderGroupCellCtrl, HeaderNavigationDirection, HeaderNavigationService, HeaderPositionUtils, HeaderRowComp, HeaderRowContainerComp, HeaderRowContainerCtrl, HeaderRowCtrl, HeaderRowType, HorizontalDirection, HorizontalResizeService, InfiniteRowModelModule, KeyCode, LargeTextCellEditor, LayoutCssClasses, Logger, LoggerFactory, ManagedFocusFeature, ModuleNames, ModuleRegistry, MouseEventService, MoveColumnFeature, NavigationService, NumberFilter, NumberSequence, Optional, PaginationProxy, PinnedRowModel, PopupComponent, PopupEditorWrapper, PopupSelectCellEditor, PopupService, PopupTextCellEditor, PositionableFeature, PostConstruct, PreConstruct, PreDestroy, PropertyKeys, ProvidedColumnGroup, ProvidedFilter, Qualifier, QuerySelector, RefSelector, ResizeObserverService, RowAnimationCssClasses, RowContainerComp, RowContainerCtrl, RowContainerName, RowContainerType, RowCtrl, RowHighlightPosition, RowNode, RowNodeBlock, RowNodeBlockLoader, RowNodeSorter, RowPositionUtils, RowRenderer, RowType, ScalarFilter, ScrollVisibleService, SelectCellEditor, SelectableService, SelectionHandleType, SelectionService, ServerSideTransactionResultStatus, SetLeftFeature, SimpleFilter, SortController, SortIndicatorComp, StandardMenuFactory, StylingService, TabGuardComp, TabGuardCtrl, TabbedLayout, TemplateService, TextCellEditor, TextFilter, TextFloatingFilter, Timer, TouchListener, UserComponentFactory, UserComponentRegistry, ValueCache, ValueFormatterService, ValueService, VanillaFrameworkOverrides, VerticalDirection, VirtualList, XmlFactory, ZipContainer, _, defaultGroupComparator, getRowContainerTypeForName, simpleHttpRequest, stringToArray };\n","/**\n * @ag-grid-enterprise/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v28.2.1\n * @link https://www.ag-grid.com/\n * @license Commercial\n */\nimport { _, Autowired, PreConstruct, Bean, BeanStub, PostConstruct, RefSelector, Component, ModuleNames, Constants, Events, ChangedPath, Optional, CsvExportModule, KeyCode, EventService, Column, ProvidedColumnGroup, AgMenuList, AgMenuItemComponent, AgCheckbox, CssClassApplier, DragSourceType, DragAndDropService, TouchListener, AutoScrollService, VirtualList, PreDestroy, NumberSequence, RowNode, ManagedFocusFeature, PositionableFeature, TabGuardComp, ModuleRegistry, ExcelFactoryMode, XmlFactory, RowType, BaseGridSerializingSession, Downloader, BaseCreator, ZipContainer, GridSerializer, CsvCreator, AgGroupComponent, CellRangeType, AgAbstractField, AgRadioButton, AgToggleButton, AgSelect, AgSlider, AgAngleSelect, DEFAULT_CHART_GROUPS, TabbedLayout, AgPromise, CHART_TOOLBAR_ALLOW_LIST, CHART_TOOL_PANEL_ALLOW_LIST, CHART_TOOL_PANEL_MENU_OPTIONS, AgPanel, Color as Color$2, AgDialog, SelectionHandleType, Grid, ProvidedFilter, PopupComponent, ServerSideTransactionResultStatus, RowNodeBlock, Qualifier, TextFilter, AllCommunityModules } from 'ag-grid-community';\nexport * from 'ag-grid-community';\n\nvar __extends$3t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$Y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LicenseManager = /** @class */ (function (_super) {\n __extends$3t(LicenseManager, _super);\n function LicenseManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.watermarkMessage = undefined;\n return _this;\n }\n LicenseManager_1 = LicenseManager;\n LicenseManager.prototype.validateLicense = function () {\n if (_.missingOrEmpty(LicenseManager_1.licenseKey)) {\n this.outputMissingLicenseKey();\n }\n else if (LicenseManager_1.licenseKey.length > 32) {\n var _a = LicenseManager_1.extractLicenseComponents(LicenseManager_1.licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n if (md5 === this.md5.md5(license)) {\n if (_.exists(version) && version) {\n this.validateLicenseKeyForVersion(version, !!isTrial, license);\n }\n else {\n this.validateLegacyKey(license);\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n };\n LicenseManager.extractExpiry = function (license) {\n var restrictionHashed = license.substring(license.lastIndexOf('_') + 1, license.length);\n return new Date(parseInt(LicenseManager_1.decode(restrictionHashed), 10));\n };\n LicenseManager.extractLicenseComponents = function (licenseKey) {\n // when users copy the license key from a PDF extra zero width characters are sometimes copied too\n // carriage returns and line feeds are problematic too\n // all of which causes license key validation to fail - strip these out\n var cleanedLicenseKey = licenseKey.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n cleanedLicenseKey = cleanedLicenseKey.replace(/\\r?\\n|\\r/g, '');\n var hashStart = cleanedLicenseKey.length - 32;\n var md5 = cleanedLicenseKey.substring(hashStart);\n var license = cleanedLicenseKey.substring(0, hashStart);\n var _a = __read$Y(LicenseManager_1.extractBracketedInformation(cleanedLicenseKey), 2), version = _a[0], isTrial = _a[1];\n return { md5: md5, license: license, version: version, isTrial: isTrial };\n };\n LicenseManager.prototype.getLicenseDetails = function (licenseKey) {\n var _a = LicenseManager_1.extractLicenseComponents(licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n var valid = (md5 === this.md5.md5(license));\n var expiry = null;\n if (valid) {\n expiry = LicenseManager_1.extractExpiry(license);\n valid = !isNaN(expiry.getTime());\n }\n return {\n licenseKey: licenseKey,\n valid: valid,\n expiry: valid ? LicenseManager_1.formatDate(expiry) : null,\n version: version ? version : 'legacy',\n isTrial: isTrial\n };\n };\n LicenseManager.prototype.isDisplayWatermark = function () {\n return !_.missingOrEmpty(this.watermarkMessage);\n };\n LicenseManager.prototype.getWatermarkMessage = function () {\n return this.watermarkMessage || '';\n };\n LicenseManager.formatDate = function (date) {\n var monthNames = [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ];\n var day = date.getDate();\n var monthIndex = date.getMonth();\n var year = date.getFullYear();\n return day + ' ' + monthNames[monthIndex] + ' ' + year;\n };\n LicenseManager.getGridReleaseDate = function () {\n return new Date(parseInt(LicenseManager_1.decode(LicenseManager_1.RELEASE_INFORMATION), 10));\n };\n LicenseManager.decode = function (input) {\n var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var t = '';\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n var e = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = keystr.indexOf(e.charAt(f++));\n o = keystr.indexOf(e.charAt(f++));\n u = keystr.indexOf(e.charAt(f++));\n a = keystr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u != 64) {\n t = t + String.fromCharCode(r);\n }\n if (a != 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = LicenseManager_1.utf8_decode(t);\n return t;\n };\n LicenseManager.utf8_decode = function (input) {\n input = input.replace(/rn/g, 'n');\n var t = '';\n for (var n = 0; n < input.length; n++) {\n var r = input.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n }\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n }\n else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n };\n LicenseManager.setLicenseKey = function (licenseKey) {\n LicenseManager_1.licenseKey = licenseKey;\n };\n LicenseManager.extractBracketedInformation = function (licenseKey) {\n var matches = licenseKey.split('[')\n .filter(function (v) {\n return v.indexOf(']') > -1;\n })\n .map(function (value) {\n return value.split(']')[0];\n });\n if (!matches || matches.length === 0) {\n return [null, null];\n }\n var isTrial = matches.filter(function (match) { return match === 'TRIAL'; }).length === 1;\n var version = matches.filter(function (match) { return match.indexOf(\"v\") === 0; }).map(function (match) { return match.replace(/^v/, \"\"); })[0];\n return [version, isTrial];\n };\n LicenseManager.prototype.validateLicenseKeyForVersion = function (version, isTrial, license) {\n if (version !== '2') {\n return;\n }\n if (isTrial) {\n this.validateForTrial(license);\n }\n else {\n this.validateLegacyKey(license);\n }\n };\n LicenseManager.prototype.validateLegacyKey = function (license) {\n var gridReleaseDate = LicenseManager_1.getGridReleaseDate();\n var expiry = LicenseManager_1.extractExpiry(license);\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (gridReleaseDate < expiry);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n var formattedReleaseDate = LicenseManager_1.formatDate(gridReleaseDate);\n this.outputIncompatibleVersion(formattedExpiryDate, formattedReleaseDate);\n }\n };\n LicenseManager.prototype.validateForTrial = function (license) {\n var expiry = LicenseManager_1.extractExpiry(license);\n var now = new Date();\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (expiry > now);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n this.outputExpiredTrialKey(formattedExpiryDate);\n }\n };\n LicenseManager.prototype.outputInvalidLicenseKey = function () {\n console.error('*****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License ********************************************');\n console.error('********************************************* Invalid License ***************************************************');\n console.error('* Your license for AG Grid Enterprise is not valid - please contact info@ag-grid.com to obtain a valid license. *');\n console.error('*****************************************************************************************************************');\n console.error('*****************************************************************************************************************');\n this.watermarkMessage = \"Invalid License\";\n };\n LicenseManager.prototype.outputExpiredTrialKey = function (formattedExpiryDate) {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('***************************************** Trial Period Expired. *******************************************');\n console.error(\"* Your license for AG Grid Enterprise expired on \" + formattedExpiryDate + \". *\");\n console.error('* Please email info@ag-grid.com to purchase a license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"Trial Period Expired\";\n };\n LicenseManager.prototype.outputMissingLicenseKey = function () {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('****************************************** License Key Not Found ***********************************************');\n console.error('* All AG Grid Enterprise features are unlocked. *');\n console.error('* This is an evaluation only version, it is not licensed for development projects intended for production. *');\n console.error('* If you want to hide the watermark, please email info@ag-grid.com for a trial license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"For Trial Use Only\";\n };\n LicenseManager.prototype.outputIncompatibleVersion = function (formattedExpiryDate, formattedReleaseDate) {\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n console.error('* AG Grid Enterprise License *');\n console.error('* License not compatible with installed version of AG Grid Enterprise. *');\n console.error('* *');\n console.error(\"* Your AG Grid License entitles you to all versions of AG Grid that we release within the time covered by your license *\");\n console.error(\"* - typically we provide one year licenses which entitles you to all releases / updates of AG Grid within that year. *\");\n console.error(\"* Your license has an end (expiry) date which stops the license key working with versions of AG Grid released after the *\");\n console.error(\"* license end date. The license key that you have expires on \" + formattedExpiryDate + \", however the version of AG Grid you *\");\n console.error(\"* are trying to use was released on \" + formattedReleaseDate + \". *\");\n console.error('* *');\n console.error('* Please contact info@ag-grid.com to renew your subscription to new versions and get a new license key to work with this *');\n console.error('* version of AG Grid. *');\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n this.watermarkMessage = \"License Expired\";\n };\n var LicenseManager_1;\n LicenseManager.RELEASE_INFORMATION = 'MTY2NzI0NjAxNTYyNw==';\n __decorate$2l([\n Autowired('md5')\n ], LicenseManager.prototype, \"md5\", void 0);\n __decorate$2l([\n PreConstruct\n ], LicenseManager.prototype, \"validateLicense\", null);\n LicenseManager = LicenseManager_1 = __decorate$2l([\n Bean('licenseManager')\n ], LicenseManager);\n return LicenseManager;\n}(BeanStub));\n\nvar __extends$3s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MD5 = /** @class */ (function (_super) {\n __extends$3s(MD5, _super);\n function MD5() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ieCompatibility = false;\n return _this;\n }\n MD5.prototype.init = function () {\n this.ieCompatibility = (this.md5('hello') != '5d41402abc4b2a76b9719d911017c592');\n };\n MD5.prototype.md5cycle = function (x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a = this.ff(a, b, c, d, k[0], 7, -680876936);\n d = this.ff(d, a, b, c, k[1], 12, -389564586);\n c = this.ff(c, d, a, b, k[2], 17, 606105819);\n b = this.ff(b, c, d, a, k[3], 22, -1044525330);\n a = this.ff(a, b, c, d, k[4], 7, -176418897);\n d = this.ff(d, a, b, c, k[5], 12, 1200080426);\n c = this.ff(c, d, a, b, k[6], 17, -1473231341);\n b = this.ff(b, c, d, a, k[7], 22, -45705983);\n a = this.ff(a, b, c, d, k[8], 7, 1770035416);\n d = this.ff(d, a, b, c, k[9], 12, -1958414417);\n c = this.ff(c, d, a, b, k[10], 17, -42063);\n b = this.ff(b, c, d, a, k[11], 22, -1990404162);\n a = this.ff(a, b, c, d, k[12], 7, 1804603682);\n d = this.ff(d, a, b, c, k[13], 12, -40341101);\n c = this.ff(c, d, a, b, k[14], 17, -1502002290);\n b = this.ff(b, c, d, a, k[15], 22, 1236535329);\n a = this.gg(a, b, c, d, k[1], 5, -165796510);\n d = this.gg(d, a, b, c, k[6], 9, -1069501632);\n c = this.gg(c, d, a, b, k[11], 14, 643717713);\n b = this.gg(b, c, d, a, k[0], 20, -373897302);\n a = this.gg(a, b, c, d, k[5], 5, -701558691);\n d = this.gg(d, a, b, c, k[10], 9, 38016083);\n c = this.gg(c, d, a, b, k[15], 14, -660478335);\n b = this.gg(b, c, d, a, k[4], 20, -405537848);\n a = this.gg(a, b, c, d, k[9], 5, 568446438);\n d = this.gg(d, a, b, c, k[14], 9, -1019803690);\n c = this.gg(c, d, a, b, k[3], 14, -187363961);\n b = this.gg(b, c, d, a, k[8], 20, 1163531501);\n a = this.gg(a, b, c, d, k[13], 5, -1444681467);\n d = this.gg(d, a, b, c, k[2], 9, -51403784);\n c = this.gg(c, d, a, b, k[7], 14, 1735328473);\n b = this.gg(b, c, d, a, k[12], 20, -1926607734);\n a = this.hh(a, b, c, d, k[5], 4, -378558);\n d = this.hh(d, a, b, c, k[8], 11, -2022574463);\n c = this.hh(c, d, a, b, k[11], 16, 1839030562);\n b = this.hh(b, c, d, a, k[14], 23, -35309556);\n a = this.hh(a, b, c, d, k[1], 4, -1530992060);\n d = this.hh(d, a, b, c, k[4], 11, 1272893353);\n c = this.hh(c, d, a, b, k[7], 16, -155497632);\n b = this.hh(b, c, d, a, k[10], 23, -1094730640);\n a = this.hh(a, b, c, d, k[13], 4, 681279174);\n d = this.hh(d, a, b, c, k[0], 11, -358537222);\n c = this.hh(c, d, a, b, k[3], 16, -722521979);\n b = this.hh(b, c, d, a, k[6], 23, 76029189);\n a = this.hh(a, b, c, d, k[9], 4, -640364487);\n d = this.hh(d, a, b, c, k[12], 11, -421815835);\n c = this.hh(c, d, a, b, k[15], 16, 530742520);\n b = this.hh(b, c, d, a, k[2], 23, -995338651);\n a = this.ii(a, b, c, d, k[0], 6, -198630844);\n d = this.ii(d, a, b, c, k[7], 10, 1126891415);\n c = this.ii(c, d, a, b, k[14], 15, -1416354905);\n b = this.ii(b, c, d, a, k[5], 21, -57434055);\n a = this.ii(a, b, c, d, k[12], 6, 1700485571);\n d = this.ii(d, a, b, c, k[3], 10, -1894986606);\n c = this.ii(c, d, a, b, k[10], 15, -1051523);\n b = this.ii(b, c, d, a, k[1], 21, -2054922799);\n a = this.ii(a, b, c, d, k[8], 6, 1873313359);\n d = this.ii(d, a, b, c, k[15], 10, -30611744);\n c = this.ii(c, d, a, b, k[6], 15, -1560198380);\n b = this.ii(b, c, d, a, k[13], 21, 1309151649);\n a = this.ii(a, b, c, d, k[4], 6, -145523070);\n d = this.ii(d, a, b, c, k[11], 10, -1120210379);\n c = this.ii(c, d, a, b, k[2], 15, 718787259);\n b = this.ii(b, c, d, a, k[9], 21, -343485551);\n x[0] = this.add32(a, x[0]);\n x[1] = this.add32(b, x[1]);\n x[2] = this.add32(c, x[2]);\n x[3] = this.add32(d, x[3]);\n };\n MD5.prototype.cmn = function (q, a, b, x, s, t) {\n a = this.add32(this.add32(a, q), this.add32(x, t));\n return this.add32((a << s) | (a >>> (32 - s)), b);\n };\n MD5.prototype.ff = function (a, b, c, d, x, s, t) {\n return this.cmn((b & c) | ((~b) & d), a, b, x, s, t);\n };\n MD5.prototype.gg = function (a, b, c, d, x, s, t) {\n return this.cmn((b & d) | (c & (~d)), a, b, x, s, t);\n };\n MD5.prototype.hh = function (a, b, c, d, x, s, t) {\n return this.cmn(b ^ c ^ d, a, b, x, s, t);\n };\n MD5.prototype.ii = function (a, b, c, d, x, s, t) {\n return this.cmn(c ^ (b | (~d)), a, b, x, s, t);\n };\n MD5.prototype.md51 = function (s) {\n var n = s.length;\n var state = [1732584193, -271733879, -1732584194, 271733878];\n var i;\n for (i = 64; i <= s.length; i += 64) {\n this.md5cycle(state, this.md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n this.md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n this.md5cycle(state, tail);\n return state;\n };\n /* there needs to be support for Unicode here, * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise I suthis.ggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8 8-bit unsigned value arrays.\n */\n MD5.prototype.md5blk = function (s) {\n var md5blks = [];\n /* Andy King said do it this way. */\n for (var i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i)\n + (s.charCodeAt(i + 1) << 8)\n + (s.charCodeAt(i + 2) << 16)\n + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n };\n MD5.prototype.rhex = function (n) {\n var hex_chr = '0123456789abcdef'.split('');\n var s = '', j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]\n + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n };\n MD5.prototype.hex = function (x) {\n for (var i = 0; i < x.length; i++) {\n x[i] = this.rhex(x[i]);\n }\n return x.join('');\n };\n MD5.prototype.md5 = function (s) {\n return this.hex(this.md51(s));\n };\n MD5.prototype.add32 = function (a, b) {\n return this.ieCompatibility ? this.add32Compat(a, b) : this.add32Std(a, b);\n };\n /* this function is much faster, so if possible we use it. Some IEs are the only ones I know of that\n need the idiotic second function, generated by an if clause. */\n MD5.prototype.add32Std = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n };\n MD5.prototype.add32Compat = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n __decorate$2k([\n PostConstruct\n ], MD5.prototype, \"init\", null);\n MD5 = __decorate$2k([\n Bean('md5')\n ], MD5);\n return MD5;\n}(BeanStub));\n\nvar __extends$3r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar WatermarkComp = /** @class */ (function (_super) {\n __extends$3r(WatermarkComp, _super);\n function WatermarkComp() {\n return _super.call(this, \"
\\n
\\n
\") || this;\n }\n WatermarkComp.prototype.postConstruct = function () {\n var _this = this;\n var show = this.shouldDisplayWatermark();\n this.addOrRemoveCssClass('ag-hidden', !show);\n if (show) {\n this.eLicenseTextRef.innerText = this.licenseManager.getWatermarkMessage();\n window.setTimeout(function () { return _this.addCssClass('ag-opacity-zero'); }, 0);\n window.setTimeout(function () { return _this.addCssClass('ag-hidden'); }, 5000);\n }\n };\n WatermarkComp.prototype.shouldDisplayWatermark = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n var loc = win.location;\n var _a = loc.hostname, hostname = _a === void 0 ? '' : _a, pathname = loc.pathname;\n var isDisplayWatermark = this.licenseManager.isDisplayWatermark();\n var isWhiteListURL = hostname.match('^(?:127\\.0\\.0\\.1|localhost|(?:\\w+\\.)?ag-grid\\.com)$') != null;\n var isForceWatermark = pathname ? pathname.indexOf('forceWatermark') !== -1 : false;\n return isForceWatermark || (isDisplayWatermark && !isWhiteListURL);\n };\n __decorate$2j([\n Autowired('licenseManager')\n ], WatermarkComp.prototype, \"licenseManager\", void 0);\n __decorate$2j([\n RefSelector('eLicenseTextRef')\n ], WatermarkComp.prototype, \"eLicenseTextRef\", void 0);\n __decorate$2j([\n PostConstruct\n ], WatermarkComp.prototype, \"postConstruct\", null);\n return WatermarkComp;\n}(Component));\n\nvar EnterpriseCoreModule = {\n moduleName: ModuleNames.EnterpriseCoreModule,\n beans: [LicenseManager, MD5],\n agStackComponents: [\n { componentName: 'AgWatermark', componentClass: WatermarkComp }\n ]\n};\n\nvar __extends$3q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ClipboardService = /** @class */ (function (_super) {\n __extends$3q(ClipboardService, _super);\n function ClipboardService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastPasteOperationTime = 0;\n _this.navigatorApiFailed = false;\n return _this;\n }\n ClipboardService.prototype.init = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('ClipboardService');\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n });\n };\n ClipboardService.prototype.pasteFromClipboard = function () {\n var _this = this;\n this.logger.log('pasteFromClipboard');\n // Method 1 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsWrapper.isSuppressClipboardApi();\n // Some browsers (Firefox) do not allow Web Applications to read from\n // the clipboard so verify if not only the ClipboardAPI is available,\n // but also if the `readText` method is public.\n if (allowNavigator && !this.navigatorApiFailed && navigator.clipboard && navigator.clipboard.readText) {\n navigator.clipboard.readText()\n .then(this.processClipboardData.bind(this))\n .catch(function (e) {\n _.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.readText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API');\n }, 'clipboardApiError');\n _this.navigatorApiFailed = true;\n _this.pasteFromClipboardLegacy();\n });\n }\n else {\n this.pasteFromClipboardLegacy();\n }\n };\n ClipboardService.prototype.pasteFromClipboardLegacy = function () {\n var _this = this;\n // Method 2 - if modern API fails, the old school hack\n var defaultPrevented = false;\n var handlePasteEvent = function (e) {\n var currentPastOperationTime = (new Date()).getTime();\n if (currentPastOperationTime - _this.lastPasteOperationTime < 50) {\n defaultPrevented = true;\n e.preventDefault();\n }\n _this.lastPasteOperationTime = currentPastOperationTime;\n };\n this.executeOnTempElement(function (textArea) {\n textArea.addEventListener('paste', handlePasteEvent);\n textArea.focus({ preventScroll: true });\n }, function (element) {\n var data = element.value;\n if (!defaultPrevented) {\n _this.processClipboardData(data);\n }\n else {\n _this.refocusLastFocusedCell();\n }\n element.removeEventListener('paste', handlePasteEvent);\n });\n };\n ClipboardService.prototype.refocusLastFocusedCell = function () {\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell) {\n this.focusService.setFocusedCell({\n rowIndex: focusedCell.rowIndex,\n column: focusedCell.column,\n rowPinned: focusedCell.rowPinned,\n forceBrowserFocus: true\n });\n }\n };\n ClipboardService.prototype.processClipboardData = function (data) {\n var _this = this;\n if (data == null) {\n return;\n }\n var parsedData = _.stringToArray(data, this.gridOptionsWrapper.getClipboardDelimiter());\n var userFunc = this.gridOptionsWrapper.getProcessDataFromClipboardFunc();\n if (userFunc) {\n parsedData = userFunc({ data: parsedData });\n }\n if (parsedData == null) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressLastEmptyLineOnPaste()) {\n this.removeLastLineIfBlank(parsedData);\n }\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var rangeActive = _this.rangeService && _this.rangeService.isMoreThanOneCell();\n var pasteIntoRange = rangeActive && !_this.hasOnlyOneValueToPaste(parsedData);\n if (pasteIntoRange) {\n _this.pasteIntoActiveRange(parsedData, cellsToFlash, updatedRowNodes, changedPath);\n }\n else {\n _this.pasteStartingFromFocusedCell(parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n }\n };\n this.doPasteOperation(pasteOperation);\n };\n // common code to paste operations, e.g. paste to cell, paste to range, and copy range down\n ClipboardService.prototype.doPasteOperation = function (pasteOperationFunc) {\n var api = this.gridOptionsWrapper.getApi();\n var columnApi = this.gridOptionsWrapper.getColumnApi();\n var source = 'clipboard';\n this.eventService.dispatchEvent({\n type: Events.EVENT_PASTE_START,\n api: api,\n columnApi: columnApi,\n source: source\n });\n var changedPath;\n if (this.clientSideRowModel) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n }\n var cellsToFlash = {};\n var updatedRowNodes = [];\n var focusedCell = this.focusService.getFocusedCell();\n pasteOperationFunc(cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n if (changedPath) {\n this.clientSideRowModel.doAggregate(changedPath);\n }\n this.rowRenderer.refreshCells();\n this.dispatchFlashCells(cellsToFlash);\n this.fireRowChanged(updatedRowNodes);\n // if using the clipboard hack with a temp element, then the focus has been lost,\n // so need to put it back. otherwise paste operation loosed focus on cell and keyboard\n // navigation stops.\n this.refocusLastFocusedCell();\n var event = {\n type: Events.EVENT_PASTE_END,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ClipboardService.prototype.pasteIntoActiveRange = function (clipboardData, cellsToFlash, updatedRowNodes, changedPath) {\n var _this = this;\n // true if clipboard data can be evenly pasted into range, otherwise false\n var abortRepeatingPasteIntoRows = this.getRangeSize() % clipboardData.length != 0;\n var indexOffset = 0;\n var dataRowIndex = 0;\n var rowCallback = function (currentRow, rowNode, columns, index) {\n var atEndOfClipboardData = index - indexOffset >= clipboardData.length;\n if (atEndOfClipboardData) {\n if (abortRepeatingPasteIntoRows) {\n return;\n }\n // increment offset and reset data index to repeat paste of data\n indexOffset += dataRowIndex;\n dataRowIndex = 0;\n }\n var currentRowData = clipboardData[index - indexOffset];\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n columns.forEach(function (column, idx) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n // repeat data for columns we don't have data for - happens when to range is bigger than copied data range\n if (idx >= currentRowData.length) {\n idx = idx % currentRowData.length;\n }\n var newValue = _this.processCell(rowNode, column, currentRowData[idx], Constants.EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc);\n rowNode.setDataValue(column, newValue, Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n dataRowIndex++;\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.pasteStartingFromFocusedCell = function (parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n if (!focusedCell) {\n return;\n }\n var currentRow = { rowIndex: focusedCell.rowIndex, rowPinned: focusedCell.rowPinned };\n var columnsToPasteInto = this.columnModel.getDisplayedColumnsStartingAt(focusedCell.column);\n if (this.isPasteSingleValueIntoRange(parsedData)) {\n this.pasteSingleValueIntoRange(parsedData, updatedRowNodes, cellsToFlash, changedPath);\n }\n else {\n this.pasteMultipleValues(parsedData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n }\n };\n // if range is active, and only one cell, then we paste this cell into all cells in the active range.\n ClipboardService.prototype.isPasteSingleValueIntoRange = function (parsedData) {\n return this.hasOnlyOneValueToPaste(parsedData)\n && this.rangeService != null\n && !this.rangeService.isEmpty();\n };\n ClipboardService.prototype.pasteSingleValueIntoRange = function (parsedData, updatedRowNodes, cellsToFlash, changedPath) {\n var _this = this;\n var value = parsedData[0][0];\n var rowCallback = function (currentRow, rowNode, columns) {\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column) {\n return _this.updateCellValue(rowNode, column, value, cellsToFlash, Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n });\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.hasOnlyOneValueToPaste = function (parsedData) {\n return parsedData.length === 1 && parsedData[0].length === 1;\n };\n ClipboardService.prototype.copyRangeDown = function () {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var firstRowValues = [];\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var processCellForClipboardFunc = _this.gridOptionsWrapper.getProcessCellForClipboardFunc();\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n var rowCallback = function (currentRow, rowNode, columns) {\n // take reference of first row, this is the one we will be using to copy from\n if (!firstRowValues.length) {\n // two reasons for looping through columns\n columns.forEach(function (column) {\n // get the initial values to copy down\n var value = _this.processCell(rowNode, column, _this.valueService.getValue(column, rowNode), Constants.EXPORT_TYPE_DRAG_COPY, processCellForClipboardFunc);\n firstRowValues.push(value);\n });\n }\n else {\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column, index) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n var firstRowValue = _this.processCell(rowNode, column, firstRowValues[index], Constants.EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc);\n rowNode.setDataValue(column, firstRowValue, Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n }\n };\n _this.iterateActiveRanges(true, rowCallback);\n };\n this.doPasteOperation(pasteOperation);\n };\n ClipboardService.prototype.removeLastLineIfBlank = function (parsedData) {\n // remove last row if empty, excel puts empty last row in\n var lastLine = _.last(parsedData);\n var lastLineIsBlank = lastLine && lastLine.length === 1 && lastLine[0] === '';\n if (lastLineIsBlank) {\n // do not remove the last empty line when that is the only line pasted\n if (parsedData.length === 1) {\n return;\n }\n _.removeFromArray(parsedData, lastLine);\n }\n };\n ClipboardService.prototype.fireRowChanged = function (rowNodes) {\n var _this = this;\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var event = {\n type: Events.EVENT_ROW_VALUE_CHANGED,\n node: rowNode,\n data: rowNode.data,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned\n };\n _this.eventService.dispatchEvent(event);\n });\n };\n ClipboardService.prototype.pasteMultipleValues = function (clipboardGridData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, type, changedPath) {\n var _this = this;\n var rowPointer = currentRow;\n // if doing CSRM and NOT tree data, then it means groups are aggregates, which are read only,\n // so we should skip them when doing paste operations.\n var skipGroupRows = this.clientSideRowModel != null && !this.gridOptionsWrapper.isTreeData();\n var getNextGoodRowNode = function () {\n while (true) {\n if (!rowPointer) {\n return null;\n }\n var res = _this.rowPositionUtils.getRowNode(rowPointer);\n // move to next row down for next set of values\n rowPointer = _this.cellNavigationService.getRowBelow({ rowPinned: rowPointer.rowPinned, rowIndex: rowPointer.rowIndex });\n // if no more rows, return null\n if (res == null) {\n return null;\n }\n // skip details rows and footer rows, never paste into them as they don't hold data\n var skipRow = res.detail || res.footer || (skipGroupRows && res.group);\n // skipping row means we go into the next iteration of the while loop\n if (!skipRow) {\n return res;\n }\n }\n };\n clipboardGridData.forEach(function (clipboardRowData) {\n var rowNode = getNextGoodRowNode();\n // if we have come to end of rows in grid, then skip\n if (!rowNode) {\n return;\n }\n clipboardRowData.forEach(function (value, index) {\n return _this.updateCellValue(rowNode, columnsToPasteInto[index], value, cellsToFlash, type, changedPath);\n });\n updatedRowNodes.push(rowNode);\n });\n };\n ClipboardService.prototype.updateCellValue = function (rowNode, column, value, cellsToFlash, type, changedPath) {\n if (!rowNode ||\n !column ||\n !column.isCellEditable(rowNode) ||\n column.isSuppressPaste(rowNode)) {\n return;\n }\n var processedValue = this.processCell(rowNode, column, value, type, this.gridOptionsWrapper.getProcessCellFromClipboardFunc());\n rowNode.setDataValue(column, processedValue, Constants.SOURCE_PASTE);\n var cellId = this.cellPositionUtils.createIdFromValues(rowNode.rowIndex, column, rowNode.rowPinned);\n cellsToFlash[cellId] = true;\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n };\n ClipboardService.prototype.copyToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n var includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n this.logger.log(\"copyToClipboard: includeHeaders = \" + includeHeaders);\n // don't override 'includeHeaders' if it has been explicitly set to 'false'\n if (includeHeaders == null) {\n includeHeaders = this.gridOptionsWrapper.isCopyHeadersToClipboard();\n }\n if (includeGroupHeaders == null) {\n includeGroupHeaders = this.gridOptionsWrapper.isCopyGroupHeadersToClipboard();\n }\n var copyParams = { includeHeaders: includeHeaders, includeGroupHeaders: includeGroupHeaders };\n var shouldCopyRows = !this.gridOptionsWrapper.isSuppressCopyRowsToClipboard();\n // Copy priority is Range > Row > Focus\n if (this.rangeService && !this.rangeService.isEmpty() && !this.shouldSkipSingleCellRange()) {\n this.copySelectedRangeToClipboard(copyParams);\n }\n else if (shouldCopyRows && !this.selectionService.isEmpty()) {\n this.copySelectedRowsToClipboard(copyParams);\n }\n else if (this.focusService.isAnyCellFocused()) {\n this.copyFocusedCellToClipboard(copyParams);\n }\n };\n ClipboardService.prototype.shouldSkipSingleCellRange = function () {\n return this.gridOptionsWrapper.isSuppressCopySingleCellRanges() && !this.rangeService.isMoreThanOneCell();\n };\n ClipboardService.prototype.iterateActiveRanges = function (onlyFirst, rowCallback, columnCallback) {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n if (onlyFirst) {\n this.iterateActiveRange(cellRanges[0], rowCallback, columnCallback, true);\n }\n else {\n cellRanges.forEach(function (range, idx) { return _this.iterateActiveRange(range, rowCallback, columnCallback, idx === cellRanges.length - 1); });\n }\n };\n ClipboardService.prototype.iterateActiveRange = function (range, rowCallback, columnCallback, isLastRange) {\n if (!this.rangeService) {\n return;\n }\n var currentRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n if (columnCallback && range.columns) {\n columnCallback(range.columns);\n }\n var rangeIndex = 0;\n var isLastRow = false;\n // the currentRow could be missing if the user sets the active range manually, and sets a range\n // that is outside of the grid (eg. sets range rows 0 to 100, but grid has only 20 rows).\n while (!isLastRow && currentRow != null) {\n var rowNode = this.rowPositionUtils.getRowNode(currentRow);\n isLastRow = this.rowPositionUtils.sameRow(currentRow, lastRow);\n rowCallback(currentRow, rowNode, range.columns, rangeIndex++, isLastRow && isLastRange);\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n ClipboardService.prototype.copySelectedRangeToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var allRangesMerge = this.rangeService.areAllRangesAbleToMerge();\n var _a = allRangesMerge ? this.buildDataFromMergedRanges(params) : this.buildDataFromRanges(params), data = _a.data, cellsToFlash = _a.cellsToFlash;\n this.copyDataToClipboard(data);\n this.dispatchFlashCells(cellsToFlash);\n };\n ClipboardService.prototype.buildDataFromMergedRanges = function (params) {\n var _this = this;\n var columnsSet = new Set();\n var ranges = this.rangeService.getCellRanges();\n var rowPositionsMap = new Map();\n var allRowPositions = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n range.columns.forEach(function (col) { return columnsSet.add(col); });\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n rowPositions.forEach(function (rowPosition) {\n var rowPositionAsString = rowPosition.rowIndex + \"-\" + (rowPosition.rowPinned || 'null');\n if (!rowPositionsMap.get(rowPositionAsString)) {\n rowPositionsMap.set(rowPositionAsString, true);\n allRowPositions.push(rowPosition);\n }\n });\n Object.assign(allCellsToFlash, cellsToFlash);\n });\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var exportedColumns = Array.from(columnsSet);\n exportedColumns.sort(function (a, b) {\n var posA = allColumns.indexOf(a);\n var posB = allColumns.indexOf(b);\n return posA - posB;\n });\n var data = this.buildExportParams({\n columns: exportedColumns,\n rowPositions: allRowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n });\n return { data: data, cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.buildDataFromRanges = function (params) {\n var _this = this;\n var ranges = this.rangeService.getCellRanges();\n var data = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n Object.assign(allCellsToFlash, cellsToFlash);\n data.push(_this.buildExportParams({\n columns: range.columns,\n rowPositions: rowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n }));\n });\n return { data: data.join('\\n'), cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.getRangeRowPositionsAndCellsToFlash = function (range) {\n var _this = this;\n var rowPositions = [];\n var cellsToFlash = {};\n var startRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n var node = startRow;\n while (node) {\n rowPositions.push(node);\n range.columns.forEach(function (column) {\n var cellId = _this.cellPositionUtils.createIdFromValues(node.rowIndex, column, node.rowPinned);\n cellsToFlash[cellId] = true;\n });\n if (this.rowPositionUtils.sameRow(node, lastRow)) {\n break;\n }\n node = this.cellNavigationService.getRowBelow(node);\n }\n return { rowPositions: rowPositions, cellsToFlash: cellsToFlash };\n };\n ClipboardService.prototype.copyFocusedCellToClipboard = function (params) {\n var _a;\n if (params === void 0) { params = {}; }\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell == null) {\n return;\n }\n var cellId = this.cellPositionUtils.createId(focusedCell);\n var currentRow = { rowPinned: focusedCell.rowPinned, rowIndex: focusedCell.rowIndex };\n var column = focusedCell.column;\n var data = this.buildExportParams({\n columns: [column],\n rowPositions: [currentRow],\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n this.dispatchFlashCells((_a = {}, _a[cellId] = true, _a));\n };\n ClipboardService.prototype.copySelectedRowsToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n var columnKeys = params.columnKeys, includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n var data = this.buildExportParams({\n columns: columnKeys,\n includeHeaders: includeHeaders,\n includeGroupHeaders: includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n };\n ClipboardService.prototype.buildExportParams = function (params) {\n var columns = params.columns, rowPositions = params.rowPositions, _a = params.includeHeaders, includeHeaders = _a === void 0 ? false : _a, _b = params.includeGroupHeaders, includeGroupHeaders = _b === void 0 ? false : _b;\n var exportParams = {\n columnKeys: columns,\n rowPositions: rowPositions,\n skipColumnHeaders: !includeHeaders,\n skipColumnGroupHeaders: !includeGroupHeaders,\n suppressQuotes: true,\n columnSeparator: this.gridOptionsWrapper.getClipboardDelimiter(),\n onlySelected: !rowPositions,\n processCellCallback: this.gridOptionsWrapper.getProcessCellForClipboardFunc(),\n processRowGroupCallback: function (params) { return params.node.key; },\n processHeaderCallback: this.gridOptionsWrapper.getProcessHeaderForClipboardFunc(),\n processGroupHeaderCallback: this.gridOptionsWrapper.getProcessGroupHeaderForClipboardFunc()\n };\n return this.csvCreator.getDataAsCsv(exportParams, true);\n };\n ClipboardService.prototype.dispatchFlashCells = function (cellsToFlash) {\n var _this = this;\n window.setTimeout(function () {\n var event = {\n type: Events.EVENT_FLASH_CELLS,\n cells: cellsToFlash\n };\n _this.eventService.dispatchEvent(event);\n }, 0);\n };\n ClipboardService.prototype.processCell = function (rowNode, column, value, type, func) {\n if (func) {\n var params = {\n column: column,\n node: rowNode,\n value: value,\n type: type,\n };\n return func(params);\n }\n return value;\n };\n ClipboardService.prototype.copyDataToClipboard = function (data) {\n var _this = this;\n var userProvidedFunc = this.gridOptionsWrapper.getSendToClipboardFunc();\n // method 1 - user provided func\n if (userProvidedFunc) {\n userProvidedFunc({ data: data });\n return;\n }\n // method 2 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsWrapper.isSuppressClipboardApi();\n if (allowNavigator && navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(function (e) {\n _.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.writeText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API.');\n }, 'clipboardApiError');\n _this.copyDataToClipboardLegacy(data);\n });\n return;\n }\n this.copyDataToClipboardLegacy(data);\n };\n ClipboardService.prototype.copyDataToClipboardLegacy = function (data) {\n var _this = this;\n // method 3 - if all else fails, the old school hack\n this.executeOnTempElement(function (element) {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n var focusedElementBefore = eDocument.activeElement;\n element.value = data || ' '; // has to be non-empty value or execCommand will not do anything\n element.select();\n element.focus({ preventScroll: true });\n var result = eDocument.execCommand('copy');\n if (!result) {\n console.warn('AG Grid: Browser did not allow document.execCommand(\\'copy\\'). Ensure ' +\n 'api.copySelectedRowsToClipboard() is invoked via a user event, i.e. button click, otherwise ' +\n 'the browser will prevent it for security reasons.');\n }\n if (focusedElementBefore != null && focusedElementBefore.focus != null) {\n focusedElementBefore.focus({ preventScroll: true });\n }\n });\n };\n ClipboardService.prototype.executeOnTempElement = function (callbackNow, callbackAfter) {\n var eDoc = this.gridOptionsWrapper.getDocument();\n var eTempInput = eDoc.createElement('textarea');\n eTempInput.style.width = '1px';\n eTempInput.style.height = '1px';\n // removing items from the DOM causes the document element to scroll to the\n // position where the element was positioned. Here we set scrollTop / scrollLeft\n // to prevent the document element from scrolling when we remove it from the DOM.\n eTempInput.style.top = eDoc.documentElement.scrollTop + 'px';\n eTempInput.style.left = eDoc.documentElement.scrollLeft + 'px';\n eTempInput.style.position = 'absolute';\n eTempInput.style.opacity = '0';\n var guiRoot = this.gridCtrl.getGui();\n guiRoot.appendChild(eTempInput);\n try {\n callbackNow(eTempInput);\n }\n catch (err) {\n console.warn('AG Grid: Browser does not support document.execCommand(\\'copy\\') for clipboard operations');\n }\n //It needs 100 otherwise OS X seemed to not always be able to paste... Go figure...\n if (callbackAfter) {\n window.setTimeout(function () {\n callbackAfter(eTempInput);\n guiRoot.removeChild(eTempInput);\n }, 100);\n }\n else {\n guiRoot.removeChild(eTempInput);\n }\n };\n ClipboardService.prototype.getRangeSize = function () {\n var ranges = this.rangeService.getCellRanges();\n var startRangeIndex = 0;\n var endRangeIndex = 0;\n if (ranges.length > 0) {\n startRangeIndex = this.rangeService.getRangeStartRow(ranges[0]).rowIndex;\n endRangeIndex = this.rangeService.getRangeEndRow(ranges[0]).rowIndex;\n }\n return startRangeIndex - endRangeIndex + 1;\n };\n __decorate$2i([\n Autowired('csvCreator')\n ], ClipboardService.prototype, \"csvCreator\", void 0);\n __decorate$2i([\n Autowired('loggerFactory')\n ], ClipboardService.prototype, \"loggerFactory\", void 0);\n __decorate$2i([\n Autowired('selectionService')\n ], ClipboardService.prototype, \"selectionService\", void 0);\n __decorate$2i([\n Optional('rangeService')\n ], ClipboardService.prototype, \"rangeService\", void 0);\n __decorate$2i([\n Autowired('rowModel')\n ], ClipboardService.prototype, \"rowModel\", void 0);\n __decorate$2i([\n Autowired('ctrlsService')\n ], ClipboardService.prototype, \"ctrlsService\", void 0);\n __decorate$2i([\n Autowired('valueService')\n ], ClipboardService.prototype, \"valueService\", void 0);\n __decorate$2i([\n Autowired('focusService')\n ], ClipboardService.prototype, \"focusService\", void 0);\n __decorate$2i([\n Autowired('rowRenderer')\n ], ClipboardService.prototype, \"rowRenderer\", void 0);\n __decorate$2i([\n Autowired('columnModel')\n ], ClipboardService.prototype, \"columnModel\", void 0);\n __decorate$2i([\n Autowired('cellNavigationService')\n ], ClipboardService.prototype, \"cellNavigationService\", void 0);\n __decorate$2i([\n Autowired('cellPositionUtils')\n ], ClipboardService.prototype, \"cellPositionUtils\", void 0);\n __decorate$2i([\n Autowired('rowPositionUtils')\n ], ClipboardService.prototype, \"rowPositionUtils\", void 0);\n __decorate$2i([\n PostConstruct\n ], ClipboardService.prototype, \"init\", null);\n ClipboardService = __decorate$2i([\n Bean('clipboardService')\n ], ClipboardService);\n return ClipboardService;\n}(BeanStub));\n\nvar ClipboardModule = {\n moduleName: ModuleNames.ClipboardModule,\n beans: [ClipboardService],\n dependantModules: [\n EnterpriseCoreModule,\n CsvExportModule\n ]\n};\n\nvar __extends$3p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandState;\n(function (ExpandState) {\n ExpandState[ExpandState[\"EXPANDED\"] = 0] = \"EXPANDED\";\n ExpandState[ExpandState[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n ExpandState[ExpandState[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(ExpandState || (ExpandState = {}));\nvar PrimaryColsHeaderPanel = /** @class */ (function (_super) {\n __extends$3p(PrimaryColsHeaderPanel, _super);\n function PrimaryColsHeaderPanel() {\n return _super.call(this, PrimaryColsHeaderPanel.TEMPLATE) || this;\n }\n PrimaryColsHeaderPanel.prototype.postConstruct = function () {\n var _this = this;\n this.createExpandIcons();\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eExpand, 'keydown', function (e) {\n if (e.key === KeyCode.SPACE) {\n _this.onExpandClicked();\n }\n });\n this.addManagedListener(this.eSelect.getInputElement(), 'click', this.onSelectClicked.bind(this));\n this.eFilterTextField.onValueChange(function () { return _this.onFilterTextChanged(); });\n this.addManagedListener(this.eFilterTextField.getInputElement(), 'keypress', this.onMiniFilterKeyPress.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eSelect.setInputAriaLabel(translate('ariaColumnSelectAll', 'Toggle Select All Columns'));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n };\n PrimaryColsHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n PrimaryColsHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild((this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandIndeterminate = _.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsWrapper)));\n this.setExpandState(ExpandState.EXPANDED);\n };\n // we only show expand / collapse if we are showing columns\n PrimaryColsHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilter = !this.params.suppressColumnFilter;\n var showSelect = !this.params.suppressColumnSelectAll;\n var showExpand = !this.params.suppressColumnExpandAll;\n var groupsPresent = this.columnModel.isPrimaryColumnGroupsPresent();\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n _.setDisplayed(this.eFilterTextField.getGui(), showFilter);\n _.setDisplayed(this.eSelect.getGui(), showSelect);\n _.setDisplayed(this.eExpand, showExpand && groupsPresent);\n };\n PrimaryColsHeaderPanel.prototype.onFilterTextChanged = function () {\n var _this = this;\n if (!this.onFilterTextChangedDebounced) {\n this.onFilterTextChangedDebounced = _.debounce(function () {\n var filterText = _this.eFilterTextField.getValue();\n _this.dispatchEvent({ type: \"filterChanged\", filterText: filterText });\n }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n this.onFilterTextChangedDebounced();\n };\n PrimaryColsHeaderPanel.prototype.onMiniFilterKeyPress = function (e) {\n var _this = this;\n if (e.key === KeyCode.ENTER) {\n // we need to add a delay that corresponds to the filter text debounce delay to ensure\n // the text filtering has happened, otherwise all columns will be deselected\n setTimeout(function () { return _this.onSelectClicked(); }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n };\n PrimaryColsHeaderPanel.prototype.onSelectClicked = function () {\n this.dispatchEvent({ type: this.selectState ? 'unselectAll' : 'selectAll' });\n };\n PrimaryColsHeaderPanel.prototype.onExpandClicked = function () {\n this.dispatchEvent({ type: this.expandState === ExpandState.EXPANDED ? 'collapseAll' : 'expandAll' });\n };\n PrimaryColsHeaderPanel.prototype.setExpandState = function (state) {\n this.expandState = state;\n _.setDisplayed(this.eExpandChecked, this.expandState === ExpandState.EXPANDED);\n _.setDisplayed(this.eExpandUnchecked, this.expandState === ExpandState.COLLAPSED);\n _.setDisplayed(this.eExpandIndeterminate, this.expandState === ExpandState.INDETERMINATE);\n };\n PrimaryColsHeaderPanel.prototype.setSelectionState = function (state) {\n this.selectState = state;\n this.eSelect.setValue(this.selectState);\n };\n PrimaryColsHeaderPanel.DEBOUNCE_DELAY = 300;\n PrimaryColsHeaderPanel.TEMPLATE = \"
\\n
\\n \\n \\n
\";\n __decorate$2h([\n Autowired('columnModel')\n ], PrimaryColsHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$2h([\n RefSelector('eExpand')\n ], PrimaryColsHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$2h([\n RefSelector('eSelect')\n ], PrimaryColsHeaderPanel.prototype, \"eSelect\", void 0);\n __decorate$2h([\n RefSelector('eFilterTextField')\n ], PrimaryColsHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$2h([\n PostConstruct\n ], PrimaryColsHeaderPanel.prototype, \"postConstruct\", null);\n return PrimaryColsHeaderPanel;\n}(Component));\n\nvar ColumnModelItem = /** @class */ (function () {\n function ColumnModelItem(displayName, columnOrGroup, dept, group, expanded) {\n if (group === void 0) { group = false; }\n this.eventService = new EventService();\n this.displayName = displayName;\n this.dept = dept;\n this.group = group;\n if (group) {\n this.columnGroup = columnOrGroup;\n this.expanded = expanded;\n this.children = [];\n }\n else {\n this.column = columnOrGroup;\n }\n }\n ColumnModelItem.prototype.isGroup = function () { return this.group; };\n ColumnModelItem.prototype.getDisplayName = function () { return this.displayName; };\n ColumnModelItem.prototype.getColumnGroup = function () { return this.columnGroup; };\n ColumnModelItem.prototype.getColumn = function () { return this.column; };\n ColumnModelItem.prototype.getDept = function () { return this.dept; };\n ColumnModelItem.prototype.isExpanded = function () { return !!this.expanded; };\n ColumnModelItem.prototype.getChildren = function () { return this.children; };\n ColumnModelItem.prototype.isPassesFilter = function () { return this.passesFilter; };\n ColumnModelItem.prototype.setExpanded = function (expanded) {\n if (expanded === this.expanded) {\n return;\n }\n this.expanded = expanded;\n this.eventService.dispatchEvent({ type: ColumnModelItem.EVENT_EXPANDED_CHANGED });\n };\n ColumnModelItem.prototype.setPassesFilter = function (passesFilter) {\n this.passesFilter = passesFilter;\n };\n ColumnModelItem.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n ColumnModelItem.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n ColumnModelItem.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n return ColumnModelItem;\n}());\n\nvar __extends$3o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$X = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$y = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$X(arguments[i]));\n return ar;\n};\nvar __values$x = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ToolPanelContextMenu = /** @class */ (function (_super) {\n __extends$3o(ToolPanelContextMenu, _super);\n function ToolPanelContextMenu(column, mouseEvent, parentEl) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.column = column;\n _this.mouseEvent = mouseEvent;\n _this.parentEl = parentEl;\n _this.displayName = null;\n return _this;\n }\n ToolPanelContextMenu.prototype.postConstruct = function () {\n this.initializeProperties(this.column);\n this.buildMenuItemMap();\n if (this.column instanceof Column) {\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnToolPanel');\n }\n else {\n this.displayName = this.columnModel.getDisplayNameForProvidedColumnGroup(null, this.column, 'columnToolPanel');\n }\n if (this.isActive()) {\n this.mouseEvent.preventDefault();\n this.displayContextMenu();\n }\n };\n ToolPanelContextMenu.prototype.initializeProperties = function (column) {\n if (column instanceof ProvidedColumnGroup) {\n this.columns = column.getLeafColumns();\n }\n else {\n this.columns = [column];\n }\n this.allowGrouping = this.columns.some(function (col) { return col.isPrimary() && col.isAllowRowGroup(); });\n this.allowValues = this.columns.some(function (col) { return col.isPrimary() && col.isAllowValue(); });\n this.allowPivoting = this.columnModel.isPivotMode() && this.columns.some(function (col) { return col.isPrimary() && col.isAllowPivot(); });\n };\n ToolPanelContextMenu.prototype.buildMenuItemMap = function () {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.menuItemMap = new Map();\n this.menuItemMap.set('rowGroup', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowRowGroup(); },\n activeFunction: function (col) { return col.isRowGroupActive(); },\n activateLabel: function () { return localeTextFunc('groupBy', 'Group by') + \" \" + _this.displayName; },\n deactivateLabel: function () { return localeTextFunc('ungroupBy', 'Un-Group by') + \" \" + _this.displayName; },\n activateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.addColumnsToList(groupedColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.removeColumnsFromList(groupedColumns), \"toolPanelUi\");\n },\n addIcon: 'menuAddRowGroup',\n removeIcon: 'menuRemoveRowGroup'\n });\n this.menuItemMap.set('value', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowValue(); },\n activeFunction: function (col) { return col.isValueActive(); },\n activateLabel: function () { return localeTextFunc('addToValues', \"Add \" + _this.displayName + \" to values\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromValues', \"Remove \" + _this.displayName + \" from values\", [_this.displayName]); },\n activateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.addColumnsToList(valueColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.removeColumnsFromList(valueColumns), \"toolPanelUi\");\n },\n addIcon: 'valuePanel',\n removeIcon: 'valuePanel'\n });\n this.menuItemMap.set('pivot', {\n allowedFunction: function (col) { return _this.columnModel.isPivotMode() && col.isPrimary() && col.isAllowPivot(); },\n activeFunction: function (col) { return col.isPivotActive(); },\n activateLabel: function () { return localeTextFunc('addToLabels', \"Add \" + _this.displayName + \" to labels\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromLabels', \"Remove \" + _this.displayName + \" from labels\", [_this.displayName]); },\n activateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.addColumnsToList(pivotColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.removeColumnsFromList(pivotColumns), \"toolPanelUi\");\n },\n addIcon: 'pivotPanel',\n removeIcon: 'pivotPanel'\n });\n };\n ToolPanelContextMenu.prototype.addColumnsToList = function (columnList) {\n return __spread$y(columnList).concat(this.columns.filter(function (col) { return columnList.indexOf(col) === -1; }));\n };\n ToolPanelContextMenu.prototype.removeColumnsFromList = function (columnList) {\n var _this = this;\n return columnList.filter(function (col) { return _this.columns.indexOf(col) === -1; });\n };\n ToolPanelContextMenu.prototype.displayContextMenu = function () {\n var _this = this;\n var eGui = this.getGui();\n var menuList = this.createBean(new AgMenuList());\n var menuItemsMapped = this.getMappedMenuItems();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var hideFunc = function () { };\n eGui.appendChild(menuList.getGui());\n menuList.addMenuItems(menuItemsMapped);\n menuList.addManagedListener(menuList, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function () {\n _this.parentEl.focus();\n hideFunc();\n });\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eGui,\n closeOnEsc: true,\n afterGuiAttached: function () { return _this.focusService.focusInto(menuList.getGui()); },\n ariaLabel: localeTextFunc('ariaLabelContextMenu', 'Context Menu'),\n closedCallback: function (e) {\n if (e instanceof KeyboardEvent) {\n _this.parentEl.focus();\n }\n _this.destroyBean(menuList);\n }\n });\n if (addPopupRes) {\n hideFunc = addPopupRes.hideFunc;\n }\n this.popupService.positionPopupUnderMouseEvent({\n type: 'columnContextMenu',\n mouseEvent: this.mouseEvent,\n ePopup: eGui\n });\n };\n ToolPanelContextMenu.prototype.isActive = function () {\n return this.allowGrouping || this.allowValues || this.allowPivoting;\n };\n ToolPanelContextMenu.prototype.getMappedMenuItems = function () {\n var e_1, _a;\n var ret = [];\n var _loop_1 = function (val) {\n var isInactive = this_1.columns.some(function (col) { return val.allowedFunction(col) && !val.activeFunction(col); });\n var isActive = this_1.columns.some(function (col) { return val.allowedFunction(col) && val.activeFunction(col); });\n if (isInactive) {\n ret.push({\n name: val.activateLabel(this_1.displayName),\n icon: _.createIconNoSpan(val.addIcon, this_1.gridOptionsWrapper, null),\n action: function () { return val.activateFunction(); }\n });\n }\n if (isActive) {\n ret.push({\n name: val.deactivateLabel(this_1.displayName),\n icon: _.createIconNoSpan(val.removeIcon, this_1.gridOptionsWrapper, null),\n action: function () { return val.deActivateFunction(); }\n });\n }\n };\n var this_1 = this;\n try {\n for (var _b = __values$x(this.menuItemMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n _loop_1(val);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return ret;\n };\n __decorate$2g([\n Autowired('columnModel')\n ], ToolPanelContextMenu.prototype, \"columnModel\", void 0);\n __decorate$2g([\n Autowired('popupService')\n ], ToolPanelContextMenu.prototype, \"popupService\", void 0);\n __decorate$2g([\n Autowired('focusService')\n ], ToolPanelContextMenu.prototype, \"focusService\", void 0);\n __decorate$2g([\n PostConstruct\n ], ToolPanelContextMenu.prototype, \"postConstruct\", null);\n return ToolPanelContextMenu;\n}(Component));\n\nvar __extends$3n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnGroupComp = /** @class */ (function (_super) {\n __extends$3n(ToolPanelColumnGroupComp, _super);\n function ToolPanelColumnGroupComp(modelItem, allowDragging, eventType, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.modelItem = modelItem;\n _this.allowDragging = allowDragging;\n _this.eventType = eventType;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n _this.modelItem = modelItem;\n _this.columnGroup = modelItem.getColumnGroup();\n _this.columnDept = modelItem.getDept();\n _this.allowDragging = allowDragging;\n return _this;\n }\n ToolPanelColumnGroupComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnGroupComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-group-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n this.displayName = this.columnModel.getDisplayNameForProvidedColumnGroup(null, this.columnGroup, this.eventType);\n if (_.missing(this.displayName)) {\n this.displayName = '>>';\n }\n this.eLabel.innerHTML = this.displayName ? this.displayName : '';\n this.setupExpandContract();\n this.addCssClass('ag-column-select-indent-' + this.columnDept);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.addManagedListener(this.cbSelect, AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.modelItem, ColumnModelItem.EVENT_EXPANDED_CHANGED, this.onExpandChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.setOpenClosedIcons();\n this.setupDragging();\n this.onColumnStateChanged();\n this.addVisibilityListenersToAllChildren();\n this.refreshAriaExpanded();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = CssClassApplier.getToolPanelClassesFromColDef(this.columnGroup.getColGroupDef(), this.gridOptionsWrapper, null, this.columnGroup);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnGroupComp.prototype.getColumns = function () {\n return this.columnGroup.getLeafColumns();\n };\n ToolPanelColumnGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n if (!colGroupDef) {\n return;\n }\n var refresh = function () {\n var newTooltipText = colGroupDef.headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumnGroup';\n return res;\n };\n ToolPanelColumnGroupComp.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.LEFT:\n e.preventDefault();\n this.modelItem.setExpanded(false);\n break;\n case KeyCode.RIGHT:\n e.preventDefault();\n this.modelItem.setExpanded(true);\n break;\n case KeyCode.SPACE:\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n break;\n }\n };\n ToolPanelColumnGroupComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, columnGroup = _a.columnGroup, gridOptionsWrapper = _a.gridOptionsWrapper;\n if (gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(columnGroup, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnGroupComp.prototype.addVisibilityListenersToAllChildren = function () {\n var _this = this;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n _this.addManagedListener(column, Column.EVENT_VISIBLE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_VALUE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_PIVOT_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_ROW_GROUP_CHANGED, _this.onColumnStateChanged.bind(_this));\n });\n };\n ToolPanelColumnGroupComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns();\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n defaultIconName: hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.columnGroup\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n },\n onGridEnter: function () {\n if (hideColumnOnExit) {\n // when dragged into the grid, mimic what happens when checkbox is enabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(true);\n }\n },\n onGridExit: function () {\n if (hideColumnOnExit) {\n // when dragged outside of the grid, mimic what happens when checkbox is disabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(false);\n }\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnGroupComp.prototype.createDragItem = function () {\n var visibleState = {};\n this.columnGroup.getLeafColumns().forEach(function (col) {\n visibleState[col.getId()] = col.isVisible();\n });\n return {\n columns: this.columnGroup.getLeafColumns(),\n visibleState: visibleState\n };\n };\n ToolPanelColumnGroupComp.prototype.setupExpandContract = function () {\n this.eGroupClosedIcon.appendChild(_.createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(_.createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addManagedListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n this.addManagedListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n var touchListener = new TouchListener(this.eColumnGroupIcons, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, this.onExpandOrContractClicked.bind(this));\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n ToolPanelColumnGroupComp.prototype.onLabelClicked = function () {\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnGroupComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnGroupComp.prototype.getVisibleLeafColumns = function () {\n var childColumns = [];\n var extractCols = function (children) {\n children.forEach(function (child) {\n if (!child.isPassesFilter()) {\n return;\n }\n if (child.isGroup()) {\n extractCols(child.getChildren());\n }\n else {\n childColumns.push(child.getColumn());\n }\n });\n };\n extractCols(this.modelItem.getChildren());\n return childColumns;\n };\n ToolPanelColumnGroupComp.prototype.onChangeCommon = function (nextState) {\n this.refreshAriaLabel();\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.selectAllChildren(this.modelItem.getChildren(), nextState, this.eventType);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnLabel = translate('ariaColumnGroup', 'Column Group');\n var state = this.cbSelect.getValue() ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden');\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n _.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n _.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnGroupComp.prototype.onColumnStateChanged = function () {\n var selectedValue = this.workOutSelectedValue();\n var readOnlyValue = this.workOutReadOnlyValue();\n this.processingColumnStateChange = true;\n this.cbSelect.setValue(selectedValue);\n this.cbSelect.setReadOnly(readOnlyValue);\n this.addOrRemoveCssClass('ag-column-select-column-group-readonly', readOnlyValue);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnGroupComp.prototype.workOutSelectedValue = function () {\n var _this = this;\n var pivotMode = this.columnModel.isPivotMode();\n var visibleLeafColumns = this.getVisibleLeafColumns();\n var checkedCount = 0;\n var uncheckedCount = 0;\n visibleLeafColumns.forEach(function (column) {\n if (!pivotMode && column.getColDef().lockVisible) {\n return;\n }\n if (_this.isColumnChecked(column, pivotMode)) {\n checkedCount++;\n }\n else {\n uncheckedCount++;\n }\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return checkedCount > 0;\n };\n ToolPanelColumnGroupComp.prototype.workOutReadOnlyValue = function () {\n var pivotMode = this.columnModel.isPivotMode();\n var colsThatCanAction = 0;\n this.columnGroup.getLeafColumns().forEach(function (col) {\n if (pivotMode) {\n if (col.isAnyFunctionAllowed()) {\n colsThatCanAction++;\n }\n }\n else {\n if (!col.getColDef().lockVisible) {\n colsThatCanAction++;\n }\n }\n });\n return colsThatCanAction === 0;\n };\n ToolPanelColumnGroupComp.prototype.isColumnChecked = function (column, pivotMode) {\n if (pivotMode) {\n var pivoted = column.isPivotActive();\n var grouped = column.isRowGroupActive();\n var aggregated = column.isValueActive();\n return pivoted || grouped || aggregated;\n }\n return column.isVisible();\n };\n ToolPanelColumnGroupComp.prototype.onExpandOrContractClicked = function () {\n var oldState = this.modelItem.isExpanded();\n this.modelItem.setExpanded(!oldState);\n };\n ToolPanelColumnGroupComp.prototype.onExpandChanged = function () {\n this.setOpenClosedIcons();\n this.refreshAriaExpanded();\n };\n ToolPanelColumnGroupComp.prototype.setOpenClosedIcons = function () {\n var folderOpen = this.modelItem.isExpanded();\n _.setDisplayed(this.eGroupClosedIcon, !folderOpen);\n _.setDisplayed(this.eGroupOpenedIcon, folderOpen);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaExpanded = function () {\n _.setAriaExpanded(this.focusWrapper, this.modelItem.isExpanded());\n };\n ToolPanelColumnGroupComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnGroupComp.prototype.onSelectAllChanged = function (value) {\n var cbValue = this.cbSelect.getValue();\n var readOnly = this.cbSelect.isReadOnly();\n if (!readOnly && ((value && !cbValue) || (!value && cbValue))) {\n this.cbSelect.toggle();\n }\n };\n ToolPanelColumnGroupComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnGroupComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnGroupComp.prototype.setSelected = function (selected) {\n this.cbSelect.setValue(selected, true);\n };\n ToolPanelColumnGroupComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$2f([\n Autowired('columnModel')\n ], ToolPanelColumnGroupComp.prototype, \"columnModel\", void 0);\n __decorate$2f([\n Autowired('dragAndDropService')\n ], ToolPanelColumnGroupComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2f([\n Autowired('modelItemUtils')\n ], ToolPanelColumnGroupComp.prototype, \"modelItemUtils\", void 0);\n __decorate$2f([\n RefSelector('cbSelect')\n ], ToolPanelColumnGroupComp.prototype, \"cbSelect\", void 0);\n __decorate$2f([\n RefSelector('eLabel')\n ], ToolPanelColumnGroupComp.prototype, \"eLabel\", void 0);\n __decorate$2f([\n RefSelector('eGroupOpenedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$2f([\n RefSelector('eGroupClosedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$2f([\n RefSelector('eColumnGroupIcons')\n ], ToolPanelColumnGroupComp.prototype, \"eColumnGroupIcons\", void 0);\n __decorate$2f([\n PostConstruct\n ], ToolPanelColumnGroupComp.prototype, \"init\", null);\n return ToolPanelColumnGroupComp;\n}(Component));\n\nvar __extends$3m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PRIMARY_COLS_LIST_ITEM_HOVERED = 'ag-list-item-hovered';\nvar PrimaryColsListPanelItemDragFeature = /** @class */ (function (_super) {\n __extends$3m(PrimaryColsListPanelItemDragFeature, _super);\n function PrimaryColsListPanelItemDragFeature(comp, virtualList) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n _this.currentDragColumn = null;\n _this.lastHoveredColumnItem = null;\n return _this;\n }\n PrimaryColsListPanelItemDragFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START, this.columnPanelItemDragStart.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END, this.columnPanelItemDragEnd.bind(this));\n this.createDropTarget();\n this.createAutoScrollService();\n };\n PrimaryColsListPanelItemDragFeature.prototype.columnPanelItemDragStart = function (_a) {\n var column = _a.column;\n this.currentDragColumn = column;\n var currentColumns = this.getCurrentColumns();\n var hasNotMovable = currentColumns.find(function (col) {\n var colDef = col.getColDef();\n return !!colDef.suppressMovable || !!colDef.lockPosition;\n });\n if (hasNotMovable) {\n this.moveBlocked = true;\n }\n };\n PrimaryColsListPanelItemDragFeature.prototype.columnPanelItemDragEnd = function () {\n var _this = this;\n window.setTimeout(function () {\n _this.currentDragColumn = null;\n _this.moveBlocked = false;\n }, 10);\n };\n PrimaryColsListPanelItemDragFeature.prototype.createDropTarget = function () {\n var _this = this;\n var dropTarget = {\n isInterestedIn: function (type) { return type === DragSourceType.ToolPanel; },\n getIconName: function () { return DragAndDropService[_this.moveBlocked ? 'ICON_NOT_ALLOWED' : 'ICON_MOVE']; },\n getContainer: function () { return _this.comp.getGui(); },\n onDragging: function (e) { return _this.onDragging(e); },\n onDragStop: function () { return _this.onDragStop(); },\n onDragLeave: function () { return _this.onDragLeave(); }\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n };\n PrimaryColsListPanelItemDragFeature.prototype.createAutoScrollService = function () {\n var virtualListGui = this.virtualList.getGui();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: virtualListGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return virtualListGui.scrollTop; },\n setVerticalPosition: function (position) { return virtualListGui.scrollTop = position; }\n });\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragging = function (e) {\n if (!this.currentDragColumn || this.moveBlocked) {\n return;\n }\n var hoveredColumnItem = this.getDragColumnItem(e);\n var comp = this.virtualList.getComponentAt(hoveredColumnItem.rowIndex);\n if (!comp) {\n return;\n }\n var el = comp.getGui().parentElement;\n if (this.lastHoveredColumnItem &&\n this.lastHoveredColumnItem.rowIndex === hoveredColumnItem.rowIndex &&\n this.lastHoveredColumnItem.position === hoveredColumnItem.position) {\n return;\n }\n this.autoScrollService.check(e.event);\n this.clearHoveredItems();\n this.lastHoveredColumnItem = hoveredColumnItem;\n _.radioCssClass(el, \"\" + PRIMARY_COLS_LIST_ITEM_HOVERED);\n _.radioCssClass(el, \"ag-item-highlight-\" + hoveredColumnItem.position);\n };\n PrimaryColsListPanelItemDragFeature.prototype.getDragColumnItem = function (e) {\n var virtualListGui = this.virtualList.getGui();\n var paddingTop = parseFloat(window.getComputedStyle(virtualListGui).paddingTop);\n var rowHeight = this.virtualList.getRowHeight();\n var scrollTop = this.virtualList.getScrollTop();\n var rowIndex = Math.max(0, (e.y - paddingTop + scrollTop) / rowHeight);\n var maxLen = this.comp.getDisplayedColsList().length - 1;\n var normalizedRowIndex = Math.min(maxLen, rowIndex) | 0;\n return {\n rowIndex: normalizedRowIndex,\n position: (Math.round(rowIndex) > rowIndex || rowIndex > maxLen) ? 'bottom' : 'top',\n component: this.virtualList.getComponentAt(normalizedRowIndex)\n };\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragStop = function () {\n if (this.moveBlocked) {\n return;\n }\n var targetIndex = this.getTargetIndex();\n var columnsToMove = this.getCurrentColumns();\n if (targetIndex != null) {\n this.columnModel.moveColumns(columnsToMove, targetIndex);\n }\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n PrimaryColsListPanelItemDragFeature.prototype.getMoveDiff = function (end) {\n var allColumns = this.columnModel.getAllGridColumns();\n var currentColumns = this.getCurrentColumns();\n var currentColumn = currentColumns[0];\n var span = currentColumns.length;\n var currentIndex = allColumns.indexOf(currentColumn);\n if (currentIndex < end) {\n return span;\n }\n return 0;\n };\n PrimaryColsListPanelItemDragFeature.prototype.getCurrentColumns = function () {\n if (this.currentDragColumn instanceof ProvidedColumnGroup) {\n return this.currentDragColumn.getLeafColumns();\n }\n return [this.currentDragColumn];\n };\n PrimaryColsListPanelItemDragFeature.prototype.getTargetIndex = function () {\n if (!this.lastHoveredColumnItem) {\n return null;\n }\n var columnItemComponent = this.lastHoveredColumnItem.component;\n var isBefore = this.lastHoveredColumnItem.position === 'top';\n var targetColumn;\n if (columnItemComponent instanceof ToolPanelColumnGroupComp) {\n var columns = columnItemComponent.getColumns();\n targetColumn = columns[0];\n isBefore = true;\n }\n else {\n targetColumn = columnItemComponent.getColumn();\n }\n var targetColumnIndex = this.columnModel.getAllGridColumns().indexOf(targetColumn);\n var adjustedTarget = isBefore ? targetColumnIndex : targetColumnIndex + 1;\n var diff = this.getMoveDiff(adjustedTarget);\n return adjustedTarget - diff;\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n PrimaryColsListPanelItemDragFeature.prototype.clearHoveredItems = function () {\n var virtualListGui = this.virtualList.getGui();\n virtualListGui.querySelectorAll(\".\" + PRIMARY_COLS_LIST_ITEM_HOVERED).forEach(function (el) {\n [\n PRIMARY_COLS_LIST_ITEM_HOVERED,\n 'ag-item-highlight-top',\n 'ag-item-highlight-bottom'\n ].forEach(function (cls) {\n el.classList.remove(cls);\n });\n });\n this.lastHoveredColumnItem = null;\n };\n __decorate$2e([\n Autowired('columnModel')\n ], PrimaryColsListPanelItemDragFeature.prototype, \"columnModel\", void 0);\n __decorate$2e([\n Autowired('dragAndDropService')\n ], PrimaryColsListPanelItemDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$2e([\n PostConstruct\n ], PrimaryColsListPanelItemDragFeature.prototype, \"postConstruct\", null);\n return PrimaryColsListPanelItemDragFeature;\n}(BeanStub));\n\nvar __extends$3l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnComp = /** @class */ (function (_super) {\n __extends$3l(ToolPanelColumnComp, _super);\n function ToolPanelColumnComp(column, columnDept, allowDragging, groupsExist, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.column = column;\n _this.columnDept = columnDept;\n _this.allowDragging = allowDragging;\n _this.groupsExist = groupsExist;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n return _this;\n }\n ToolPanelColumnComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnToolPanel');\n var displayNameSanitised = _.escapeString(this.displayName);\n this.eLabel.innerHTML = displayNameSanitised;\n // if grouping, we add an extra level of indent, to cater for expand/contract icons we need to indent for\n var indent = this.columnDept;\n if (this.groupsExist) {\n this.addCssClass('ag-column-select-add-group-indent');\n }\n this.addCssClass(\"ag-column-select-indent-\" + indent);\n this.setupDragging();\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_VALUE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_PIVOT_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_ROW_GROUP_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_VISIBLE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'functionsReadOnly', this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.cbSelect, AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.onColumnStateChanged();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = CssClassApplier.getToolPanelClassesFromColDef(this.column.getColDef(), this.gridOptionsWrapper, this.column, null);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumn';\n res.colDef = this.column.getColDef();\n return res;\n };\n ToolPanelColumnComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, column = _a.column, gridOptionsWrapper = _a.gridOptionsWrapper;\n if (gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(column, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnComp.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.SPACE) {\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n }\n };\n ToolPanelColumnComp.prototype.onLabelClicked = function () {\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnComp.prototype.onChangeCommon = function (nextState) {\n // ignore lock visible columns\n if (this.cbSelect.isReadOnly()) {\n return;\n }\n this.refreshAriaLabel();\n // only want to action if the user clicked the checkbox, not if we are setting the checkbox because\n // of a change in the model\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.setColumn(this.column, nextState, 'toolPanelUi');\n };\n ToolPanelColumnComp.prototype.refreshAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnLabel = translate('ariaColumn', 'Column');\n var state = this.cbSelect.getValue() ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden');\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n _.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n _.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns();\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n defaultIconName: hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.column\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n },\n onGridEnter: function () {\n if (hideColumnOnExit) {\n // when dragged into the grid, mimic what happens when checkbox is enabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(true);\n }\n },\n onGridExit: function () {\n if (hideColumnOnExit) {\n // when dragged outside of the grid, mimic what happens when checkbox is disabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(false);\n }\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n ToolPanelColumnComp.prototype.onColumnStateChanged = function () {\n this.processingColumnStateChange = true;\n var isPivotMode = this.columnModel.isPivotMode();\n if (isPivotMode) {\n // if reducing, checkbox means column is one of pivot, value or group\n var anyFunctionActive = this.column.isAnyFunctionActive();\n this.cbSelect.setValue(anyFunctionActive);\n }\n else {\n // if not reducing, the checkbox tells us if column is visible or not\n this.cbSelect.setValue(this.column.isVisible());\n }\n var canBeToggled = true;\n var canBeDragged = true;\n if (isPivotMode) {\n // when in pivot mode, the item should be read only if:\n // a) gui is not allowed make any changes\n var functionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n // b) column is not allow any functions on it\n var noFunctionsAllowed = !this.column.isAnyFunctionAllowed();\n canBeToggled = !functionsReadOnly && !noFunctionsAllowed;\n canBeDragged = canBeToggled;\n }\n else {\n var _a = this.column.getColDef(), enableRowGroup = _a.enableRowGroup, enableValue = _a.enableValue, lockPosition = _a.lockPosition, suppressMovable = _a.suppressMovable, lockVisible = _a.lockVisible;\n var forceDraggable = !!enableRowGroup || !!enableValue;\n var disableDraggable = !!lockPosition || !!suppressMovable;\n canBeToggled = !lockVisible;\n canBeDragged = forceDraggable || !disableDraggable;\n }\n this.cbSelect.setReadOnly(!canBeToggled);\n this.eDragHandle.classList.toggle('ag-column-select-column-readonly', !canBeDragged);\n this.addOrRemoveCssClass('ag-column-select-column-readonly', !canBeDragged && !canBeToggled);\n var checkboxPassive = isPivotMode && this.gridOptionsWrapper.isFunctionsPassive();\n this.cbSelect.setPassive(checkboxPassive);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnComp.prototype.onSelectAllChanged = function (value) {\n if (value !== this.cbSelect.getValue()) {\n if (!this.cbSelect.isReadOnly()) {\n this.cbSelect.toggle();\n }\n }\n };\n ToolPanelColumnComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnComp.prototype.isExpandable = function () {\n return false;\n };\n ToolPanelColumnComp.prototype.setExpanded = function (value) {\n console.warn('AG Grid: can not expand a column item that does not represent a column group header');\n };\n ToolPanelColumnComp.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$2d([\n Autowired('columnModel')\n ], ToolPanelColumnComp.prototype, \"columnModel\", void 0);\n __decorate$2d([\n Autowired('dragAndDropService')\n ], ToolPanelColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2d([\n Autowired('modelItemUtils')\n ], ToolPanelColumnComp.prototype, \"modelItemUtils\", void 0);\n __decorate$2d([\n RefSelector('eLabel')\n ], ToolPanelColumnComp.prototype, \"eLabel\", void 0);\n __decorate$2d([\n RefSelector('cbSelect')\n ], ToolPanelColumnComp.prototype, \"cbSelect\", void 0);\n __decorate$2d([\n PostConstruct\n ], ToolPanelColumnComp.prototype, \"init\", null);\n return ToolPanelColumnComp;\n}(Component));\n\nvar __extends$3k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UIColumnModel = /** @class */ (function () {\n function UIColumnModel(items) {\n this.items = items;\n }\n UIColumnModel.prototype.getRowCount = function () {\n return this.items.length;\n };\n UIColumnModel.prototype.getRow = function (index) {\n return this.items[index];\n };\n return UIColumnModel;\n}());\nvar PRIMARY_COLS_LIST_PANEL_CLASS = 'ag-column-select-list';\nvar PrimaryColsListPanel = /** @class */ (function (_super) {\n __extends$3k(PrimaryColsListPanel, _super);\n function PrimaryColsListPanel() {\n var _this = _super.call(this, PrimaryColsListPanel.TEMPLATE) || this;\n _this.destroyColumnItemFuncs = [];\n return _this;\n }\n PrimaryColsListPanel.prototype.destroyColumnTree = function () {\n this.allColsTree = [];\n this.destroyColumnItemFuncs.forEach(function (f) { return f(); });\n this.destroyColumnItemFuncs = [];\n };\n PrimaryColsListPanel.prototype.init = function (params, allowDragging, eventType) {\n var _this = this;\n this.params = params;\n this.allowDragging = allowDragging;\n this.eventType = eventType;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.onColumnsChanged.bind(this));\n }\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnsChanged.bind(this));\n var eventsImpactingCheckedState = [\n Events.EVENT_COLUMN_PIVOT_CHANGED,\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n Events.EVENT_COLUMN_VALUE_CHANGED,\n Events.EVENT_COLUMN_VISIBLE,\n Events.EVENT_NEW_COLUMNS_LOADED\n ];\n eventsImpactingCheckedState.forEach(function (event) {\n // update header select all checkbox with current selection state\n _this.addManagedListener(_this.eventService, event, _this.fireSelectionChangedEvent.bind(_this));\n });\n this.expandGroupsByDefault = !this.params.contractColumnSelection;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnListName = translate('ariaColumnList', 'Column List');\n this.virtualList = this.createManagedBean(new VirtualList('column-select', 'tree', columnListName));\n this.appendChild(this.virtualList.getGui());\n this.virtualList.setComponentCreator(function (item, listItemElement) {\n _.setAriaLevel(listItemElement, (item.getDept() + 1));\n return _this.createComponentFromItem(item, listItemElement);\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n if (!params.suppressColumnMove && !this.gridOptionsWrapper.isSuppressMovableColumns()) {\n this.createManagedBean(new PrimaryColsListPanelItemDragFeature(this, this.virtualList));\n }\n };\n PrimaryColsListPanel.prototype.createComponentFromItem = function (item, listItemElement) {\n if (item.isGroup()) {\n var renderedGroup = new ToolPanelColumnGroupComp(item, this.allowDragging, this.eventType, listItemElement);\n this.getContext().createBean(renderedGroup);\n return renderedGroup;\n }\n var columnComp = new ToolPanelColumnComp(item.getColumn(), item.getDept(), this.allowDragging, this.groupsExist, listItemElement);\n this.getContext().createBean(columnComp);\n return columnComp;\n };\n PrimaryColsListPanel.prototype.onColumnsChanged = function () {\n var expandedStates = this.getExpandedStates();\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n if (shouldSyncColumnLayoutWithGrid) {\n this.buildTreeFromWhatGridIsDisplaying();\n }\n else {\n this.buildTreeFromProvidedColumnDefs();\n }\n this.setExpandedStates(expandedStates);\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.getDisplayedColsList = function () {\n return this.displayedColsList;\n };\n PrimaryColsListPanel.prototype.getExpandedStates = function () {\n if (!this.allColsTree) {\n return {};\n }\n var res = {};\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n res[colGroup.getId()] = item.isExpanded();\n }\n });\n return res;\n };\n PrimaryColsListPanel.prototype.setExpandedStates = function (states) {\n if (!this.allColsTree) {\n return;\n }\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n var expanded = states[colGroup.getId()];\n var groupExistedLastTime = expanded != null;\n if (groupExistedLastTime) {\n item.setExpanded(expanded);\n }\n }\n });\n };\n PrimaryColsListPanel.prototype.buildTreeFromWhatGridIsDisplaying = function () {\n this.colDefService.syncLayoutWithGrid(this.setColumnLayout.bind(this));\n };\n PrimaryColsListPanel.prototype.setColumnLayout = function (colDefs) {\n var columnTree = this.colDefService.createColumnTree(colDefs);\n this.buildListModel(columnTree);\n // using col defs to check if groups exist as it could be a custom layout\n this.groupsExist = colDefs.some(function (colDef) {\n return colDef && typeof colDef.children !== 'undefined';\n });\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n // add column / group comps to tool panel\n this.buildListModel(this.columnModel.getPrimaryColumnTree());\n this.groupsExist = this.columnModel.isPrimaryColumnGroupsPresent();\n };\n PrimaryColsListPanel.prototype.buildListModel = function (columnTree) {\n var _this = this;\n var columnExpandedListener = this.onColumnExpanded.bind(this);\n var addListeners = function (item) {\n item.addEventListener(ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n var removeFunc = item.removeEventListener.bind(item, ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n _this.destroyColumnItemFuncs.push(removeFunc);\n };\n var recursivelyBuild = function (tree, dept, parentList) {\n tree.forEach(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n createGroupItem(child, dept, parentList);\n }\n else {\n createColumnItem(child, dept, parentList);\n }\n });\n };\n var createGroupItem = function (columnGroup, dept, parentList) {\n var columnGroupDef = columnGroup.getColGroupDef();\n var skipThisGroup = columnGroupDef && columnGroupDef.suppressColumnsToolPanel;\n if (skipThisGroup) {\n return;\n }\n if (columnGroup.isPadding()) {\n recursivelyBuild(columnGroup.getChildren(), dept, parentList);\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, _this.eventType);\n var item = new ColumnModelItem(displayName, columnGroup, dept, true, _this.expandGroupsByDefault);\n parentList.push(item);\n addListeners(item);\n recursivelyBuild(columnGroup.getChildren(), dept + 1, item.getChildren());\n };\n var createColumnItem = function (column, dept, parentList) {\n var skipThisColumn = column.getColDef() && column.getColDef().suppressColumnsToolPanel;\n if (skipThisColumn) {\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForColumn(column, 'columnToolPanel');\n parentList.push(new ColumnModelItem(displayName, column, dept));\n };\n this.destroyColumnTree();\n recursivelyBuild(columnTree, 0, this.allColsTree);\n };\n PrimaryColsListPanel.prototype.onColumnExpanded = function () {\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.flattenAndFilterModel = function () {\n var _this = this;\n this.displayedColsList = [];\n var recursiveFunc = function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n _this.displayedColsList.push(item);\n if (item.isGroup() && item.isExpanded()) {\n item.getChildren().forEach(recursiveFunc);\n }\n };\n this.allColsTree.forEach(recursiveFunc);\n this.virtualList.setModel(new UIColumnModel(this.displayedColsList));\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.virtualList.refresh();\n if (focusedRow != null) {\n this.focusRowIfAlive(focusedRow);\n }\n this.notifyListeners();\n };\n PrimaryColsListPanel.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n window.setTimeout(function () {\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n PrimaryColsListPanel.prototype.forEachItem = function (callback) {\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n callback(item);\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n });\n };\n recursiveFunc(this.allColsTree);\n };\n PrimaryColsListPanel.prototype.doSetExpandedAll = function (value) {\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n item.setExpanded(value);\n }\n });\n };\n PrimaryColsListPanel.prototype.setGroupsExpanded = function (expand, groupIds) {\n if (!groupIds) {\n this.doSetExpandedAll(expand);\n return;\n }\n var expandedGroupIds = [];\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var groupId = item.getColumnGroup().getId();\n if (groupIds.indexOf(groupId) >= 0) {\n item.setExpanded(expand);\n expandedGroupIds.push(groupId);\n }\n });\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return !_.includes(expandedGroupIds, groupId); });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find group(s) for supplied groupIds:', unrecognisedGroupIds);\n }\n };\n PrimaryColsListPanel.prototype.getExpandState = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n if (item.isExpanded()) {\n expandedCount++;\n }\n else {\n notExpandedCount++;\n }\n });\n if (expandedCount > 0 && notExpandedCount > 0) {\n return ExpandState.INDETERMINATE;\n }\n if (notExpandedCount > 0) {\n return ExpandState.COLLAPSED;\n }\n return ExpandState.EXPANDED;\n };\n PrimaryColsListPanel.prototype.doSetSelectedAll = function (selectAllChecked) {\n this.modelItemUtils.selectAllChildren(this.allColsTree, selectAllChecked, this.eventType);\n };\n PrimaryColsListPanel.prototype.getSelectionState = function () {\n var checkedCount = 0;\n var uncheckedCount = 0;\n var pivotMode = this.columnModel.isPivotMode();\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n return;\n }\n if (!item.isPassesFilter()) {\n return;\n }\n var column = item.getColumn();\n var colDef = column.getColDef();\n var checked;\n if (pivotMode) {\n var noPivotModeOptionsAllowed = !column.isAllowPivot() && !column.isAllowRowGroup() && !column.isAllowValue();\n if (noPivotModeOptionsAllowed) {\n return;\n }\n checked = column.isValueActive() || column.isPivotActive() || column.isRowGroupActive();\n }\n else {\n if (colDef.lockVisible) {\n return;\n }\n checked = column.isVisible();\n }\n checked ? checkedCount++ : uncheckedCount++;\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return !(checkedCount === 0 || uncheckedCount > 0);\n };\n PrimaryColsListPanel.prototype.setFilterText = function (filterText) {\n this.filterText = _.exists(filterText) ? filterText.toLowerCase() : null;\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.markFilteredColumns = function () {\n var _this = this;\n var passesFilter = function (item) {\n if (!_.exists(_this.filterText)) {\n return true;\n }\n var displayName = item.getDisplayName();\n return displayName == null || displayName.toLowerCase().indexOf(_this.filterText) !== -1;\n };\n var recursivelyCheckFilter = function (item, parentPasses) {\n var atLeastOneChildPassed = false;\n if (item.isGroup()) {\n var groupPasses_1 = passesFilter(item);\n item.getChildren().forEach(function (child) {\n var childPasses = recursivelyCheckFilter(child, groupPasses_1 || parentPasses);\n if (childPasses) {\n atLeastOneChildPassed = childPasses;\n }\n });\n }\n var filterPasses = (parentPasses || atLeastOneChildPassed) ? true : passesFilter(item);\n item.setPassesFilter(filterPasses);\n return filterPasses;\n };\n this.allColsTree.forEach(function (item) { return recursivelyCheckFilter(item, false); });\n };\n PrimaryColsListPanel.prototype.notifyListeners = function () {\n this.fireGroupExpandedEvent();\n this.fireSelectionChangedEvent();\n };\n PrimaryColsListPanel.prototype.fireGroupExpandedEvent = function () {\n var expandState = this.getExpandState();\n this.dispatchEvent({ type: 'groupExpanded', state: expandState });\n };\n PrimaryColsListPanel.prototype.fireSelectionChangedEvent = function () {\n var selectionState = this.getSelectionState();\n this.dispatchEvent({ type: 'selectionChanged', state: selectionState });\n };\n PrimaryColsListPanel.TEMPLATE = \"
\";\n __decorate$2c([\n Autowired('columnModel')\n ], PrimaryColsListPanel.prototype, \"columnModel\", void 0);\n __decorate$2c([\n Autowired('toolPanelColDefService')\n ], PrimaryColsListPanel.prototype, \"colDefService\", void 0);\n __decorate$2c([\n Autowired('modelItemUtils')\n ], PrimaryColsListPanel.prototype, \"modelItemUtils\", void 0);\n __decorate$2c([\n PreDestroy\n ], PrimaryColsListPanel.prototype, \"destroyColumnTree\", null);\n return PrimaryColsListPanel;\n}(Component));\n\nvar __extends$3j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotModePanel = /** @class */ (function (_super) {\n __extends$3j(PivotModePanel, _super);\n function PivotModePanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotModePanel.prototype.createTemplate = function () {\n return /* html */ \"
\\n \\n
\";\n };\n PivotModePanel.prototype.init = function () {\n this.setTemplate(this.createTemplate());\n this.cbPivotMode.setValue(this.columnModel.isPivotMode());\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbPivotMode.setLabel(localeTextFunc('pivotMode', 'Pivot Mode'));\n this.addManagedListener(this.cbPivotMode, AgCheckbox.EVENT_CHANGED, this.onBtPivotMode.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n };\n PivotModePanel.prototype.onBtPivotMode = function () {\n var newValue = !!this.cbPivotMode.getValue();\n if (newValue !== this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(newValue, \"toolPanelUi\");\n var api = this.gridOptionsWrapper.getApi();\n if (api) {\n api.refreshHeader();\n }\n }\n };\n PivotModePanel.prototype.onPivotModeChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n this.cbPivotMode.setValue(pivotModeActive);\n };\n __decorate$2b([\n Autowired('columnModel')\n ], PivotModePanel.prototype, \"columnModel\", void 0);\n __decorate$2b([\n RefSelector('cbPivotMode')\n ], PivotModePanel.prototype, \"cbPivotMode\", void 0);\n __decorate$2b([\n PreConstruct\n ], PivotModePanel.prototype, \"init\", null);\n return PivotModePanel;\n}(Component));\n\nvar __extends$3i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationStage = /** @class */ (function (_super) {\n __extends$3i(AggregationStage, _super);\n function AggregationStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // it's possible to recompute the aggregate without doing the other parts\n // + gridApi.recomputeAggregates()\n AggregationStage.prototype.execute = function (params) {\n // if changed path is active, it means we came from a) change detection or b) transaction update.\n // for both of these, if no value columns are present, it means there is nothing to aggregate now\n // and there is no cleanup to be done (as value columns don't change between transactions or change\n // detections). if no value columns and no changed path, means we have to go through all nodes in\n // case we need to clean up agg data from before.\n var noValueColumns = _.missingOrEmpty(this.columnModel.getValueColumns());\n var noUserAgg = !this.gridOptionsWrapper.getGroupRowAggFunc();\n var changedPathActive = params.changedPath && params.changedPath.isActive();\n if (noValueColumns && noUserAgg && changedPathActive) {\n return;\n }\n var aggDetails = this.createAggDetails(params);\n this.recursivelyCreateAggData(aggDetails);\n };\n AggregationStage.prototype.createAggDetails = function (params) {\n var pivotActive = this.columnModel.isPivotActive();\n var measureColumns = this.columnModel.getValueColumns();\n var pivotColumns = pivotActive ? this.columnModel.getPivotColumns() : [];\n var aggDetails = {\n changedPath: params.changedPath,\n valueColumns: measureColumns,\n pivotColumns: pivotColumns\n };\n return aggDetails;\n };\n AggregationStage.prototype.recursivelyCreateAggData = function (aggDetails) {\n var _this = this;\n // update prop, in case changed since last time\n this.filteredOnly = !this.gridOptionsWrapper.isSuppressAggFilteredOnly();\n var callback = function (rowNode) {\n var hasNoChildren = !rowNode.hasChildren();\n if (hasNoChildren) {\n // this check is needed for TreeData, in case the node is no longer a child,\n // but it was a child previously.\n if (rowNode.aggData) {\n rowNode.setAggData(null);\n }\n // never agg data for leaf nodes\n return;\n }\n //Optionally prevent the aggregation at the root Node\n //https://ag-grid.atlassian.net/browse/AG-388\n var isRootNode = rowNode.level === -1;\n if (isRootNode) {\n var notPivoting = !_this.columnModel.isPivotMode();\n var suppressAggAtRootLevel = _this.gridOptionsWrapper.isSuppressAggAtRootLevel();\n if (suppressAggAtRootLevel && notPivoting) {\n return;\n }\n }\n _this.aggregateRowNode(rowNode, aggDetails);\n };\n aggDetails.changedPath.forEachChangedNodeDepthFirst(callback, true);\n };\n AggregationStage.prototype.aggregateRowNode = function (rowNode, aggDetails) {\n var measureColumnsMissing = aggDetails.valueColumns.length === 0;\n var pivotColumnsMissing = aggDetails.pivotColumns.length === 0;\n var userFunc = this.gridOptionsWrapper.getGroupRowAggFunc();\n var aggResult;\n if (userFunc) {\n var params = { nodes: rowNode.childrenAfterFilter };\n aggResult = userFunc(params);\n }\n else if (measureColumnsMissing) {\n aggResult = null;\n }\n else if (pivotColumnsMissing) {\n aggResult = this.aggregateRowNodeUsingValuesOnly(rowNode, aggDetails);\n }\n else {\n aggResult = this.aggregateRowNodeUsingValuesAndPivot(rowNode);\n }\n rowNode.setAggData(aggResult);\n // if we are grouping, then it's possible there is a sibling footer\n // to the group, so update the data here also if there is one\n if (rowNode.sibling) {\n rowNode.sibling.setAggData(aggResult);\n }\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesAndPivot = function (rowNode) {\n var _this = this;\n var result = {};\n var pivotColumnDefs = this.pivotStage.getPivotColumnDefs();\n // Step 1: process value columns\n pivotColumnDefs\n .filter(function (v) { return !_.exists(v.pivotTotalColumnIds); }) // only process pivot value columns\n .forEach(function (valueColDef) {\n var keys = valueColDef.pivotKeys || [];\n var values;\n var valueColumn = valueColDef.pivotValueColumn;\n var colId = valueColDef.colId;\n if (rowNode.leafGroup) {\n // lowest level group, get the values from the mapped set\n values = _this.getValuesFromMappedSet(rowNode.childrenMapped, keys, valueColumn);\n }\n else {\n // value columns and pivot columns, non-leaf group\n values = _this.getValuesPivotNonLeaf(rowNode, colId);\n }\n result[colId] = _this.aggregateValues(values, valueColumn.getAggFunc(), valueColumn, rowNode);\n });\n // Step 2: process total columns\n pivotColumnDefs\n .filter(function (v) { return _.exists(v.pivotTotalColumnIds); }) // only process pivot total columns\n .forEach(function (totalColDef) {\n var aggResults = [];\n var pivotValueColumn = totalColDef.pivotValueColumn, pivotTotalColumnIds = totalColDef.pivotTotalColumnIds, colId = totalColDef.colId;\n //retrieve results for colIds associated with this pivot total column\n if (!pivotTotalColumnIds || !pivotTotalColumnIds.length) {\n return;\n }\n pivotTotalColumnIds.forEach(function (currentColId) {\n aggResults.push(result[currentColId]);\n });\n result[colId] = _this.aggregateValues(aggResults, pivotValueColumn.getAggFunc(), pivotValueColumn, rowNode);\n });\n return result;\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesOnly = function (rowNode, aggDetails) {\n var _this = this;\n var result = {};\n var changedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : aggDetails.valueColumns;\n var notChangedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getNotValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : null;\n var values2d = this.getValuesNormal(rowNode, changedValueColumns);\n var oldValues = rowNode.aggData;\n changedValueColumns.forEach(function (valueColumn, index) {\n result[valueColumn.getId()] = _this.aggregateValues(values2d[index], valueColumn.getAggFunc(), valueColumn, rowNode);\n });\n if (notChangedValueColumns && oldValues) {\n notChangedValueColumns.forEach(function (valueColumn) {\n result[valueColumn.getId()] = oldValues[valueColumn.getId()];\n });\n }\n return result;\n };\n AggregationStage.prototype.getValuesPivotNonLeaf = function (rowNode, colId) {\n var values = [];\n rowNode.childrenAfterFilter.forEach(function (node) {\n var value = node.aggData[colId];\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesFromMappedSet = function (mappedSet, keys, valueColumn) {\n var _this = this;\n var mapPointer = mappedSet;\n keys.forEach(function (key) { return (mapPointer = mapPointer ? mapPointer[key] : null); });\n if (!mapPointer) {\n return [];\n }\n var values = [];\n mapPointer.forEach(function (rowNode) {\n var value = _this.valueService.getValue(valueColumn, rowNode);\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesNormal = function (rowNode, valueColumns) {\n // create 2d array, of all values for all valueColumns\n var values = [];\n valueColumns.forEach(function () { return values.push([]); });\n var valueColumnCount = valueColumns.length;\n var nodeList = this.filteredOnly ? rowNode.childrenAfterFilter : rowNode.childrenAfterGroup;\n var rowCount = nodeList.length;\n for (var i = 0; i < rowCount; i++) {\n var childNode = nodeList[i];\n for (var j = 0; j < valueColumnCount; j++) {\n var valueColumn = valueColumns[j];\n // if the row is a group, then it will only have an agg result value,\n // which means valueGetter is never used.\n var value = this.valueService.getValue(valueColumn, childNode);\n values[j].push(value);\n }\n }\n return values;\n };\n AggregationStage.prototype.aggregateValues = function (values, aggFuncOrString, column, rowNode) {\n var aggFunc = typeof aggFuncOrString === 'string' ?\n this.aggFuncService.getAggFunc(aggFuncOrString) :\n aggFuncOrString;\n if (typeof aggFunc !== 'function') {\n console.error(\"AG Grid: unrecognised aggregation function \" + aggFuncOrString);\n return null;\n }\n var aggFuncAny = aggFunc;\n var params = {\n values: values,\n column: column,\n colDef: column ? column.getColDef() : undefined,\n rowNode: rowNode,\n data: rowNode ? rowNode.data : undefined,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext(),\n }; // the \"as any\" is needed to allow the deprecation warning messages\n return aggFuncAny(params);\n };\n __decorate$2a([\n Autowired('columnModel')\n ], AggregationStage.prototype, \"columnModel\", void 0);\n __decorate$2a([\n Autowired('valueService')\n ], AggregationStage.prototype, \"valueService\", void 0);\n __decorate$2a([\n Autowired('pivotStage')\n ], AggregationStage.prototype, \"pivotStage\", void 0);\n __decorate$2a([\n Autowired('aggFuncService')\n ], AggregationStage.prototype, \"aggFuncService\", void 0);\n __decorate$2a([\n Autowired('gridApi')\n ], AggregationStage.prototype, \"gridApi\", void 0);\n __decorate$2a([\n Autowired('columnApi')\n ], AggregationStage.prototype, \"columnApi\", void 0);\n AggregationStage = __decorate$2a([\n Bean('aggregationStage')\n ], AggregationStage);\n return AggregationStage;\n}(BeanStub));\n\nvar BatchRemover = /** @class */ (function () {\n function BatchRemover() {\n this.allSets = {};\n this.allParents = [];\n }\n BatchRemover.prototype.removeFromChildrenAfterGroup = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromChildrenAfterGroup[child.id] = true;\n };\n BatchRemover.prototype.removeFromAllLeafChildren = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromAllLeafChildren[child.id] = true;\n };\n BatchRemover.prototype.getSet = function (parent) {\n if (!this.allSets[parent.id]) {\n this.allSets[parent.id] = {\n removeFromAllLeafChildren: {},\n removeFromChildrenAfterGroup: {}\n };\n this.allParents.push(parent);\n }\n return this.allSets[parent.id];\n };\n BatchRemover.prototype.getAllParents = function () {\n return this.allParents;\n };\n BatchRemover.prototype.flush = function () {\n var _this = this;\n this.allParents.forEach(function (parent) {\n var nodeDetails = _this.allSets[parent.id];\n parent.childrenAfterGroup = parent.childrenAfterGroup.filter(function (child) { return !nodeDetails.removeFromChildrenAfterGroup[child.id]; });\n parent.allLeafChildren = parent.allLeafChildren.filter(function (child) { return !nodeDetails.removeFromAllLeafChildren[child.id]; });\n parent.updateHasChildren();\n if (parent.sibling) {\n parent.sibling.childrenAfterGroup = parent.childrenAfterGroup;\n parent.sibling.allLeafChildren = parent.allLeafChildren;\n }\n });\n this.allSets = {};\n this.allParents.length = 0;\n };\n return BatchRemover;\n}());\n\nvar __extends$3h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$29 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$W = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$x = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$W(arguments[i]));\n return ar;\n};\nvar GroupStage = /** @class */ (function (_super) {\n __extends$3h(GroupStage, _super);\n function GroupStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we use a sequence variable so that each time we do a grouping, we don't\n // reuse the ids - otherwise the rowRenderer will confuse rowNodes between redraws\n // when it tries to animate between rows.\n _this.groupIdSequence = new NumberSequence();\n return _this;\n }\n GroupStage.prototype.postConstruct = function () {\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n if (this.usingTreeData) {\n this.getDataPath = this.gridOptionsWrapper.getDataPathFunc();\n }\n };\n GroupStage.prototype.execute = function (params) {\n var details = this.createGroupingDetails(params);\n if (details.transactions) {\n this.handleTransaction(details);\n }\n else {\n var afterColsChanged = params.afterColumnsChanged === true;\n this.shotgunResetEverything(details, afterColsChanged);\n }\n this.positionLeafsAboveGroups(params.changedPath);\n this.orderGroups(details.rootNode);\n this.selectableService.updateSelectableAfterGrouping(details.rootNode);\n };\n GroupStage.prototype.positionLeafsAboveGroups = function (changedPath) {\n // we don't do group sorting for tree data\n if (this.usingTreeData) {\n return;\n }\n changedPath.forEachChangedNodeDepthFirst(function (group) {\n if (group.childrenAfterGroup) {\n var leafNodes_1 = [];\n var groupNodes_1 = [];\n group.childrenAfterGroup.forEach(function (row) {\n var _a;\n if (!((_a = row.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n leafNodes_1.push(row);\n }\n else {\n groupNodes_1.push(row);\n }\n });\n group.childrenAfterGroup = __spread$x(leafNodes_1, groupNodes_1);\n }\n }, false);\n };\n GroupStage.prototype.createGroupingDetails = function (params) {\n var rowNode = params.rowNode, changedPath = params.changedPath, rowNodeTransactions = params.rowNodeTransactions, rowNodeOrder = params.rowNodeOrder;\n var groupedCols = this.usingTreeData ? null : this.columnModel.getRowGroupColumns();\n var details = {\n // someone complained that the parent attribute was causing some change detection\n // to break is some angular add-on - which i never used. taking the parent out breaks\n // a cyclic dependency, hence this flag got introduced.\n includeParents: !this.gridOptionsWrapper.isSuppressParentsInRowNodes(),\n expandByDefault: this.gridOptionsWrapper.getGroupDefaultExpanded(),\n groupedCols: groupedCols,\n rootNode: rowNode,\n pivotMode: this.columnModel.isPivotMode(),\n groupedColCount: this.usingTreeData || !groupedCols ? 0 : groupedCols.length,\n rowNodeOrder: rowNodeOrder,\n transactions: rowNodeTransactions,\n // if no transaction, then it's shotgun, changed path would be 'not active' at this point anyway\n changedPath: changedPath\n };\n return details;\n };\n GroupStage.prototype.handleTransaction = function (details) {\n var _this = this;\n details.transactions.forEach(function (tran) {\n // we don't allow batch remover for tree data as tree data uses Filler Nodes,\n // and creating/deleting filler nodes needs to be done alongside the node deleting\n // and moving. if we want to Batch Remover working with tree data then would need\n // to consider how Filler Nodes would be impacted (it's possible that it can be easily\n // modified to work, however for now I don't have the brain energy to work it all out).\n var batchRemover = !_this.usingTreeData ? new BatchRemover() : undefined;\n // the order here of [add, remove, update] needs to be the same as in ClientSideNodeManager,\n // as the order is important when a record with the same id is added and removed in the same\n // transaction.\n if (_.existsAndNotEmpty(tran.remove)) {\n _this.removeNodes(tran.remove, details, batchRemover);\n }\n if (_.existsAndNotEmpty(tran.update)) {\n _this.moveNodesInWrongPath(tran.update, details, batchRemover);\n }\n if (_.existsAndNotEmpty(tran.add)) {\n _this.insertNodes(tran.add, details, false);\n }\n // must flush here, and not allow another transaction to be applied,\n // as each transaction must finish leaving the data in a consistent state.\n if (batchRemover) {\n var parentsWithChildrenRemoved = batchRemover.getAllParents().slice();\n batchRemover.flush();\n _this.removeEmptyGroups(parentsWithChildrenRemoved, details);\n }\n });\n if (details.rowNodeOrder) {\n this.sortChildren(details);\n }\n };\n // this is used when doing delta updates, eg Redux, keeps nodes in right order\n GroupStage.prototype.sortChildren = function (details) {\n details.changedPath.forEachChangedNodeDepthFirst(function (node) {\n if (!node.childrenAfterGroup) {\n return;\n }\n var didSort = _.sortRowNodesByOrder(node.childrenAfterGroup, details.rowNodeOrder);\n if (didSort) {\n details.changedPath.addParentNode(node);\n }\n }, false, true);\n };\n GroupStage.prototype.orderGroups = function (rootNode) {\n // we don't do group sorting for tree data\n if (this.usingTreeData) {\n return;\n }\n var comparator = this.gridOptionsWrapper.getInitialGroupOrderComparator();\n if (_.exists(comparator)) {\n recursiveSort(rootNode);\n }\n function recursiveSort(rowNode) {\n var doSort = _.exists(rowNode.childrenAfterGroup) &&\n // we only want to sort groups, so we do not sort leafs (a leaf group has leafs as children)\n !rowNode.leafGroup;\n if (doSort) {\n rowNode.childrenAfterGroup.sort(function (nodeA, nodeB) { return comparator({ nodeA: nodeA, nodeB: nodeB }); });\n rowNode.childrenAfterGroup.forEach(function (childNode) { return recursiveSort(childNode); });\n }\n }\n };\n GroupStage.prototype.getExistingPathForNode = function (node, details) {\n var res = [];\n // when doing tree data, the node is part of the path,\n // but when doing grid grouping, the node is not part of the path so we start with the parent.\n var pointer = this.usingTreeData ? node : node.parent;\n while (pointer && pointer !== details.rootNode) {\n res.push({\n key: pointer.key,\n rowGroupColumn: pointer.rowGroupColumn,\n field: pointer.field\n });\n pointer = pointer.parent;\n }\n res.reverse();\n return res;\n };\n GroupStage.prototype.moveNodesInWrongPath = function (childNodes, details, batchRemover) {\n var _this = this;\n childNodes.forEach(function (childNode) {\n // we add node, even if parent has not changed, as the data could have\n // changed, hence aggregations will be wrong\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(childNode.parent);\n }\n var infoToKeyMapper = function (item) { return item.key; };\n var oldPath = _this.getExistingPathForNode(childNode, details).map(infoToKeyMapper);\n var newPath = _this.getGroupInfo(childNode, details).map(infoToKeyMapper);\n var nodeInCorrectPath = _.areEqual(oldPath, newPath);\n if (!nodeInCorrectPath) {\n _this.moveNode(childNode, details, batchRemover);\n }\n });\n };\n GroupStage.prototype.moveNode = function (childNode, details, batchRemover) {\n this.removeNodesInStages([childNode], details, batchRemover);\n this.insertOneNode(childNode, details, true);\n // hack - if we didn't do this, then renaming a tree item (ie changing rowNode.key) wouldn't get\n // refreshed into the gui.\n // this is needed to kick off the event that rowComp listens to for refresh. this in turn\n // then will get each cell in the row to refresh - which is what we need as we don't know which\n // columns will be displaying the rowNode.key info.\n childNode.setData(childNode.data);\n // we add both old and new parents to changed path, as both will need to be refreshed.\n // we already added the old parent (in calling method), so just add the new parent here\n if (details.changedPath.isActive()) {\n var newParent = childNode.parent;\n details.changedPath.addParentNode(newParent);\n }\n };\n GroupStage.prototype.removeNodes = function (leafRowNodes, details, batchRemover) {\n this.removeNodesInStages(leafRowNodes, details, batchRemover);\n if (details.changedPath.isActive()) {\n leafRowNodes.forEach(function (rowNode) { return details.changedPath.addParentNode(rowNode.parent); });\n }\n };\n GroupStage.prototype.removeNodesInStages = function (leafRowNodes, details, batchRemover) {\n this.removeNodesFromParents(leafRowNodes, details, batchRemover);\n if (this.usingTreeData) {\n this.postRemoveCreateFillerNodes(leafRowNodes, details);\n // When not TreeData, then removeEmptyGroups is called just before the BatchRemover is flushed.\n // However for TreeData, there is no BatchRemover, so we have to call removeEmptyGroups here.\n var nodeParents = leafRowNodes.map(function (n) { return n.parent; });\n this.removeEmptyGroups(nodeParents, details);\n }\n };\n GroupStage.prototype.forEachParentGroup = function (details, group, callback) {\n var pointer = group;\n while (pointer && pointer !== details.rootNode) {\n callback(pointer);\n pointer = pointer.parent;\n }\n };\n GroupStage.prototype.removeNodesFromParents = function (nodesToRemove, details, provided) {\n var _this = this;\n // this method can be called with BatchRemover as optional. if it is missed, we created a local version\n // and flush it at the end. if one is provided, we add to the provided one and it gets flushed elsewhere.\n var batchRemoverIsLocal = provided == null;\n var batchRemoverToUse = provided ? provided : new BatchRemover();\n nodesToRemove.forEach(function (nodeToRemove) {\n _this.removeFromParent(nodeToRemove, batchRemoverToUse);\n // remove from allLeafChildren. we clear down all parents EXCEPT the Root Node, as\n // the ClientSideNodeManager is responsible for the Root Node.\n _this.forEachParentGroup(details, nodeToRemove.parent, function (parentNode) {\n batchRemoverToUse.removeFromAllLeafChildren(parentNode, nodeToRemove);\n });\n });\n if (batchRemoverIsLocal) {\n batchRemoverToUse.flush();\n }\n };\n GroupStage.prototype.postRemoveCreateFillerNodes = function (nodesToRemove, details) {\n var _this = this;\n nodesToRemove.forEach(function (nodeToRemove) {\n // if not group, and children are present, need to move children to a group.\n // otherwise if no children, we can just remove without replacing.\n var replaceWithGroup = nodeToRemove.hasChildren();\n if (replaceWithGroup) {\n var oldPath = _this.getExistingPathForNode(nodeToRemove, details);\n // because we just removed the userGroup, this will always return new support group\n var newGroupNode_1 = _this.findParentForNode(nodeToRemove, oldPath, details);\n // these properties are the ones that will be incorrect in the newly created group,\n // so copy them from the old childNode\n newGroupNode_1.expanded = nodeToRemove.expanded;\n newGroupNode_1.allLeafChildren = nodeToRemove.allLeafChildren;\n newGroupNode_1.childrenAfterGroup = nodeToRemove.childrenAfterGroup;\n newGroupNode_1.childrenMapped = nodeToRemove.childrenMapped;\n newGroupNode_1.updateHasChildren();\n newGroupNode_1.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = newGroupNode_1; });\n }\n });\n };\n GroupStage.prototype.removeEmptyGroups = function (possibleEmptyGroups, details) {\n var _this = this;\n // we do this multiple times, as when we remove groups, that means the parent of just removed\n // group can then be empty. to get around this, if we remove, then we check everything again for\n // newly emptied groups. the max number of times this will execute is the depth of the group tree.\n var checkAgain = true;\n var groupShouldBeRemoved = function (rowNode) {\n // because of the while loop below, it's possible we already moved the node,\n // so double check before trying to remove again.\n var mapKey = _this.getChildrenMappedKey(rowNode.key, rowNode.rowGroupColumn);\n var parentRowNode = rowNode.parent;\n var groupAlreadyRemoved = (parentRowNode && parentRowNode.childrenMapped) ?\n !parentRowNode.childrenMapped[mapKey] : true;\n if (groupAlreadyRemoved) {\n // if not linked, then group was already removed\n return false;\n }\n // if still not removed, then we remove if this group is empty\n return !!rowNode.isEmptyRowGroupNode();\n };\n var _loop_1 = function () {\n checkAgain = false;\n var batchRemover = new BatchRemover();\n possibleEmptyGroups.forEach(function (possibleEmptyGroup) {\n // remove empty groups\n _this.forEachParentGroup(details, possibleEmptyGroup, function (rowNode) {\n if (groupShouldBeRemoved(rowNode)) {\n checkAgain = true;\n _this.removeFromParent(rowNode, batchRemover);\n // we remove selection on filler nodes here, as the selection would not be removed\n // from the RowNodeManager, as filler nodes don't exist on the RowNodeManager\n rowNode.setSelected(false);\n }\n });\n });\n batchRemover.flush();\n };\n while (checkAgain) {\n _loop_1();\n }\n };\n // removes the node from the parent by:\n // a) removing from childrenAfterGroup (using batchRemover if present, otherwise immediately)\n // b) removing from childrenMapped (immediately)\n // c) setRowTop(null) - as the rowRenderer uses this to know the RowNode is no longer needed\n // d) setRowIndex(null) - as the rowNode will no longer be displayed.\n GroupStage.prototype.removeFromParent = function (child, batchRemover) {\n if (child.parent) {\n if (batchRemover) {\n batchRemover.removeFromChildrenAfterGroup(child.parent, child);\n }\n else {\n _.removeFromArray(child.parent.childrenAfterGroup, child);\n child.parent.updateHasChildren();\n }\n }\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (child.parent && child.parent.childrenMapped) {\n child.parent.childrenMapped[mapKey] = undefined;\n }\n // this is important for transition, see rowComp removeFirstPassFuncs. when doing animation and\n // remove, if rowTop is still present, the rowComp thinks it's just moved position.\n child.setRowTop(null);\n child.setRowIndex(null);\n };\n GroupStage.prototype.addToParent = function (child, parent) {\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (parent) {\n var children = parent.childrenMapped != null;\n if (children) {\n parent.childrenMapped[mapKey] = child;\n }\n parent.childrenAfterGroup.push(child);\n parent.updateHasChildren();\n }\n };\n GroupStage.prototype.areGroupColsEqual = function (d1, d2) {\n if (d1 == null || d2 == null || d1.pivotMode !== d2.pivotMode) {\n return false;\n }\n return _.areEqual(d1.groupedCols, d2.groupedCols);\n };\n GroupStage.prototype.checkAllGroupDataAfterColsChanged = function (details) {\n var _this = this;\n var recurse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var isLeafNode = !_this.usingTreeData && !rowNode.group;\n if (isLeafNode) {\n return;\n }\n var groupInfo = {\n field: rowNode.field,\n key: rowNode.key,\n rowGroupColumn: rowNode.rowGroupColumn\n };\n _this.setGroupData(rowNode, groupInfo);\n recurse(rowNode.childrenAfterGroup);\n });\n };\n recurse(details.rootNode.childrenAfterGroup);\n };\n GroupStage.prototype.shotgunResetEverything = function (details, afterColumnsChanged) {\n if (this.noChangeInGroupingColumns(details, afterColumnsChanged)) {\n return;\n }\n // groups are about to get disposed, so need to deselect any that are selected\n this.selectionService.removeGroupsFromSelection();\n var rootNode = details.rootNode, groupedCols = details.groupedCols;\n // because we are not creating the root node each time, we have the logic\n // here to change leafGroup once.\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n rootNode.leafGroup = this.usingTreeData ? false : groupedCols.length === 0;\n // we are doing everything from scratch, so reset childrenAfterGroup and childrenMapped from the rootNode\n rootNode.childrenAfterGroup = [];\n rootNode.childrenMapped = {};\n rootNode.updateHasChildren();\n var sibling = rootNode.sibling;\n if (sibling) {\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenMapped = rootNode.childrenMapped;\n }\n this.insertNodes(rootNode.allLeafChildren, details, false);\n };\n GroupStage.prototype.noChangeInGroupingColumns = function (details, afterColumnsChanged) {\n var noFurtherProcessingNeeded = false;\n var groupDisplayColumns = this.columnModel.getGroupDisplayColumns();\n var newGroupDisplayColIds = groupDisplayColumns ?\n groupDisplayColumns.map(function (c) { return c.getId(); }).join('-') : '';\n if (afterColumnsChanged) {\n // we only need to redo grouping if doing normal grouping (ie not tree data)\n // and the group cols have changed.\n noFurtherProcessingNeeded = this.usingTreeData || this.areGroupColsEqual(details, this.oldGroupingDetails);\n // if the group display cols have changed, then we need to update rowNode.groupData\n // (regardless of tree data or row grouping)\n if (this.oldGroupDisplayColIds !== newGroupDisplayColIds) {\n this.checkAllGroupDataAfterColsChanged(details);\n }\n }\n this.oldGroupingDetails = details;\n this.oldGroupDisplayColIds = newGroupDisplayColIds;\n return noFurtherProcessingNeeded;\n };\n GroupStage.prototype.insertNodes = function (newRowNodes, details, isMove) {\n var _this = this;\n newRowNodes.forEach(function (rowNode) {\n _this.insertOneNode(rowNode, details, isMove);\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(rowNode.parent);\n }\n });\n };\n GroupStage.prototype.insertOneNode = function (childNode, details, isMove) {\n var path = this.getGroupInfo(childNode, details);\n var parentGroup = this.findParentForNode(childNode, path, details);\n if (!parentGroup.group) {\n console.warn(\"AG Grid: duplicate group keys for row data, keys should be unique\", [parentGroup.data, childNode.data]);\n }\n if (this.usingTreeData) {\n this.swapGroupWithUserNode(parentGroup, childNode, isMove);\n }\n else {\n childNode.parent = parentGroup;\n childNode.level = path.length;\n parentGroup.childrenAfterGroup.push(childNode);\n parentGroup.updateHasChildren();\n }\n };\n GroupStage.prototype.findParentForNode = function (childNode, path, details) {\n var _this = this;\n var nextNode = details.rootNode;\n path.forEach(function (groupInfo, level) {\n nextNode = _this.getOrCreateNextNode(nextNode, groupInfo, level, details);\n // node gets added to all group nodes.\n // note: we do not add to rootNode here, as the rootNode is the master list of rowNodes\n nextNode.allLeafChildren.push(childNode);\n });\n return nextNode;\n };\n GroupStage.prototype.swapGroupWithUserNode = function (fillerGroup, userGroup, isMove) {\n userGroup.parent = fillerGroup.parent;\n userGroup.key = fillerGroup.key;\n userGroup.field = fillerGroup.field;\n userGroup.groupData = fillerGroup.groupData;\n userGroup.level = fillerGroup.level;\n // AG-3441 - preserve the existing expanded status of the node if we're moving it, so that\n // you can drag a sub tree from one parent to another without changing its expansion\n if (!isMove) {\n userGroup.expanded = fillerGroup.expanded;\n }\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n userGroup.leafGroup = fillerGroup.leafGroup;\n // always null for userGroups, as row grouping is not allowed when doing tree data\n userGroup.rowGroupIndex = fillerGroup.rowGroupIndex;\n userGroup.allLeafChildren = fillerGroup.allLeafChildren;\n userGroup.childrenAfterGroup = fillerGroup.childrenAfterGroup;\n userGroup.childrenMapped = fillerGroup.childrenMapped;\n userGroup.updateHasChildren();\n this.removeFromParent(fillerGroup);\n userGroup.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = userGroup; });\n this.addToParent(userGroup, fillerGroup.parent);\n };\n GroupStage.prototype.getOrCreateNextNode = function (parentGroup, groupInfo, level, details) {\n var key = this.getChildrenMappedKey(groupInfo.key, groupInfo.rowGroupColumn);\n var nextNode = parentGroup.childrenMapped ? parentGroup.childrenMapped[key] : undefined;\n if (!nextNode) {\n nextNode = this.createGroup(groupInfo, parentGroup, level, details);\n // attach the new group to the parent\n this.addToParent(nextNode, parentGroup);\n }\n return nextNode;\n };\n GroupStage.prototype.createGroup = function (groupInfo, parent, level, details) {\n var groupNode = new RowNode(this.beans);\n groupNode.group = true;\n groupNode.field = groupInfo.field;\n groupNode.rowGroupColumn = groupInfo.rowGroupColumn;\n this.setGroupData(groupNode, groupInfo);\n // we put 'row-group-' before the group id, so it doesn't clash with standard row id's. we also use 't-' and 'b-'\n // for top pinned and bottom pinned rows.\n groupNode.id = RowNode.ID_PREFIX_ROW_GROUP + this.groupIdSequence.next();\n groupNode.key = groupInfo.key;\n groupNode.level = level;\n groupNode.leafGroup = this.usingTreeData ? false : level === (details.groupedColCount - 1);\n groupNode.allLeafChildren = [];\n // why is this done here? we are not updating the children count as we go,\n // i suspect this is updated in the filter stage\n groupNode.setAllChildrenCount(0);\n groupNode.rowGroupIndex = this.usingTreeData ? null : level;\n groupNode.childrenAfterGroup = [];\n groupNode.childrenMapped = {};\n groupNode.updateHasChildren();\n groupNode.parent = details.includeParents ? parent : null;\n this.setExpandedInitialValue(details, groupNode);\n return groupNode;\n };\n GroupStage.prototype.setGroupData = function (groupNode, groupInfo) {\n var _this = this;\n groupNode.groupData = {};\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (col) {\n // newGroup.rowGroupColumn=null when working off GroupInfo, and we always display the group in the group column\n // if rowGroupColumn is present, then it's grid row grouping and we only include if configuration says so\n var displayGroupForCol = _this.usingTreeData || (groupNode.rowGroupColumn ? col.isRowGroupDisplayed(groupNode.rowGroupColumn.getId()) : false);\n if (displayGroupForCol) {\n groupNode.groupData[col.getColId()] = groupInfo.key;\n }\n });\n };\n GroupStage.prototype.getChildrenMappedKey = function (key, rowGroupColumn) {\n if (rowGroupColumn) {\n // grouping by columns\n return rowGroupColumn.getId() + '-' + key;\n }\n // tree data - we don't have rowGroupColumns\n return key;\n };\n GroupStage.prototype.setExpandedInitialValue = function (details, groupNode) {\n // if pivoting the leaf group is never expanded as we do not show leaf rows\n if (details.pivotMode && groupNode.leafGroup) {\n groupNode.expanded = false;\n return;\n }\n // use callback if exists\n var userCallback = this.gridOptionsWrapper.getIsGroupOpenByDefaultFunc();\n if (userCallback) {\n var params = {\n rowNode: groupNode,\n field: groupNode.field,\n key: groupNode.key,\n level: groupNode.level,\n rowGroupColumn: groupNode.rowGroupColumn\n };\n groupNode.expanded = userCallback(params) == true;\n return;\n }\n // use expandByDefault if exists\n var expandByDefault = details.expandByDefault;\n if (details.expandByDefault === -1) {\n groupNode.expanded = true;\n return;\n }\n // otherwise\n groupNode.expanded = groupNode.level < expandByDefault;\n };\n GroupStage.prototype.getGroupInfo = function (rowNode, details) {\n if (this.usingTreeData) {\n return this.getGroupInfoFromCallback(rowNode);\n }\n return this.getGroupInfoFromGroupColumns(rowNode, details);\n };\n GroupStage.prototype.getGroupInfoFromCallback = function (rowNode) {\n var keys = this.getDataPath ? this.getDataPath(rowNode.data) : null;\n if (keys === null || keys === undefined || keys.length === 0) {\n _.doOnce(function () { return console.warn(\"AG Grid: getDataPath() should not return an empty path for data\", rowNode.data); }, 'groupStage.getGroupInfoFromCallback');\n }\n var groupInfoMapper = function (key) { return ({ key: key, field: null, rowGroupColumn: null }); };\n return keys ? keys.map(groupInfoMapper) : [];\n };\n GroupStage.prototype.getGroupInfoFromGroupColumns = function (rowNode, details) {\n var _this = this;\n var res = [];\n details.groupedCols.forEach(function (groupCol) {\n var key = _this.valueService.getKeyForNode(groupCol, rowNode);\n var keyExists = key !== null && key !== undefined;\n // unbalanced tree and pivot mode don't work together - not because of the grid, it doesn't make\n // mathematical sense as you are building up a cube. so if pivot mode, we put in a blank key where missing.\n // this keeps the tree balanced and hence can be represented as a group.\n if (details.pivotMode && !keyExists) {\n key = ' ';\n keyExists = true;\n }\n if (keyExists) {\n var item = {\n key: key,\n field: groupCol.getColDef().field,\n rowGroupColumn: groupCol\n };\n res.push(item);\n }\n });\n return res;\n };\n __decorate$29([\n Autowired('columnModel')\n ], GroupStage.prototype, \"columnModel\", void 0);\n __decorate$29([\n Autowired('selectableService')\n ], GroupStage.prototype, \"selectableService\", void 0);\n __decorate$29([\n Autowired('valueService')\n ], GroupStage.prototype, \"valueService\", void 0);\n __decorate$29([\n Autowired('beans')\n ], GroupStage.prototype, \"beans\", void 0);\n __decorate$29([\n Autowired('selectionService')\n ], GroupStage.prototype, \"selectionService\", void 0);\n __decorate$29([\n PostConstruct\n ], GroupStage.prototype, \"postConstruct\", null);\n GroupStage = __decorate$29([\n Bean('groupStage')\n ], GroupStage);\n return GroupStage;\n}(BeanStub));\n\nvar __extends$3g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$H = (undefined && undefined.__assign) || function () {\n __assign$H = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$H.apply(this, arguments);\n};\nvar __decorate$28 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$V = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$w = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$V(arguments[i]));\n return ar;\n};\nvar PivotColDefService = /** @class */ (function (_super) {\n __extends$3g(PivotColDefService, _super);\n function PivotColDefService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotColDefService_1 = PivotColDefService;\n PivotColDefService.prototype.createPivotColumnDefs = function (uniqueValues) {\n // this is passed to the columnModel, to configure the columns and groups we show\n var pivotColumns = this.columnModel.getPivotColumns();\n var valueColumns = this.columnModel.getValueColumns();\n var levelsDeep = pivotColumns.length;\n var pivotColumnGroupDefs = this.recursiveBuildGroup(0, uniqueValues, [], levelsDeep, pivotColumns);\n function extractColDefs(input, arr) {\n if (arr === void 0) { arr = []; }\n input.forEach(function (def) {\n if (def.children !== undefined) {\n extractColDefs(def.children, arr);\n }\n else {\n arr.push(def);\n }\n });\n return arr;\n }\n var pivotColumnDefs = extractColDefs(pivotColumnGroupDefs);\n // additional columns that contain the aggregated total for each value column per row\n this.addRowGroupTotals(pivotColumnGroupDefs, pivotColumnDefs, valueColumns);\n // additional group columns that contain child totals for each collapsed child column / group\n this.addExpandablePivotGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // additional group columns that contain an aggregated total across all child columns\n this.addPivotTotalsToGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // we clone, so the colDefs in pivotColumnsGroupDefs and pivotColumnDefs are not shared. this is so that\n // any changes the user makes (via processSecondaryColumnDefinitions) don't impact the internal aggregations,\n // as these use the col defs also\n var pivotColumnDefsClone = pivotColumnDefs.map(function (colDef) { return _.cloneObject(colDef); });\n return {\n pivotColumnGroupDefs: pivotColumnGroupDefs,\n pivotColumnDefs: pivotColumnDefsClone\n };\n };\n PivotColDefService.prototype.recursiveBuildGroup = function (index, uniqueValue, pivotKeys, maxDepth, primaryPivotColumns) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (index >= maxDepth) { // Base case - build the measure columns\n return this.buildMeasureCols(pivotKeys);\n }\n // sort by either user provided comparator, or our own one\n var primaryPivotColumnDefs = primaryPivotColumns[index].getColDef();\n var comparator = this.headerNameComparator.bind(this, primaryPivotColumnDefs.pivotComparator);\n // Base case for the compact layout, instead of recursing build the last layer of groups as measure columns instead\n if (measureColumns.length === 1 && this.gridOptionsWrapper.isRemovePivotHeaderRowWhenSingleValueColumn() && index === maxDepth - 1) {\n var leafCols_1 = [];\n _.iterateObject(uniqueValue, function (key) {\n var newPivotKeys = __spread$w(pivotKeys, [key]);\n leafCols_1.push(__assign$H(__assign$H({}, _this.createColDef(measureColumns[0], key, newPivotKeys)), { columnGroupShow: 'open' }));\n });\n leafCols_1.sort(comparator);\n return leafCols_1;\n }\n // Recursive case\n var groups = [];\n _.iterateObject(uniqueValue, function (key, value) {\n var newPivotKeys = __spread$w(pivotKeys, [key]);\n groups.push({\n children: _this.recursiveBuildGroup(index + 1, value, newPivotKeys, maxDepth, primaryPivotColumns),\n headerName: key,\n pivotKeys: newPivotKeys,\n columnGroupShow: 'open',\n groupId: _this.generateColumnGroupId(newPivotKeys),\n });\n });\n groups.sort(comparator);\n return groups;\n };\n PivotColDefService.prototype.buildMeasureCols = function (pivotKeys) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (measureColumns.length === 0) {\n // if no value columns selected, then we insert one blank column, so the user at least sees columns\n // rendered. otherwise the grid would render with no columns (just empty groups) which would give the\n // impression that the grid is broken\n return [this.createColDef(null, '-', pivotKeys)];\n }\n return measureColumns.map(function (measureCol) {\n var columnName = _this.columnModel.getDisplayNameForColumn(measureCol, 'header');\n return __assign$H(__assign$H({}, _this.createColDef(measureCol, columnName, pivotKeys)), { columnGroupShow: 'open' });\n });\n };\n PivotColDefService.prototype.addExpandablePivotGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (this.gridOptionsWrapper.isSuppressExpandablePivotGroups() ||\n this.gridOptionsWrapper.getPivotColumnGroupTotals()) {\n return;\n }\n var recursivelyAddSubTotals = function (groupDef, currentPivotColumnDefs, acc) {\n var group = groupDef;\n if (group.children) {\n var childAcc_1 = new Map();\n group.children.forEach(function (grp) {\n recursivelyAddSubTotals(grp, currentPivotColumnDefs, childAcc_1);\n });\n var firstGroup_1 = !group.children.some(function (child) { return child.children; });\n _this.columnModel.getValueColumns().forEach(function (valueColumn) {\n var columnName = _this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n var totalColDef = _this.createColDef(valueColumn, columnName, groupDef.pivotKeys);\n totalColDef.pivotTotalColumnIds = childAcc_1.get(valueColumn.getColId());\n totalColDef.columnGroupShow = 'closed';\n totalColDef.aggFunc = valueColumn.getAggFunc();\n if (!firstGroup_1) {\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n children.push(totalColDef);\n currentPivotColumnDefs.push(totalColDef);\n }\n });\n _this.merge(acc, childAcc_1);\n }\n else {\n var def = groupDef;\n // check that value column exists, i.e. aggFunc is supplied\n if (!def.pivotValueColumn) {\n return;\n }\n var pivotValueColId = def.pivotValueColumn.getColId();\n var arr = acc.has(pivotValueColId) ? acc.get(pivotValueColId) : [];\n arr.push(def.colId);\n acc.set(pivotValueColId, arr);\n }\n };\n pivotColumnGroupDefs.forEach(function (groupDef) {\n recursivelyAddSubTotals(groupDef, pivotColumnDefs, new Map());\n });\n };\n PivotColDefService.prototype.addPivotTotalsToGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (!this.gridOptionsWrapper.getPivotColumnGroupTotals()) {\n return;\n }\n var insertAfter = this.gridOptionsWrapper.getPivotColumnGroupTotals() === 'after';\n var valueCols = this.columnModel.getValueColumns();\n var aggFuncs = valueCols.map(function (valueCol) { return valueCol.getAggFunc(); });\n // don't add pivot totals if there is less than 1 aggFunc or they are not all the same\n if (!aggFuncs || aggFuncs.length < 1 || !this.sameAggFuncs(aggFuncs)) {\n // console.warn('AG Grid: aborting adding pivot total columns - value columns require same aggFunc');\n return;\n }\n // arbitrarily select a value column to use as a template for pivot columns\n var valueColumn = valueCols[0];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n _this.recursivelyAddPivotTotal(groupDef, pivotColumnDefs, valueColumn, insertAfter);\n });\n };\n PivotColDefService.prototype.recursivelyAddPivotTotal = function (groupDef, pivotColumnDefs, valueColumn, insertAfter) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var def = groupDef;\n return def.colId ? [def.colId] : null;\n }\n var colIds = [];\n // need to recurse children first to obtain colIds used in the aggregation stage\n group.children\n .forEach(function (grp) {\n var childColIds = _this.recursivelyAddPivotTotal(grp, pivotColumnDefs, valueColumn, insertAfter);\n if (childColIds) {\n colIds = colIds.concat(childColIds);\n }\n });\n // only add total colDef if there is more than 1 child node\n if (group.children.length > 1) {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var headerName = localeTextFunc('pivotColumnGroupTotals', 'Total');\n //create total colDef using an arbitrary value column as a template\n var totalColDef = this.createColDef(valueColumn, headerName, groupDef.pivotKeys, true);\n totalColDef.pivotTotalColumnIds = colIds;\n totalColDef.aggFunc = valueColumn.getAggFunc();\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n insertAfter ? children.push(totalColDef) : children.unshift(totalColDef);\n pivotColumnDefs.push(totalColDef);\n }\n return colIds;\n };\n PivotColDefService.prototype.addRowGroupTotals = function (pivotColumnGroupDefs, pivotColumnDefs, valueColumns) {\n var _this = this;\n if (!this.gridOptionsWrapper.getPivotRowTotals()) {\n return;\n }\n var insertAfter = this.gridOptionsWrapper.getPivotRowTotals() === 'after';\n // order of row group totals depends on position\n var valueCols = insertAfter ? valueColumns.slice() : valueColumns.slice().reverse();\n var _loop_1 = function (i) {\n var valueCol = valueCols[i];\n var colIds = [];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n colIds = colIds.concat(_this.extractColIdsForValueColumn(groupDef, valueCol));\n });\n var withGroup = valueCols.length > 1 || !this_1.gridOptionsWrapper.isRemovePivotHeaderRowWhenSingleValueColumn();\n this_1.createRowGroupTotal(pivotColumnGroupDefs, pivotColumnDefs, valueCol, colIds, insertAfter, withGroup);\n };\n var this_1 = this;\n for (var i = 0; i < valueCols.length; i++) {\n _loop_1(i);\n }\n };\n PivotColDefService.prototype.extractColIdsForValueColumn = function (groupDef, valueColumn) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var colDef = group;\n return colDef.pivotValueColumn === valueColumn && colDef.colId ? [colDef.colId] : [];\n }\n var colIds = [];\n group.children\n .forEach(function (grp) {\n _this.extractColIdsForValueColumn(grp, valueColumn);\n var childColIds = _this.extractColIdsForValueColumn(grp, valueColumn);\n colIds = colIds.concat(childColIds);\n });\n return colIds;\n };\n PivotColDefService.prototype.createRowGroupTotal = function (parentChildren, pivotColumnDefs, valueColumn, colIds, insertAfter, addGroup) {\n var measureColumns = this.columnModel.getValueColumns();\n var colDef;\n if (measureColumns.length === 0) {\n colDef = this.createColDef(null, '-', []);\n }\n else {\n var columnName = this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n colDef = this.createColDef(valueColumn, columnName, []);\n colDef.pivotTotalColumnIds = colIds;\n }\n colDef.colId = PivotColDefService_1.PIVOT_ROW_TOTAL_PREFIX + colDef.colId;\n pivotColumnDefs.push(colDef);\n var valueGroup = addGroup ? {\n children: [colDef],\n pivotKeys: [],\n groupId: PivotColDefService_1.PIVOT_ROW_TOTAL_PREFIX + \"_pivotGroup_\" + valueColumn.getColId(),\n } : colDef;\n insertAfter ? parentChildren.push(valueGroup) : parentChildren.unshift(valueGroup);\n };\n PivotColDefService.prototype.createColDef = function (valueColumn, headerName, pivotKeys, totalColumn) {\n if (totalColumn === void 0) { totalColumn = false; }\n var colDef = {};\n // This is null when there are no measure columns and we're creating placeholder columns\n if (valueColumn) {\n var colDefToCopy = valueColumn.getColDef();\n Object.assign(colDef, colDefToCopy);\n // even if original column was hidden, we always show the pivot value column, otherwise it would be\n // very confusing for people thinking the pivot is broken\n colDef.hide = false;\n }\n colDef.headerName = headerName;\n colDef.colId = this.generateColumnId(pivotKeys || [], valueColumn && !totalColumn ? valueColumn.getColId() : '');\n // pivot columns repeat over field, so it makes sense to use the unique id instead. For example if you want to\n // assign values to pinned bottom rows using setPinnedBottomRowData the value service will use this colId.\n colDef.field = colDef.colId;\n // this is to support using pinned rows, normally the data will be extracted from the aggData object using the colId\n // however pinned rows still access the data object by field, this prevents values with dots from being treated as complex objects\n colDef.valueGetter = function (params) { var _a; return (_a = params.data) === null || _a === void 0 ? void 0 : _a[params.colDef.field]; };\n colDef.pivotKeys = pivotKeys;\n colDef.pivotValueColumn = valueColumn;\n if (colDef.filter === true) {\n colDef.filter = 'agNumberColumnFilter';\n }\n return colDef;\n };\n PivotColDefService.prototype.sameAggFuncs = function (aggFuncs) {\n if (aggFuncs.length == 1) {\n return true;\n }\n //check if all aggFunc's match\n for (var i = 1; i < aggFuncs.length; i++) {\n if (aggFuncs[i] !== aggFuncs[0]) {\n return false;\n }\n }\n return true;\n };\n PivotColDefService.prototype.headerNameComparator = function (userComparator, a, b) {\n if (userComparator) {\n return userComparator(a.headerName, b.headerName);\n }\n else {\n if (a.headerName && !b.headerName) {\n return 1;\n }\n else if (!a.headerName && b.headerName) {\n return -1;\n }\n // slightly naff here - just to satify typescript\n // really should be &&, but if so ts complains\n // the above if/else checks would deal with either being falsy, so at this stage if either are falsy, both are\n // ..still naff though\n if (!a.headerName || !b.headerName) {\n return 0;\n }\n if (a.headerName < b.headerName) {\n return -1;\n }\n if (a.headerName > b.headerName) {\n return 1;\n }\n return 0;\n }\n };\n PivotColDefService.prototype.merge = function (m1, m2) {\n m2.forEach(function (value, key, map) {\n var existingList = m1.has(key) ? m1.get(key) : [];\n var updatedList = __spread$w(existingList, value);\n m1.set(key, updatedList);\n });\n };\n PivotColDefService.prototype.generateColumnGroupId = function (pivotKeys) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivotGroup_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-');\n };\n PivotColDefService.prototype.generateColumnId = function (pivotKeys, measureColumnId) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivot_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-') + \"_\" + measureColumnId;\n };\n var PivotColDefService_1;\n PivotColDefService.PIVOT_ROW_TOTAL_PREFIX = 'PivotRowTotal_';\n __decorate$28([\n Autowired('columnModel')\n ], PivotColDefService.prototype, \"columnModel\", void 0);\n PivotColDefService = PivotColDefService_1 = __decorate$28([\n Bean('pivotColDefService')\n ], PivotColDefService);\n return PivotColDefService;\n}(BeanStub));\n\nvar __extends$3f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$27 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotStage = /** @class */ (function (_super) {\n __extends$3f(PivotStage, _super);\n function PivotStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.uniqueValues = {};\n return _this;\n }\n PivotStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n var changedPath = params.changedPath;\n if (this.columnModel.isPivotActive()) {\n this.executePivotOn(rootNode, changedPath);\n }\n else {\n this.executePivotOff(changedPath);\n }\n };\n PivotStage.prototype.executePivotOff = function (changedPath) {\n this.aggregationColumnsHashLastTime = null;\n this.uniqueValues = {};\n if (this.columnModel.isSecondaryColumnsPresent()) {\n this.columnModel.setSecondaryColumns(null, \"rowModelUpdated\");\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.executePivotOn = function (rootNode, changedPath) {\n var uniqueValues = this.bucketUpRowNodes(rootNode);\n var uniqueValuesChanged = this.setUniqueValues(uniqueValues);\n var aggregationColumns = this.columnModel.getValueColumns();\n var aggregationColumnsHash = aggregationColumns.map(function (column) { return column.getId() + \"-\" + column.getColDef().headerName; }).join('#');\n var aggregationFuncsHash = aggregationColumns.map(function (column) { return column.getAggFunc().toString(); }).join('#');\n var aggregationColumnsChanged = this.aggregationColumnsHashLastTime !== aggregationColumnsHash;\n var aggregationFuncsChanged = this.aggregationFuncsHashLastTime !== aggregationFuncsHash;\n this.aggregationColumnsHashLastTime = aggregationColumnsHash;\n this.aggregationFuncsHashLastTime = aggregationFuncsHash;\n var groupColumnsHash = this.columnModel.getRowGroupColumns().map(function (column) { return column.getId(); }).join('#');\n var groupColumnsChanged = groupColumnsHash !== this.groupColumnsHashLastTime;\n this.groupColumnsHashLastTime = groupColumnsHash;\n if (uniqueValuesChanged || aggregationColumnsChanged || groupColumnsChanged || aggregationFuncsChanged) {\n var _a = this.pivotColDefService.createPivotColumnDefs(this.uniqueValues), pivotColumnGroupDefs = _a.pivotColumnGroupDefs, pivotColumnDefs = _a.pivotColumnDefs;\n this.pivotColumnDefs = pivotColumnDefs;\n this.columnModel.setSecondaryColumns(pivotColumnGroupDefs, \"rowModelUpdated\");\n // because the secondary columns have changed, then the aggregation needs to visit the whole\n // tree again, so we make the changedPath not active, to force aggregation to visit all paths.\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.setUniqueValues = function (newValues) {\n var json1 = JSON.stringify(newValues);\n var json2 = JSON.stringify(this.uniqueValues);\n var uniqueValuesChanged = json1 !== json2;\n // we only continue the below if the unique values are different, as otherwise\n // the result will be the same as the last time we did it\n if (uniqueValuesChanged) {\n this.uniqueValues = newValues;\n return true;\n }\n else {\n return false;\n }\n };\n // returns true if values were different\n PivotStage.prototype.bucketUpRowNodes = function (rootNode) {\n var _this = this;\n // accessed from inside inner function\n var uniqueValues = {};\n // finds all leaf groups and calls mapRowNode with it\n var recursivelySearchForLeafNodes = function (rowNode) {\n if (rowNode.leafGroup) {\n _this.bucketRowNode(rowNode, uniqueValues);\n }\n else {\n rowNode.childrenAfterFilter.forEach(function (child) {\n recursivelySearchForLeafNodes(child);\n });\n }\n };\n recursivelySearchForLeafNodes(rootNode);\n return uniqueValues;\n };\n PivotStage.prototype.bucketRowNode = function (rowNode, uniqueValues) {\n var pivotColumns = this.columnModel.getPivotColumns();\n if (pivotColumns.length === 0) {\n rowNode.childrenMapped = null;\n }\n else {\n rowNode.childrenMapped = this.bucketChildren(rowNode.childrenAfterFilter, pivotColumns, 0, uniqueValues);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenMapped = rowNode.childrenMapped;\n }\n };\n PivotStage.prototype.bucketChildren = function (children, pivotColumns, pivotIndex, uniqueValues) {\n var _this = this;\n var mappedChildren = {};\n var pivotColumn = pivotColumns[pivotIndex];\n // map the children out based on the pivot column\n children.forEach(function (child) {\n var key = _this.valueService.getKeyForNode(pivotColumn, child);\n if (_.missing(key)) {\n key = '';\n }\n if (!uniqueValues[key]) {\n uniqueValues[key] = {};\n }\n if (!mappedChildren[key]) {\n mappedChildren[key] = [];\n }\n mappedChildren[key].push(child);\n });\n // if it's the last pivot column, return as is, otherwise go one level further in the map\n if (pivotIndex === pivotColumns.length - 1) {\n return mappedChildren;\n }\n else {\n var result_1 = {};\n _.iterateObject(mappedChildren, function (key, value) {\n result_1[key] = _this.bucketChildren(value, pivotColumns, pivotIndex + 1, uniqueValues[key]);\n });\n return result_1;\n }\n };\n PivotStage.prototype.getPivotColumnDefs = function () {\n return this.pivotColumnDefs;\n };\n __decorate$27([\n Autowired('valueService')\n ], PivotStage.prototype, \"valueService\", void 0);\n __decorate$27([\n Autowired('columnModel')\n ], PivotStage.prototype, \"columnModel\", void 0);\n __decorate$27([\n Autowired('pivotColDefService')\n ], PivotStage.prototype, \"pivotColDefService\", void 0);\n PivotStage = __decorate$27([\n Bean('pivotStage')\n ], PivotStage);\n return PivotStage;\n}(BeanStub));\n\nvar __extends$3e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$26 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// @ts-ignore\nvar AGBigInt = typeof BigInt === 'undefined' ? null : BigInt;\nvar AggFuncService = /** @class */ (function (_super) {\n __extends$3e(AggFuncService, _super);\n function AggFuncService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.aggFuncsMap = {};\n _this.initialised = false;\n return _this;\n }\n AggFuncService_1 = AggFuncService;\n AggFuncService.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n this.initialiseWithDefaultAggregations();\n this.addAggFuncs(this.gridOptionsWrapper.getAggFuncs());\n };\n AggFuncService.prototype.initialiseWithDefaultAggregations = function () {\n this.aggFuncsMap[AggFuncService_1.AGG_SUM] = aggSum;\n this.aggFuncsMap[AggFuncService_1.AGG_FIRST] = aggFirst;\n this.aggFuncsMap[AggFuncService_1.AGG_LAST] = aggLast;\n this.aggFuncsMap[AggFuncService_1.AGG_MIN] = aggMin;\n this.aggFuncsMap[AggFuncService_1.AGG_MAX] = aggMax;\n this.aggFuncsMap[AggFuncService_1.AGG_COUNT] = aggCount;\n this.aggFuncsMap[AggFuncService_1.AGG_AVG] = aggAvg;\n this.initialised = true;\n };\n AggFuncService.prototype.isAggFuncPossible = function (column, func) {\n var allKeys = this.getFuncNames(column);\n var allowed = _.includes(allKeys, func);\n var funcExists = _.exists(this.aggFuncsMap[func]);\n return allowed && funcExists;\n };\n AggFuncService.prototype.getDefaultAggFunc = function (column) {\n var defaultAgg = column.getColDef().defaultAggFunc;\n if (_.exists(defaultAgg) && this.isAggFuncPossible(column, defaultAgg)) {\n return defaultAgg;\n }\n if (this.isAggFuncPossible(column, AggFuncService_1.AGG_SUM)) {\n return AggFuncService_1.AGG_SUM;\n }\n var allKeys = this.getFuncNames(column);\n return _.existsAndNotEmpty(allKeys) ? allKeys[0] : null;\n };\n AggFuncService.prototype.addAggFuncs = function (aggFuncs) {\n _.iterateObject(aggFuncs, this.addAggFunc.bind(this));\n };\n AggFuncService.prototype.addAggFunc = function (key, aggFunc) {\n this.init();\n this.aggFuncsMap[key] = aggFunc;\n };\n AggFuncService.prototype.getAggFunc = function (name) {\n this.init();\n return this.aggFuncsMap[name];\n };\n AggFuncService.prototype.getFuncNames = function (column) {\n var userAllowedFuncs = column.getColDef().allowedAggFuncs;\n return userAllowedFuncs == null ? Object.keys(this.aggFuncsMap).sort() : userAllowedFuncs;\n };\n AggFuncService.prototype.clear = function () {\n this.aggFuncsMap = {};\n };\n var AggFuncService_1;\n AggFuncService.AGG_SUM = 'sum';\n AggFuncService.AGG_FIRST = 'first';\n AggFuncService.AGG_LAST = 'last';\n AggFuncService.AGG_MIN = 'min';\n AggFuncService.AGG_MAX = 'max';\n AggFuncService.AGG_COUNT = 'count';\n AggFuncService.AGG_AVG = 'avg';\n __decorate$26([\n PostConstruct\n ], AggFuncService.prototype, \"init\", null);\n AggFuncService = AggFuncService_1 = __decorate$26([\n Bean('aggFuncService')\n ], AggFuncService);\n return AggFuncService;\n}(BeanStub));\nfunction aggSum(params) {\n var values = params.values;\n var result = null; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (typeof value === 'number') {\n if (result === null) {\n result = value;\n }\n else {\n if (AGBigInt) {\n result += typeof result === 'number' ? value : AGBigInt(value);\n }\n else {\n result += value;\n }\n }\n }\n else if (typeof value === 'bigint') {\n if (result === null) {\n result = value;\n }\n else {\n result = (typeof result === 'bigint' ? result : AGBigInt(result)) + value;\n }\n }\n }\n return result;\n}\nfunction aggFirst(params) {\n return params.values.length > 0 ? params.values[0] : null;\n}\nfunction aggLast(params) {\n return params.values.length > 0 ? _.last(params.values) : null;\n}\nfunction aggMin(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result > value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggMax(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result < value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggCount(params) {\n var values = params.values;\n var result = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n // check if the value is from a group, in which case use the group's count\n result += value != null && typeof value.value === 'number' ? value.value : 1;\n }\n return result;\n}\n// the average function is tricky as the multiple levels require weighted averages\n// for the non-leaf node aggregations.\nfunction aggAvg(params) {\n var _a, _b, _c;\n var values = params.values;\n var sum = 0; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n var count = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var currentValue = values[i];\n var valueToAdd = null;\n if (typeof currentValue === 'number' || typeof currentValue === 'bigint') {\n valueToAdd = currentValue;\n count++;\n }\n else if (currentValue != null && (typeof currentValue.value === 'number' || typeof currentValue.value === 'bigint') && typeof currentValue.count === 'number') {\n // we are aggregating groups, so we take the aggregated values to calculated a weighted average\n if (AGBigInt) {\n valueToAdd = currentValue.value * (typeof currentValue.value === 'number' ? currentValue.count : AGBigInt(currentValue.count));\n }\n else {\n valueToAdd = currentValue.value * currentValue.count;\n }\n count += currentValue.count;\n }\n if (typeof valueToAdd === 'number') {\n if (AGBigInt) {\n sum += typeof sum === 'number' ? valueToAdd : AGBigInt(valueToAdd);\n }\n else {\n sum += valueToAdd;\n }\n }\n else if (typeof valueToAdd === 'bigint') {\n sum = (typeof sum === 'bigint' ? sum : AGBigInt(sum)) + valueToAdd;\n }\n }\n var value = null;\n // avoid divide by zero error\n if (count > 0) {\n if (AGBigInt) {\n value = sum / (typeof sum === 'number' ? count : AGBigInt(count));\n }\n else {\n value = sum / count;\n }\n }\n // the previous aggregation data\n var existingAggData = (_b = (_a = params.rowNode) === null || _a === void 0 ? void 0 : _a.aggData) === null || _b === void 0 ? void 0 : _b[(_c = params.column) === null || _c === void 0 ? void 0 : _c.getColId()];\n if (existingAggData && existingAggData.count === count && existingAggData.value === value) {\n // the underlying values haven't changed, return the old object to avoid triggering change detection\n return existingAggData;\n }\n // the result will be an object. when this cell is rendered, only the avg is shown.\n // however when this cell is part of another aggregation, the count is also needed\n // to create a weighted average for the next level.\n return {\n count: count,\n value: value,\n // the grid by default uses toString to render values for an object, so this\n // is a trick to get the default cellRenderer to display the avg value\n toString: function () {\n return typeof this.value === 'number' || typeof this.value === 'bigint' ? this.value.toString() : '';\n },\n // used for sorting\n toNumber: function () {\n return this.value;\n }\n };\n}\n\nvar __extends$3d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$25 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropZoneColumnComp = /** @class */ (function (_super) {\n __extends$3d(DropZoneColumnComp, _super);\n function DropZoneColumnComp(column, dragSourceDropTarget, ghost, dropZonePurpose, horizontal) {\n var _this = _super.call(this) || this;\n _this.column = column;\n _this.dragSourceDropTarget = dragSourceDropTarget;\n _this.ghost = ghost;\n _this.dropZonePurpose = dropZonePurpose;\n _this.horizontal = horizontal;\n _this.popupShowing = false;\n return _this;\n }\n DropZoneColumnComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(DropZoneColumnComp.TEMPLATE);\n var eGui = this.getGui();\n var isFunctionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n this.addElementClasses(eGui);\n this.addElementClasses(this.eDragHandle, 'drag-handle');\n this.addElementClasses(this.eText, 'text');\n this.addElementClasses(this.eButton, 'button');\n this.eDragHandle.appendChild(_.createIconNoSpan('columnDrag', this.gridOptionsWrapper));\n this.eButton.appendChild(_.createIconNoSpan('cancel', this.gridOptionsWrapper));\n this.setupSort();\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnDrop');\n this.setupComponents();\n if (!this.ghost && !isFunctionsReadOnly) {\n this.addDragSource();\n }\n this.setupAria();\n this.addManagedListener(this.column, Column.EVENT_SORT_CHANGED, function () {\n _this.setupAria();\n });\n this.setupTooltip();\n };\n DropZoneColumnComp.prototype.setupAria = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var aggSeparator = translate('ariaDropZoneColumnComponentAggFuncSeperator', ' of ');\n var sortDirection = {\n asc: translate('ariaDropZoneColumnComponentSortAscending', 'ascending'),\n desc: translate('ariaDropZoneColumnComponentSortDescending', 'descending'),\n };\n var columnSort = this.column.getSort();\n var isSortSuppressed = this.gridOptionsWrapper.isRowGroupPanelSuppressSort();\n var ariaInstructions = [\n [\n aggFuncName && \"\" + aggFuncName + aggSeparator,\n name,\n this.isGroupingZone() && !isSortSuppressed && columnSort && \", \" + sortDirection[columnSort]\n ].filter(function (part) { return !!part; }).join(''),\n ];\n var isFunctionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n if (this.isAggregationZone() && !isFunctionsReadOnly) {\n var aggregationMenuAria = translate('ariaDropZoneColumnValueItemDescription', 'Press ENTER to change the aggregation type');\n ariaInstructions.push(aggregationMenuAria);\n }\n if (this.isGroupingZone() && this.column.getColDef().sortable && !isSortSuppressed) {\n var sortProgressAria = translate('ariaDropZoneColumnGroupItemDescription', 'Press ENTER to sort');\n ariaInstructions.push(sortProgressAria);\n }\n var deleteAria = translate('ariaDropZoneColumnComponentDescription', 'Press DELETE to remove');\n ariaInstructions.push(deleteAria);\n _.setAriaLabel(this.getGui(), ariaInstructions.join('. '));\n };\n DropZoneColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n DropZoneColumnComp.prototype.setupSort = function () {\n var _this = this;\n var canSort = this.column.getColDef().sortable;\n var isGroupingZone = this.isGroupingZone();\n if (!canSort || !isGroupingZone) {\n return;\n }\n if (!this.gridOptionsWrapper.isRowGroupPanelSuppressSort()) {\n this.eSortIndicator.setupSort(this.column, true);\n var performSort_1 = function (event) {\n event.preventDefault();\n var sortUsingCtrl = _this.gridOptionsWrapper.isMultiSortKeyCtrl();\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.sortController.progressSort(_this.column, multiSort, 'uiColumnSorted');\n };\n this.addGuiEventListener('click', performSort_1);\n this.addGuiEventListener('keydown', function (e) {\n var isEnter = e.key === KeyCode.ENTER;\n if (isEnter && _this.isGroupingZone()) {\n performSort_1(e);\n }\n });\n }\n };\n DropZoneColumnComp.prototype.addDragSource = function () {\n var _this = this;\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n defaultIconName: DragAndDropService.ICON_HIDE,\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n dragSourceDropTarget: this.dragSourceDropTarget\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n DropZoneColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n DropZoneColumnComp.prototype.setupComponents = function () {\n this.setTextValue();\n this.setupRemove();\n if (this.ghost) {\n this.addCssClass('ag-column-drop-cell-ghost');\n }\n if (this.isAggregationZone() && !this.gridOptionsWrapper.isFunctionsReadOnly()) {\n this.addGuiEventListener('click', this.onShowAggFuncSelection.bind(this));\n }\n };\n DropZoneColumnComp.prototype.setupRemove = function () {\n var _this = this;\n _.setDisplayed(this.eButton, !this.gridOptionsWrapper.isFunctionsReadOnly());\n var agEvent = { type: DropZoneColumnComp.EVENT_COLUMN_REMOVE };\n this.addGuiEventListener('keydown', function (e) {\n var isEnter = e.key === KeyCode.ENTER;\n var isDelete = e.key === KeyCode.DELETE;\n if (isDelete) {\n e.preventDefault();\n _this.dispatchEvent(agEvent);\n }\n if (isEnter && _this.isAggregationZone() && !_this.gridOptionsWrapper.isFunctionsReadOnly()) {\n e.preventDefault();\n _this.onShowAggFuncSelection();\n }\n });\n this.addManagedListener(this.eButton, 'click', function (mouseEvent) {\n _this.dispatchEvent(agEvent);\n mouseEvent.stopPropagation();\n });\n var touchListener = new TouchListener(this.eButton);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, function () {\n _this.dispatchEvent(agEvent);\n });\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n DropZoneColumnComp.prototype.getColumnAndAggFuncName = function () {\n var name = this.displayName;\n var aggFuncName = '';\n if (this.isAggregationZone()) {\n var aggFunc = this.column.getAggFunc();\n // if aggFunc is a string, we can use it, but if it's a function, then we swap with 'func'\n var aggFuncString = typeof aggFunc === 'string' ? aggFunc : 'agg';\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n aggFuncName = localeTextFunc(aggFuncString, aggFuncString);\n }\n return { name: name, aggFuncName: aggFuncName };\n };\n DropZoneColumnComp.prototype.setTextValue = function () {\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var displayValue = this.isAggregationZone() ? aggFuncName + \"(\" + name + \")\" : name;\n var displayValueSanitised = _.escapeString(displayValue);\n this.eText.innerHTML = displayValueSanitised;\n };\n DropZoneColumnComp.prototype.onShowAggFuncSelection = function () {\n var _this = this;\n if (this.popupShowing) {\n return;\n }\n this.popupShowing = true;\n var virtualList = new VirtualList('select-agg-func');\n var rows = this.aggFuncService.getFuncNames(this.column);\n var eGui = this.getGui();\n var virtualListGui = virtualList.getGui();\n virtualList.setModel({\n getRow: function (index) { return rows[index]; },\n getRowCount: function () { return rows.length; }\n });\n this.getContext().createBean(virtualList);\n var ePopup = _.loadTemplate(/* html*/ \"
\");\n ePopup.style.top = '0px';\n ePopup.style.left = '0px';\n ePopup.appendChild(virtualListGui);\n // ePopup.style.height = this.gridOptionsWrapper.getAggFuncPopupHeight() + 'px';\n ePopup.style.width = eGui.clientWidth + \"px\";\n var popupHiddenFunc = function () {\n _this.destroyBean(virtualList);\n _this.popupShowing = false;\n eGui.focus();\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n closeOnEsc: true,\n closedCallback: popupHiddenFunc,\n ariaLabel: translate('ariaLabelAggregationFunction', 'Aggregation Function')\n });\n if (addPopupRes) {\n virtualList.setComponentCreator(this.createAggSelect.bind(this, addPopupRes.hideFunc));\n }\n virtualList.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n var row = virtualList.getLastFocusedRow();\n if (row == null) {\n return;\n }\n var comp = virtualList.getComponentAt(row);\n if (comp) {\n comp.selectItem();\n }\n }\n });\n this.popupService.positionPopupUnderComponent({\n type: 'aggFuncSelect',\n eventSource: eGui,\n ePopup: ePopup,\n keepWithinBounds: true,\n column: this.column\n });\n virtualList.refresh();\n var rowToFocus = rows.findIndex(function (r) { return r === _this.column.getAggFunc(); });\n if (rowToFocus === -1) {\n rowToFocus = 0;\n }\n virtualList.focusRow(rowToFocus);\n };\n DropZoneColumnComp.prototype.createAggSelect = function (hidePopup, value) {\n var _this = this;\n var itemSelected = function () {\n hidePopup();\n if (_this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST,\n columns: [_this.column],\n aggFunc: value\n };\n _this.eventService.dispatchEvent(event_1);\n }\n else {\n _this.columnModel.setColumnAggFunc(_this.column, value, \"toolPanelDragAndDrop\");\n }\n };\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var aggFuncString = value.toString();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n var comp = new AggItemComp(itemSelected, aggFuncStringTranslated);\n return comp;\n };\n DropZoneColumnComp.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop-cell\" + suffix, \"ag-column-drop-\" + direction + \"-cell\" + suffix);\n };\n DropZoneColumnComp.prototype.isAggregationZone = function () {\n return this.dropZonePurpose === 'aggregation';\n };\n DropZoneColumnComp.prototype.isGroupingZone = function () {\n return this.dropZonePurpose === 'rowGroup';\n };\n DropZoneColumnComp.EVENT_COLUMN_REMOVE = 'columnRemove';\n DropZoneColumnComp.TEMPLATE = \"\\n \\n \\n \\n \\n \";\n __decorate$25([\n Autowired('dragAndDropService')\n ], DropZoneColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$25([\n Autowired('columnModel')\n ], DropZoneColumnComp.prototype, \"columnModel\", void 0);\n __decorate$25([\n Autowired('popupService')\n ], DropZoneColumnComp.prototype, \"popupService\", void 0);\n __decorate$25([\n Optional('aggFuncService')\n ], DropZoneColumnComp.prototype, \"aggFuncService\", void 0);\n __decorate$25([\n Autowired('sortController')\n ], DropZoneColumnComp.prototype, \"sortController\", void 0);\n __decorate$25([\n RefSelector('eText')\n ], DropZoneColumnComp.prototype, \"eText\", void 0);\n __decorate$25([\n RefSelector('eDragHandle')\n ], DropZoneColumnComp.prototype, \"eDragHandle\", void 0);\n __decorate$25([\n RefSelector('eButton')\n ], DropZoneColumnComp.prototype, \"eButton\", void 0);\n __decorate$25([\n RefSelector('eSortIndicator')\n ], DropZoneColumnComp.prototype, \"eSortIndicator\", void 0);\n __decorate$25([\n PostConstruct\n ], DropZoneColumnComp.prototype, \"init\", null);\n return DropZoneColumnComp;\n}(Component));\nvar AggItemComp = /** @class */ (function (_super) {\n __extends$3d(AggItemComp, _super);\n function AggItemComp(itemSelected, value) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.selectItem = itemSelected;\n _this.getGui().innerText = value;\n _this.addGuiEventListener('click', _this.selectItem);\n return _this;\n }\n return AggItemComp;\n}(Component));\n\nvar __extends$3c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$24 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$U = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$v = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$U(arguments[i]));\n return ar;\n};\nvar BaseDropZonePanel = /** @class */ (function (_super) {\n __extends$3c(BaseDropZonePanel, _super);\n function BaseDropZonePanel(horizontal, dropZonePurpose) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.horizontal = horizontal;\n _this.dropZonePurpose = dropZonePurpose;\n _this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n _this.guiDestroyFunctions = [];\n _this.childColumnComponents = [];\n _this.resizeEnabled = false;\n _this.addElementClasses(_this.getGui());\n _this.eColumnDropList = document.createElement('div');\n _this.addElementClasses(_this.eColumnDropList, 'list');\n _.setAriaRole(_this.eColumnDropList, 'listbox');\n return _this;\n }\n BaseDropZonePanel.prototype.isHorizontal = function () {\n return this.horizontal;\n };\n BaseDropZonePanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n this.resizeEnabled = resizable;\n };\n BaseDropZonePanel.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseDropZonePanel.prototype.destroy = function () {\n this.destroyGui();\n _super.prototype.destroy.call(this);\n };\n BaseDropZonePanel.prototype.destroyGui = function () {\n this.guiDestroyFunctions.forEach(function (func) { return func(); });\n this.guiDestroyFunctions.length = 0;\n this.childColumnComponents.length = 0;\n _.clearElement(this.getGui());\n _.clearElement(this.eColumnDropList);\n };\n BaseDropZonePanel.prototype.init = function (params) {\n this.params = params;\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.refreshGui.bind(this));\n this.addManagedListener(this.beans.gridOptionsWrapper, 'functionsReadOnly', this.refreshGui.bind(this));\n this.setupDropTarget();\n this.positionableFeature = new PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n // we don't know if this bean will be initialised before columnModel.\n // if columnModel first, then below will work\n // if columnModel second, then below will put blank in, and then above event gets first when columnModel is set up\n this.refreshGui();\n _.setAriaLabel(this.eColumnDropList, this.getAriaLabel());\n };\n BaseDropZonePanel.prototype.handleKeyDown = function (e) {\n var isVertical = !this.horizontal;\n var isNext = e.key === KeyCode.DOWN;\n var isPrevious = e.key === KeyCode.UP;\n if (!isVertical) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n isNext = (!isRtl && e.key === KeyCode.RIGHT) || (isRtl && e.key === KeyCode.LEFT);\n isPrevious = (!isRtl && e.key === KeyCode.LEFT) || (isRtl && e.key === KeyCode.RIGHT);\n }\n if (!isNext && !isPrevious) {\n return;\n }\n var el = this.focusService.findNextFocusableElement(this.getFocusableElement(), false, isPrevious);\n if (el) {\n e.preventDefault();\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop\" + suffix, \"ag-column-drop-\" + direction + suffix);\n };\n BaseDropZonePanel.prototype.setupDropTarget = function () {\n this.dropTarget = {\n getContainer: this.getGui.bind(this),\n getIconName: this.getIconName.bind(this),\n onDragging: this.onDragging.bind(this),\n onDragEnter: this.onDragEnter.bind(this),\n onDragLeave: this.onDragLeave.bind(this),\n onDragStop: this.onDragStop.bind(this),\n isInterestedIn: this.isInterestedIn.bind(this)\n };\n this.beans.dragAndDropService.addDropTarget(this.dropTarget);\n };\n BaseDropZonePanel.prototype.isInterestedIn = function (type) {\n // not interested in row drags\n return type === DragSourceType.HeaderCell || type === DragSourceType.ToolPanel;\n };\n BaseDropZonePanel.prototype.checkInsertIndex = function (draggingEvent) {\n var newIndex = this.getNewInsertIndex(draggingEvent);\n // <0 happens when drag is no a direction we are interested in, eg drag is up/down but in horizontal panel\n if (newIndex < 0) {\n return false;\n }\n var changed = newIndex !== this.insertIndex;\n if (changed) {\n this.insertIndex = newIndex;\n }\n return changed;\n };\n BaseDropZonePanel.prototype.getNewInsertIndex = function (draggingEvent) {\n var _this = this;\n var mouseEvent = draggingEvent.event;\n var mouseLocation = this.horizontal ? mouseEvent.clientX : mouseEvent.clientY;\n var boundsList = this.childColumnComponents.map(function (col) { return (col.getGui().getBoundingClientRect()); });\n // find the non-ghost component we're hovering\n var hoveredIndex = boundsList.findIndex(function (rect) { return (_this.horizontal ? (rect.right > mouseLocation && rect.left < mouseLocation) : (rect.top < mouseLocation && rect.bottom > mouseLocation)); });\n // not hovering a non-ghost component\n if (hoveredIndex === -1) {\n var enableRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n // if mouse is below or right of all components then new index should be placed last\n var isLast = boundsList.every(function (rect) { return (mouseLocation > (_this.horizontal ? rect.right : rect.bottom)); });\n if (isLast) {\n return enableRtl && this.horizontal ? 0 : this.childColumnComponents.length;\n }\n // if mouse is above or left of all components, new index is first\n var isFirst = boundsList.every(function (rect) { return (mouseLocation < (_this.horizontal ? rect.left : rect.top)); });\n if (isFirst) {\n return enableRtl && this.horizontal ? this.childColumnComponents.length : 0;\n }\n // must be hovering a ghost, don't change the index\n return this.insertIndex;\n }\n // if the old index is equal to or less than the index of our new target\n // we need to shift right, to insert after rather than before\n if (this.insertIndex <= hoveredIndex) {\n return hoveredIndex + 1;\n }\n return hoveredIndex;\n };\n BaseDropZonePanel.prototype.checkDragStartedBySelf = function (draggingEvent) {\n if (this.state !== BaseDropZonePanel.STATE_NOT_DRAGGING) {\n return;\n }\n this.state = BaseDropZonePanel.STATE_REARRANGE_COLUMNS;\n this.potentialDndColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.refreshGui();\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n };\n BaseDropZonePanel.prototype.onDragging = function (draggingEvent) {\n this.checkDragStartedBySelf(draggingEvent);\n if (this.checkInsertIndex(draggingEvent)) {\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.onDragEnter = function (draggingEvent) {\n // this will contain all columns that are potential drops\n var dragColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.state = BaseDropZonePanel.STATE_NEW_COLUMNS_IN;\n // take out columns that are not droppable\n var goodDragColumns = dragColumns.filter(this.isColumnDroppable.bind(this));\n if (goodDragColumns.length > 0) {\n var hideColumnOnExit = this.isRowGroupPanel() && !this.gridOptionsWrapper.isSuppressRowGroupHidesColumns() && !draggingEvent.fromNudge;\n if (hideColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n var columns = dragItem.columns;\n this.setColumnsVisible(columns, false, \"uiColumnDragged\");\n }\n this.potentialDndColumns = goodDragColumns;\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.colModel.setColumnsVisible(allowedCols, visible, source);\n }\n };\n BaseDropZonePanel.prototype.isPotentialDndColumns = function () {\n return _.existsAndNotEmpty(this.potentialDndColumns);\n };\n BaseDropZonePanel.prototype.isRowGroupPanel = function () {\n return this.dropZonePurpose === 'rowGroup';\n };\n BaseDropZonePanel.prototype.onDragLeave = function (draggingEvent) {\n // if the dragging started from us, we remove the group, however if it started\n // some place else, then we don't, as it was only 'asking'\n if (this.state === BaseDropZonePanel.STATE_REARRANGE_COLUMNS) {\n var columns = draggingEvent.dragSource.getDragItem().columns || [];\n this.removeColumns(columns);\n }\n if (this.isPotentialDndColumns()) {\n var showColumnOnExit = this.isRowGroupPanel() && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup() && !draggingEvent.fromNudge;\n if (showColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n this.setColumnsVisible(dragItem.columns, true, \"uiColumnDragged\");\n }\n this.potentialDndColumns = [];\n this.refreshGui();\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.onDragStop = function () {\n if (this.isPotentialDndColumns()) {\n var success = false;\n if (this.state === BaseDropZonePanel.STATE_NEW_COLUMNS_IN) {\n this.addColumns(this.potentialDndColumns);\n success = true;\n }\n else {\n success = this.rearrangeColumns(this.potentialDndColumns);\n }\n this.potentialDndColumns = [];\n // If the function is passive, then we don't refresh, as we assume the client application\n // is going to call setRowGroups / setPivots / setValues at a later point which will then\n // cause a refresh. This gives a nice GUI where the ghost stays until the app has caught\n // up with the changes. However, if there was no change in the order, then we do need to\n // refresh to reset the columns\n if (!this.beans.gridOptionsWrapper.isFunctionsPassive() || !success) {\n this.refreshGui();\n }\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.removeColumns = function (columnsToRemove) {\n var newColumnList = this.getExistingColumns().filter(function (col) { return !_.includes(columnsToRemove, col); });\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.addColumns = function (columnsToAdd) {\n if (!columnsToAdd) {\n return;\n }\n var newColumnList = this.getExistingColumns().slice();\n var colsToAddNoDuplicates = columnsToAdd.filter(function (col) { return newColumnList.indexOf(col) < 0; });\n _.insertArrayIntoArray(newColumnList, colsToAddNoDuplicates, this.insertIndex);\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.rearrangeColumns = function (columnsToAdd) {\n var newColumnList = this.getNonGhostColumns().slice();\n _.insertArrayIntoArray(newColumnList, columnsToAdd, this.insertIndex);\n if (_.areEqual(newColumnList, this.getExistingColumns())) {\n return false;\n }\n this.updateColumns(newColumnList);\n return true;\n };\n BaseDropZonePanel.prototype.refreshGui = function () {\n // we reset the scroll position after the refresh.\n // if we don't do this, then the list will always scroll to the top\n // each time we refresh it. this is because part of the refresh empties\n // out the list which sets scroll to zero. so the user could be just\n // reordering the list - we want to prevent the resetting of the scroll.\n // this is relevant for vertical display only (as horizontal has no scroll)\n var scrollTop = this.eColumnDropList.scrollTop;\n var resizeEnabled = this.resizeEnabled;\n var focusedIndex = this.getFocusedItem();\n var alternateElement = this.focusService.findNextFocusableElement();\n if (!alternateElement) {\n alternateElement = this.focusService.findNextFocusableElement(undefined, false, true);\n }\n this.toggleResizable(false);\n this.destroyGui();\n this.addIconAndTitleToGui();\n this.addEmptyMessageToGui();\n this.addColumnsToGui();\n if (!this.isHorizontal()) {\n this.eColumnDropList.scrollTop = scrollTop;\n }\n if (resizeEnabled) {\n this.toggleResizable(resizeEnabled);\n }\n this.restoreFocus(focusedIndex, alternateElement);\n };\n BaseDropZonePanel.prototype.getFocusedItem = function () {\n var eGui = this.getGui();\n var activeElement = this.gridOptionsWrapper.getDocument().activeElement;\n if (!eGui.contains(activeElement)) {\n return -1;\n }\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n return items.indexOf(activeElement);\n };\n BaseDropZonePanel.prototype.restoreFocus = function (index, alternateElement) {\n var eGui = this.getGui();\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n if (index === -1) {\n return;\n }\n if (items.length === 0) {\n alternateElement.focus();\n }\n var indexToFocus = Math.min(items.length - 1, index);\n var el = items[indexToFocus];\n if (el) {\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.getNonGhostColumns = function () {\n var _this = this;\n var existingColumns = this.getExistingColumns();\n if (this.isPotentialDndColumns()) {\n return existingColumns.filter(function (column) { return !_.includes(_this.potentialDndColumns, column); });\n }\n return existingColumns;\n };\n BaseDropZonePanel.prototype.addColumnsToGui = function () {\n var _this = this;\n var nonGhostColumns = this.getNonGhostColumns();\n var itemsToAddToGui = nonGhostColumns.map(function (column) { return (_this.createColumnComponent(column, false)); });\n if (this.isPotentialDndColumns()) {\n var dndColumns = this.potentialDndColumns.map(function (column) { return (_this.createColumnComponent(column, true)); });\n if (this.insertIndex >= itemsToAddToGui.length) {\n itemsToAddToGui.push.apply(itemsToAddToGui, __spread$v(dndColumns));\n }\n else {\n itemsToAddToGui.splice.apply(itemsToAddToGui, __spread$v([this.insertIndex, 0], dndColumns));\n }\n }\n this.appendChild(this.eColumnDropList);\n itemsToAddToGui.forEach(function (columnComponent, index) {\n if (index > 0) {\n _this.addArrow(_this.eColumnDropList);\n }\n _this.eColumnDropList.appendChild(columnComponent.getGui());\n });\n this.addAriaLabelsToComponents();\n };\n BaseDropZonePanel.prototype.addAriaLabelsToComponents = function () {\n var _this = this;\n this.childColumnComponents.forEach(function (comp, idx) {\n var eGui = comp.getGui();\n _.setAriaPosInSet(eGui, idx + 1);\n _.setAriaSetSize(eGui, _this.childColumnComponents.length);\n });\n };\n BaseDropZonePanel.prototype.createColumnComponent = function (column, ghost) {\n var _this = this;\n var columnComponent = new DropZoneColumnComp(column, this.dropTarget, ghost, this.dropZonePurpose, this.horizontal);\n columnComponent.addEventListener(DropZoneColumnComp.EVENT_COLUMN_REMOVE, this.removeColumns.bind(this, [column]));\n this.beans.context.createBean(columnComponent);\n this.guiDestroyFunctions.push(function () { return _this.destroyBean(columnComponent); });\n if (!ghost) {\n this.childColumnComponents.push(columnComponent);\n }\n return columnComponent;\n };\n BaseDropZonePanel.prototype.addIconAndTitleToGui = function () {\n var eGroupIcon = this.params.icon;\n var eTitleBar = document.createElement('div');\n eTitleBar.setAttribute('aria-hidden', 'true');\n this.addElementClasses(eTitleBar, 'title-bar');\n this.addElementClasses(eGroupIcon, 'icon');\n this.addOrRemoveCssClass('ag-column-drop-empty', this.isExistingColumnsEmpty());\n eTitleBar.appendChild(eGroupIcon);\n if (!this.horizontal) {\n var eTitle = document.createElement('span');\n this.addElementClasses(eTitle, 'title');\n eTitle.innerHTML = this.params.title;\n eTitleBar.appendChild(eTitle);\n }\n this.appendChild(eTitleBar);\n };\n BaseDropZonePanel.prototype.isExistingColumnsEmpty = function () {\n return this.getExistingColumns().length === 0;\n };\n BaseDropZonePanel.prototype.addEmptyMessageToGui = function () {\n if (!this.isExistingColumnsEmpty() || this.isPotentialDndColumns()) {\n return;\n }\n var eMessage = document.createElement('span');\n eMessage.innerHTML = this.params.emptyMessage;\n this.addElementClasses(eMessage, 'empty-message');\n this.eColumnDropList.appendChild(eMessage);\n };\n BaseDropZonePanel.prototype.addArrow = function (eParent) {\n // only add the arrows if the layout is horizontal\n if (this.horizontal) {\n // for RTL it's a left arrow, otherwise it's a right arrow\n var enableRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var icon = _.createIconNoSpan(enableRtl ? 'smallLeft' : 'smallRight', this.beans.gridOptionsWrapper);\n this.addElementClasses(icon, 'cell-separator');\n eParent.appendChild(icon);\n }\n };\n BaseDropZonePanel.STATE_NOT_DRAGGING = 'notDragging';\n BaseDropZonePanel.STATE_NEW_COLUMNS_IN = 'newColumnsIn';\n BaseDropZonePanel.STATE_REARRANGE_COLUMNS = 'rearrangeColumns';\n __decorate$24([\n Autowired('columnModel')\n ], BaseDropZonePanel.prototype, \"colModel\", void 0);\n __decorate$24([\n Autowired('focusService')\n ], BaseDropZonePanel.prototype, \"focusService\", void 0);\n return BaseDropZonePanel;\n}(Component));\n\nvar __extends$3b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$23 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowGroupDropZonePanel = /** @class */ (function (_super) {\n __extends$3b(RowGroupDropZonePanel, _super);\n function RowGroupDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'rowGroup') || this;\n }\n RowGroupDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('rowGroupColumnsEmptyMessage', 'Drag here to set row groups');\n var title = localeTextFunc('groups', 'Row Groups');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_GROUP,\n icon: _.createIconNoSpan('rowGroupPanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.refreshGui.bind(this));\n };\n RowGroupDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaRowGroupDropZonePanelLabel', 'Row Groups');\n return label;\n };\n RowGroupDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'rowGroupColumnsList';\n return res;\n };\n RowGroupDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowRowGroup() && !column.isRowGroupActive();\n };\n RowGroupDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setRowGroupColumns(columns, \"toolPanelUi\");\n }\n };\n RowGroupDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_GROUP : DragAndDropService.ICON_NOT_ALLOWED;\n };\n RowGroupDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getRowGroupColumns();\n };\n __decorate$23([\n Autowired('columnModel')\n ], RowGroupDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$23([\n Autowired('loggerFactory')\n ], RowGroupDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$23([\n Autowired('dragAndDropService')\n ], RowGroupDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$23([\n PostConstruct\n ], RowGroupDropZonePanel.prototype, \"passBeansUp\", null);\n return RowGroupDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$3a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$22 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotDropZonePanel = /** @class */ (function (_super) {\n __extends$3a(PivotDropZonePanel, _super);\n function PivotDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'pivot') || this;\n }\n PivotDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('pivotColumnsEmptyMessage', 'Drag here to set column labels');\n var title = localeTextFunc('pivots', 'Column Labels');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_GROUP,\n icon: _.createIconNoSpan('pivotPanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.checkVisibility.bind(this));\n this.refresh();\n };\n PivotDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaPivotDropZonePanelLabel', 'Column Labels');\n return label;\n };\n PivotDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'pivotColumnsList';\n return res;\n };\n PivotDropZonePanel.prototype.refresh = function () {\n this.checkVisibility();\n this.refreshGui();\n };\n PivotDropZonePanel.prototype.checkVisibility = function () {\n var pivotMode = this.columnModel.isPivotMode();\n if (this.isHorizontal()) {\n // what we do for horizontal (ie the pivot panel at the top) depends\n // on the user property as well as pivotMode.\n switch (this.gridOptionsWrapper.getPivotPanelShow()) {\n case 'always':\n this.setDisplayed(pivotMode);\n break;\n case 'onlyWhenPivoting':\n var pivotActive = this.columnModel.isPivotActive();\n this.setDisplayed(pivotMode && pivotActive);\n break;\n default:\n // never show it\n this.setDisplayed(false);\n break;\n }\n }\n else {\n // in toolPanel, the pivot panel is always shown when pivot mode is on\n this.setDisplayed(pivotMode);\n }\n };\n PivotDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowPivot() && !column.isPivotActive();\n };\n PivotDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setPivotColumns(columns, \"toolPanelUi\");\n }\n };\n PivotDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_PIVOT : DragAndDropService.ICON_NOT_ALLOWED;\n };\n PivotDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getPivotColumns();\n };\n __decorate$22([\n Autowired('columnModel')\n ], PivotDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$22([\n Autowired('loggerFactory')\n ], PivotDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$22([\n Autowired('dragAndDropService')\n ], PivotDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$22([\n PostConstruct\n ], PivotDropZonePanel.prototype, \"passBeansUp\", null);\n return PivotDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$39 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$21 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderDropZones = /** @class */ (function (_super) {\n __extends$39(GridHeaderDropZones, _super);\n function GridHeaderDropZones() {\n return _super.call(this) || this;\n }\n GridHeaderDropZones.prototype.postConstruct = function () {\n this.setGui(this.createNorthPanel());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'rowGroupPanelShow', this.onRowGroupChanged.bind(this));\n this.onRowGroupChanged();\n };\n GridHeaderDropZones.prototype.createNorthPanel = function () {\n var topPanelGui = document.createElement('div');\n var dropPanelVisibleListener = this.onDropPanelVisible.bind(this);\n topPanelGui.classList.add('ag-column-drop-wrapper');\n _.setAriaRole(topPanelGui, 'presentation');\n this.rowGroupComp = new RowGroupDropZonePanel(true);\n this.createManagedBean(this.rowGroupComp);\n this.pivotComp = new PivotDropZonePanel(true);\n this.createManagedBean(this.pivotComp);\n topPanelGui.appendChild(this.rowGroupComp.getGui());\n topPanelGui.appendChild(this.pivotComp.getGui());\n this.addManagedListener(this.rowGroupComp, Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.addManagedListener(this.pivotComp, Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.onDropPanelVisible();\n return topPanelGui;\n };\n GridHeaderDropZones.prototype.onDropPanelVisible = function () {\n var bothDisplayed = this.rowGroupComp.isDisplayed() && this.pivotComp.isDisplayed();\n this.rowGroupComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n this.pivotComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n };\n GridHeaderDropZones.prototype.onRowGroupChanged = function () {\n if (!this.rowGroupComp) {\n return;\n }\n var rowGroupPanelShow = this.gridOptionsWrapper.getRowGroupPanelShow();\n if (rowGroupPanelShow === Constants.ALWAYS) {\n this.rowGroupComp.setDisplayed(true);\n }\n else if (rowGroupPanelShow === Constants.ONLY_WHEN_GROUPING) {\n var grouping = !this.columnModel.isRowGroupEmpty();\n this.rowGroupComp.setDisplayed(grouping);\n }\n else {\n this.rowGroupComp.setDisplayed(false);\n }\n };\n __decorate$21([\n Autowired('columnModel')\n ], GridHeaderDropZones.prototype, \"columnModel\", void 0);\n __decorate$21([\n PostConstruct\n ], GridHeaderDropZones.prototype, \"postConstruct\", null);\n return GridHeaderDropZones;\n}(Component));\n\nvar __extends$38 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$20 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterAggregatesStage = /** @class */ (function (_super) {\n __extends$38(FilterAggregatesStage, _super);\n function FilterAggregatesStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterAggregatesStage.prototype.execute = function (params) {\n var _this = this;\n var isPivotMode = this.columnModel.isPivotMode();\n var isAggFilterActive = this.filterManager.isAggregateFilterPresent();\n // This is the default filter for applying only to leaf nodes, realistically this should not apply as primary agg columns,\n // should not be applied by the filterManager if getGroupAggFiltering is missing. Predicate will apply filters to leaf level.\n var defaultPrimaryColumnPredicate = function (params) { return !params.node.group; };\n // Default secondary column predicate, selecting only leaf level groups.\n var defaultSecondaryColumnPredicate = (function (params) { return params.node.leafGroup; });\n // The predicate to determine whether filters should apply to this row. Either defined by the user in groupAggFiltering or a default depending\n // on current pivot mode status.\n var applyFilterToNode = this.gridOptionsWrapper.getGroupAggFiltering()\n || (isPivotMode ? defaultSecondaryColumnPredicate : defaultPrimaryColumnPredicate);\n var changedPath = params.changedPath;\n var preserveChildren = function (node, recursive) {\n if (recursive === void 0) { recursive = false; }\n if (node.childrenAfterFilter) {\n node.childrenAfterAggFilter = node.childrenAfterFilter;\n if (recursive) {\n node.childrenAfterAggFilter.forEach(function (child) { return preserveChildren(child, recursive); });\n }\n _this.setAllChildrenCount(node);\n }\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n var filterChildren = function (node) {\n var _a;\n node.childrenAfterAggFilter = ((_a = node.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.filter(function (child) {\n var _a;\n var shouldFilterRow = applyFilterToNode({ node: child });\n if (shouldFilterRow) {\n var doesNodePassFilter = _this.filterManager.doesRowPassAggregateFilters({ rowNode: child });\n if (doesNodePassFilter) {\n // Node has passed, so preserve children\n preserveChildren(child, true);\n return true;\n }\n }\n var hasChildPassed = (_a = child.childrenAfterAggFilter) === null || _a === void 0 ? void 0 : _a.length;\n return hasChildPassed;\n })) || null;\n _this.setAllChildrenCount(node);\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n changedPath.forEachChangedNodeDepthFirst(isAggFilterActive ? filterChildren : preserveChildren, true);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountTreeData = function (rowNode) {\n // for tree data, we include all children, groups and leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n // include child itself\n allChildrenCount++;\n // include children of children\n allChildrenCount += child.allChildrenCount;\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountGridGrouping = function (rowNode) {\n // for grid data, we only count the leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n if (child.group) {\n allChildrenCount += child.allChildrenCount;\n }\n else {\n allChildrenCount++;\n }\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCount = function (rowNode) {\n if (!rowNode.hasChildren()) {\n rowNode.setAllChildrenCount(null);\n return;\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n this.setAllChildrenCountTreeData(rowNode);\n }\n else {\n this.setAllChildrenCountGridGrouping(rowNode);\n }\n };\n __decorate$20([\n Autowired('filterManager')\n ], FilterAggregatesStage.prototype, \"filterManager\", void 0);\n __decorate$20([\n Autowired('columnModel')\n ], FilterAggregatesStage.prototype, \"columnModel\", void 0);\n FilterAggregatesStage = __decorate$20([\n Bean('filterAggregatesStage')\n ], FilterAggregatesStage);\n return FilterAggregatesStage;\n}(BeanStub));\n\nvar RowGroupingModule = {\n moduleName: ModuleNames.RowGroupingModule,\n beans: [AggregationStage, FilterAggregatesStage, GroupStage, PivotColDefService, PivotStage, AggFuncService],\n agStackComponents: [\n { componentName: 'AgGridHeaderDropZones', componentClass: GridHeaderDropZones }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$37 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValuesDropZonePanel = /** @class */ (function (_super) {\n __extends$37(ValuesDropZonePanel, _super);\n function ValuesDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'aggregation') || this;\n }\n ValuesDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('valueColumnsEmptyMessage', 'Drag here to aggregate');\n var title = localeTextFunc('values', 'Values');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_AGGREGATE,\n icon: _.createIconNoSpan('valuePanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.refreshGui.bind(this));\n };\n ValuesDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaValuesDropZonePanelLabel', 'Values');\n return label;\n };\n ValuesDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'valueColumnsList';\n return res;\n };\n ValuesDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_AGGREGATE : DragAndDropService.ICON_NOT_ALLOWED;\n };\n ValuesDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowValue() && !column.isValueActive();\n };\n ValuesDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setValueColumns(columns, \"toolPanelUi\");\n }\n };\n ValuesDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getValueColumns();\n };\n __decorate$1$([\n Autowired('columnModel')\n ], ValuesDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$1$([\n Autowired('loggerFactory')\n ], ValuesDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$1$([\n Autowired('dragAndDropService')\n ], ValuesDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$1$([\n PostConstruct\n ], ValuesDropZonePanel.prototype, \"passBeansUp\", null);\n return ValuesDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$36 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PrimaryColsPanel = /** @class */ (function (_super) {\n __extends$36(PrimaryColsPanel, _super);\n function PrimaryColsPanel() {\n return _super.call(this, PrimaryColsPanel.TEMPLATE) || this;\n }\n PrimaryColsPanel.prototype.postConstruct = function () {\n this.initialiseTabGuard({});\n };\n // we allow dragging in the toolPanel, but not when this component appears in the column menu\n PrimaryColsPanel.prototype.init = function (allowDragging, params, eventType) {\n this.allowDragging = allowDragging;\n this.params = params;\n this.eventType = eventType;\n this.primaryColsHeaderPanel.init(this.params);\n var hideFilter = this.params.suppressColumnFilter;\n var hideSelect = this.params.suppressColumnSelectAll;\n var hideExpand = this.params.suppressColumnExpandAll;\n if (hideExpand && hideFilter && hideSelect) {\n this.primaryColsHeaderPanel.setDisplayed(false);\n }\n this.addManagedListener(this.primaryColsListPanel, 'groupExpanded', this.onGroupExpanded.bind(this));\n this.addManagedListener(this.primaryColsListPanel, 'selectionChanged', this.onSelectionChange.bind(this));\n this.primaryColsListPanel.init(this.params, this.allowDragging, this.eventType);\n this.addManagedListener(this.primaryColsHeaderPanel, 'expandAll', this.onExpandAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'selectAll', this.onSelectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'unselectAll', this.onUnselectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'filterChanged', this.onFilterChanged.bind(this));\n this.positionableFeature = new PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n };\n PrimaryColsPanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n };\n PrimaryColsPanel.prototype.onExpandAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(true);\n };\n PrimaryColsPanel.prototype.onCollapseAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(false);\n };\n PrimaryColsPanel.prototype.expandGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(true, groupIds);\n };\n PrimaryColsPanel.prototype.collapseGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(false, groupIds);\n };\n PrimaryColsPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsListPanel.setColumnLayout(colDefs);\n };\n PrimaryColsPanel.prototype.onFilterChanged = function (event) {\n this.primaryColsListPanel.setFilterText(event.filterText);\n };\n PrimaryColsPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsListPanel.onColumnsChanged();\n };\n PrimaryColsPanel.prototype.onSelectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(true);\n };\n PrimaryColsPanel.prototype.onUnselectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(false);\n };\n PrimaryColsPanel.prototype.onGroupExpanded = function (event) {\n this.primaryColsHeaderPanel.setExpandState(event.state);\n };\n PrimaryColsPanel.prototype.onSelectionChange = function (event) {\n this.primaryColsHeaderPanel.setSelectionState(event.state);\n };\n PrimaryColsPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$1_([\n RefSelector('primaryColsHeaderPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsHeaderPanel\", void 0);\n __decorate$1_([\n RefSelector('primaryColsListPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsListPanel\", void 0);\n __decorate$1_([\n PostConstruct\n ], PrimaryColsPanel.prototype, \"postConstruct\", null);\n return PrimaryColsPanel;\n}(TabGuardComp));\n\nvar __extends$35 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$G = (undefined && undefined.__assign) || function () {\n __assign$G = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$G.apply(this, arguments);\n};\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnToolPanel = /** @class */ (function (_super) {\n __extends$35(ColumnToolPanel, _super);\n function ColumnToolPanel() {\n var _this = _super.call(this, ColumnToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.childDestroyFuncs = [];\n return _this;\n }\n // lazy initialise the panel\n ColumnToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n ColumnToolPanel.prototype.init = function (params) {\n var _this = this;\n var defaultParams = {\n suppressColumnMove: false,\n suppressColumnSelectAll: false,\n suppressColumnFilter: false,\n suppressColumnExpandAll: false,\n contractColumnSelection: false,\n suppressPivotMode: false,\n suppressRowGroups: false,\n suppressValues: false,\n suppressPivots: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n };\n this.params = __assign$G(__assign$G(__assign$G({}, defaultParams), params), { context: this.gridOptionsWrapper.getContext() });\n if (this.isRowGroupingModuleLoaded() && !this.params.suppressPivotMode) {\n // DO NOT CHANGE TO createManagedBean\n this.pivotModePanel = this.createBean(new PivotModePanel());\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n this.appendChild(this.pivotModePanel);\n }\n // DO NOT CHANGE TO createManagedBean\n this.primaryColsPanel = this.createBean(new PrimaryColsPanel());\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.primaryColsPanel); });\n this.primaryColsPanel.init(true, this.params, \"toolPanelUi\");\n this.primaryColsPanel.addCssClass('ag-column-panel-column-select');\n this.appendChild(this.primaryColsPanel);\n if (this.isRowGroupingModuleLoaded()) {\n if (!this.params.suppressRowGroups) {\n // DO NOT CHANGE TO createManagedBean\n this.rowGroupDropZonePanel = this.createBean(new RowGroupDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.rowGroupDropZonePanel); });\n this.appendChild(this.rowGroupDropZonePanel);\n }\n if (!this.params.suppressValues) {\n // DO NOT CHANGE TO createManagedBean\n this.valuesDropZonePanel = this.createBean(new ValuesDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.valuesDropZonePanel); });\n this.appendChild(this.valuesDropZonePanel);\n }\n if (!this.params.suppressPivots) {\n // DO NOT CHANGE TO createManagedBean\n this.pivotDropZonePanel = this.createBean(new PivotDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotDropZonePanel); });\n this.appendChild(this.pivotDropZonePanel);\n }\n this.setLastVisible();\n var pivotModeListener_1 = this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () {\n _this.resetChildrenHeight();\n _this.setLastVisible();\n });\n this.childDestroyFuncs.push(function () { return pivotModeListener_1(); });\n }\n this.initialised = true;\n };\n ColumnToolPanel.prototype.setPivotModeSectionVisible = function (visible) {\n var _this = this;\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotModePanel) {\n this.pivotModePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotModePanel = this.createBean(new PivotModePanel());\n // ensure pivot mode panel is positioned at the top of the columns tool panel\n this.getGui().insertBefore(this.pivotModePanel.getGui(), this.getGui().firstChild);\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setRowGroupsSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.rowGroupDropZonePanel) {\n this.rowGroupDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.rowGroupDropZonePanel = this.createManagedBean(new RowGroupDropZonePanel(false));\n this.appendChild(this.rowGroupDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setValuesSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.valuesDropZonePanel) {\n this.valuesDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.valuesDropZonePanel = this.createManagedBean(new ValuesDropZonePanel(false));\n this.appendChild(this.valuesDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setPivotSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotDropZonePanel) {\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotDropZonePanel = this.createManagedBean(new PivotDropZonePanel(false));\n this.appendChild(this.pivotDropZonePanel);\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setResizers = function () {\n [\n this.primaryColsPanel,\n this.rowGroupDropZonePanel,\n this.valuesDropZonePanel,\n this.pivotDropZonePanel\n ].forEach(function (panel) {\n if (!panel) {\n return;\n }\n var eGui = panel.getGui();\n panel.toggleResizable(!eGui.classList.contains('ag-last-column-drop') && !eGui.classList.contains('ag-hidden'));\n });\n };\n ColumnToolPanel.prototype.setLastVisible = function () {\n var eGui = this.getGui();\n var columnDrops = Array.prototype.slice.call(eGui.querySelectorAll('.ag-column-drop'));\n columnDrops.forEach(function (columnDrop) { return columnDrop.classList.remove('ag-last-column-drop'); });\n var columnDropEls = eGui.querySelectorAll('.ag-column-drop:not(.ag-hidden)');\n var lastVisible = _.last(columnDropEls);\n if (lastVisible) {\n lastVisible.classList.add('ag-last-column-drop');\n }\n this.setResizers();\n };\n ColumnToolPanel.prototype.resetChildrenHeight = function () {\n var eGui = this.getGui();\n var children = eGui.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n child.style.removeProperty('height');\n child.style.removeProperty('flex');\n }\n };\n ColumnToolPanel.prototype.isRowGroupingModuleLoaded = function () {\n return ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Row Grouping');\n };\n ColumnToolPanel.prototype.expandColumnGroups = function (groupIds) {\n this.primaryColsPanel.expandGroups(groupIds);\n };\n ColumnToolPanel.prototype.collapseColumnGroups = function (groupIds) {\n this.primaryColsPanel.collapseGroups(groupIds);\n };\n ColumnToolPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsPanel.setColumnLayout(colDefs);\n };\n ColumnToolPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsPanel.syncLayoutWithGrid();\n };\n ColumnToolPanel.prototype.destroyChildren = function () {\n this.childDestroyFuncs.forEach(function (func) { return func(); });\n this.childDestroyFuncs.length = 0;\n _.clearElement(this.getGui());\n };\n ColumnToolPanel.prototype.refresh = function () {\n this.destroyChildren();\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so this must be public.\n ColumnToolPanel.prototype.destroy = function () {\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n ColumnToolPanel.TEMPLATE = \"
\";\n __decorate$1Z([\n Autowired(\"gridApi\")\n ], ColumnToolPanel.prototype, \"gridApi\", void 0);\n __decorate$1Z([\n Autowired(\"columnApi\")\n ], ColumnToolPanel.prototype, \"columnApi\", void 0);\n return ColumnToolPanel;\n}(Component));\n\nvar __extends$34 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeComp = /** @class */ (function (_super) {\n __extends$34(HorizontalResizeComp, _super);\n function HorizontalResizeComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.minWidth = 100;\n _this.maxWidth = null;\n return _this;\n }\n HorizontalResizeComp.prototype.setElementToResize = function (elementToResize) {\n this.elementToResize = elementToResize;\n };\n HorizontalResizeComp.prototype.postConstruct = function () {\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.getGui(),\n dragStartPixels: 1,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this),\n onResizeEnd: this.onResizeEnd.bind(this)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n this.setInverted(this.gridOptionsWrapper.isEnableRtl());\n };\n HorizontalResizeComp.prototype.dispatchResizeEvent = function (start, end, width) {\n var event = {\n type: Events.EVENT_TOOL_PANEL_SIZE_CHANGED,\n width: width,\n started: start,\n ended: end,\n };\n this.eventService.dispatchEvent(event);\n };\n HorizontalResizeComp.prototype.onResizeStart = function () {\n this.startingWidth = this.elementToResize.offsetWidth;\n this.dispatchResizeEvent(true, false, this.startingWidth);\n };\n HorizontalResizeComp.prototype.onResizeEnd = function (delta) {\n return this.onResizing(delta, true);\n };\n HorizontalResizeComp.prototype.onResizing = function (delta, isEnd) {\n if (isEnd === void 0) { isEnd = false; }\n var direction = this.inverted ? -1 : 1;\n var newWidth = Math.max(this.minWidth, Math.floor(this.startingWidth - (delta * direction)));\n if (this.maxWidth != null) {\n newWidth = Math.min(this.maxWidth, newWidth);\n }\n this.elementToResize.style.width = newWidth + \"px\";\n this.dispatchResizeEvent(false, isEnd, newWidth);\n };\n HorizontalResizeComp.prototype.setInverted = function (inverted) {\n this.inverted = inverted;\n };\n HorizontalResizeComp.prototype.setMaxWidth = function (value) {\n this.maxWidth = value;\n };\n HorizontalResizeComp.prototype.setMinWidth = function (value) {\n if (value != null) {\n this.minWidth = value;\n }\n else {\n this.minWidth = 100;\n }\n };\n __decorate$1Y([\n Autowired('horizontalResizeService')\n ], HorizontalResizeComp.prototype, \"horizontalResizeService\", void 0);\n __decorate$1Y([\n PostConstruct\n ], HorizontalResizeComp.prototype, \"postConstruct\", null);\n return HorizontalResizeComp;\n}(Component));\n\nvar __extends$33 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonComp = /** @class */ (function (_super) {\n __extends$33(SideBarButtonComp, _super);\n function SideBarButtonComp(toolPanelDef) {\n var _this = _super.call(this) || this;\n _this.toolPanelDef = toolPanelDef;\n return _this;\n }\n SideBarButtonComp.prototype.getToolPanelId = function () {\n return this.toolPanelDef.id;\n };\n SideBarButtonComp.prototype.postConstruct = function () {\n var template = this.createTemplate();\n this.setTemplate(template);\n this.setLabel();\n this.setIcon();\n this.addManagedListener(this.eToggleButton, 'click', this.onButtonPressed.bind(this));\n };\n SideBarButtonComp.prototype.createTemplate = function () {\n var res = /* html */ \"
\\n \\n
\";\n return res;\n };\n SideBarButtonComp.prototype.setLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var def = this.toolPanelDef;\n var label = translate(def.labelKey, def.labelDefault);\n this.eLabel.innerText = label;\n };\n SideBarButtonComp.prototype.setIcon = function () {\n this.eIconWrapper.insertAdjacentElement('afterbegin', _.createIconNoSpan(this.toolPanelDef.iconKey, this.gridOptionsWrapper));\n };\n SideBarButtonComp.prototype.onButtonPressed = function () {\n this.dispatchEvent({ type: SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED });\n };\n SideBarButtonComp.prototype.setSelected = function (selected) {\n this.addOrRemoveCssClass('ag-selected', selected);\n };\n SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED = 'toggleButtonClicked';\n __decorate$1X([\n RefSelector('eToggleButton')\n ], SideBarButtonComp.prototype, \"eToggleButton\", void 0);\n __decorate$1X([\n RefSelector('eIconWrapper')\n ], SideBarButtonComp.prototype, \"eIconWrapper\", void 0);\n __decorate$1X([\n RefSelector('eLabel')\n ], SideBarButtonComp.prototype, \"eLabel\", void 0);\n __decorate$1X([\n PostConstruct\n ], SideBarButtonComp.prototype, \"postConstruct\", null);\n return SideBarButtonComp;\n}(Component));\n\nvar __extends$32 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonsComp = /** @class */ (function (_super) {\n __extends$32(SideBarButtonsComp, _super);\n function SideBarButtonsComp() {\n var _this = _super.call(this, SideBarButtonsComp.TEMPLATE) || this;\n _this.buttonComps = [];\n return _this;\n }\n SideBarButtonsComp.prototype.postConstruct = function () {\n this.addManagedListener(this.getFocusableElement(), 'keydown', this.handleKeyDown.bind(this));\n };\n SideBarButtonsComp.prototype.handleKeyDown = function (e) {\n if (e.key !== KeyCode.TAB || !e.shiftKey) {\n return;\n }\n var lastColumn = _.last(this.columnModel.getAllDisplayedColumns());\n if (this.focusService.focusGridView(lastColumn, true)) {\n e.preventDefault();\n }\n };\n SideBarButtonsComp.prototype.setToolPanelDefs = function (toolPanelDefs) {\n toolPanelDefs.forEach(this.addButtonComp.bind(this));\n };\n SideBarButtonsComp.prototype.setActiveButton = function (id) {\n this.buttonComps.forEach(function (comp) {\n comp.setSelected(id === comp.getToolPanelId());\n });\n };\n SideBarButtonsComp.prototype.addButtonComp = function (def) {\n var _this = this;\n var buttonComp = this.createBean(new SideBarButtonComp(def));\n this.buttonComps.push(buttonComp);\n this.appendChild(buttonComp);\n buttonComp.addEventListener(SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED, function () {\n _this.dispatchEvent({\n type: SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED,\n toolPanelId: def.id\n });\n });\n };\n SideBarButtonsComp.prototype.clearButtons = function () {\n this.buttonComps = this.destroyBeans(this.buttonComps);\n _.clearElement(this.getGui());\n };\n SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED = 'sideBarButtonClicked';\n SideBarButtonsComp.TEMPLATE = \"
\";\n __decorate$1W([\n Autowired('focusService')\n ], SideBarButtonsComp.prototype, \"focusService\", void 0);\n __decorate$1W([\n Autowired('columnModel')\n ], SideBarButtonsComp.prototype, \"columnModel\", void 0);\n __decorate$1W([\n PostConstruct\n ], SideBarButtonsComp.prototype, \"postConstruct\", null);\n __decorate$1W([\n PreDestroy\n ], SideBarButtonsComp.prototype, \"clearButtons\", null);\n return SideBarButtonsComp;\n}(Component));\n\nvar __extends$31 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelWrapper = /** @class */ (function (_super) {\n __extends$31(ToolPanelWrapper, _super);\n function ToolPanelWrapper() {\n return _super.call(this, ToolPanelWrapper.TEMPLATE) || this;\n }\n ToolPanelWrapper.prototype.setupResize = function () {\n var eGui = this.getGui();\n var resizeBar = this.resizeBar = this.createManagedBean(new HorizontalResizeComp());\n resizeBar.setElementToResize(eGui);\n this.appendChild(resizeBar);\n };\n ToolPanelWrapper.prototype.getToolPanelId = function () {\n return this.toolPanelId;\n };\n ToolPanelWrapper.prototype.setToolPanelDef = function (toolPanelDef) {\n var id = toolPanelDef.id, minWidth = toolPanelDef.minWidth, maxWidth = toolPanelDef.maxWidth, width = toolPanelDef.width;\n this.toolPanelId = id;\n this.width = width;\n var params = {};\n var compDetails = this.userComponentFactory.getToolPanelCompDetails(toolPanelDef, params);\n var componentPromise = compDetails.newAgStackInstance();\n if (componentPromise == null) {\n console.warn(\"AG Grid: error processing tool panel component \" + id + \". You need to specify either 'toolPanel' or 'toolPanelFramework'\");\n return;\n }\n componentPromise.then(this.setToolPanelComponent.bind(this));\n if (minWidth != null) {\n this.resizeBar.setMinWidth(minWidth);\n }\n if (maxWidth != null) {\n this.resizeBar.setMaxWidth(maxWidth);\n }\n };\n ToolPanelWrapper.prototype.setToolPanelComponent = function (compInstance) {\n var _this = this;\n this.toolPanelCompInstance = compInstance;\n this.appendChild(compInstance.getGui());\n this.addDestroyFunc(function () {\n _this.destroyBean(compInstance);\n });\n if (this.width) {\n this.getGui().style.width = this.width + \"px\";\n }\n };\n ToolPanelWrapper.prototype.getToolPanelInstance = function () {\n return this.toolPanelCompInstance;\n };\n ToolPanelWrapper.prototype.setResizerSizerSide = function (side) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var isLeft = side === 'left';\n var inverted = isRtl ? isLeft : !isLeft;\n this.resizeBar.setInverted(inverted);\n };\n ToolPanelWrapper.prototype.refresh = function () {\n this.toolPanelCompInstance.refresh();\n };\n ToolPanelWrapper.TEMPLATE = \"
\";\n __decorate$1V([\n Autowired(\"userComponentFactory\")\n ], ToolPanelWrapper.prototype, \"userComponentFactory\", void 0);\n __decorate$1V([\n PostConstruct\n ], ToolPanelWrapper.prototype, \"setupResize\", null);\n return ToolPanelWrapper;\n}(Component));\n\nvar __extends$30 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarComp = /** @class */ (function (_super) {\n __extends$30(SideBarComp, _super);\n function SideBarComp() {\n var _this = _super.call(this, SideBarComp.TEMPLATE) || this;\n _this.toolPanelWrappers = [];\n return _this;\n }\n SideBarComp.prototype.postConstruct = function () {\n var _this = this;\n this.sideBarButtonsComp.addEventListener(SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED, this.onToolPanelButtonClicked.bind(this));\n this.setSideBarDef();\n this.gridOptionsWrapper.addEventListener('sideBar', function () {\n _this.clearDownUi();\n _this.setSideBarDef();\n });\n this.gridApi.registerSideBarComp(this);\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n SideBarComp.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, sideBarButtonsComp = _a.sideBarButtonsComp;\n var eGui = this.getGui();\n var sideBarGui = sideBarButtonsComp.getGui();\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n var openPanel = eGui.querySelector('.ag-tool-panel-wrapper:not(.ag-hidden)');\n if (!openPanel) {\n return;\n }\n if (sideBarGui.contains(activeElement)) {\n if (focusService.focusInto(openPanel, e.shiftKey)) {\n e.preventDefault();\n }\n }\n else {\n if (!focusService.isFocusUnderManagedComponent(openPanel) && e.shiftKey) {\n var firstFocusableEl = focusService.findFocusableElements(openPanel)[0];\n var eDocument_1 = this.gridOptionsWrapper.getDocument();\n if (eDocument_1.activeElement === firstFocusableEl) {\n var selectedButton = sideBarGui.querySelector('.ag-selected button');\n if (selectedButton) {\n e.preventDefault();\n selectedButton.focus();\n }\n }\n }\n }\n };\n SideBarComp.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!this.sideBarButtonsComp.getGui().contains(eDocument.activeElement)) {\n return;\n }\n var sideBarGui = this.sideBarButtonsComp.getGui();\n var buttons = Array.prototype.slice.call(sideBarGui.querySelectorAll('.ag-side-button'));\n var currentButton = eDocument.activeElement;\n var currentPos = buttons.findIndex(function (button) { return button.contains(currentButton); });\n var nextPos = null;\n switch (e.key) {\n case KeyCode.LEFT:\n case KeyCode.UP:\n nextPos = Math.max(0, currentPos - 1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n nextPos = Math.min(currentPos + 1, buttons.length - 1);\n break;\n }\n if (nextPos === null) {\n return;\n }\n var innerButton = buttons[nextPos].querySelector('button');\n if (innerButton) {\n innerButton.focus();\n e.preventDefault();\n }\n };\n SideBarComp.prototype.onToolPanelButtonClicked = function (event) {\n var id = event.toolPanelId;\n var openedItem = this.openedItem();\n // if item was already open, we close it\n if (openedItem === id) {\n this.openToolPanel(undefined); // passing undefined closes\n }\n else {\n this.openToolPanel(id);\n }\n };\n SideBarComp.prototype.clearDownUi = function () {\n this.sideBarButtonsComp.clearButtons();\n this.destroyToolPanelWrappers();\n };\n SideBarComp.prototype.setSideBarDef = function () {\n // initially hide side bar\n this.setDisplayed(false);\n var sideBar = this.gridOptionsWrapper.getSideBar();\n var sideBarExists = !!sideBar && !!sideBar.toolPanels;\n if (!sideBarExists) {\n return;\n }\n var shouldDisplaySideBar = sideBarExists && !sideBar.hiddenByDefault;\n this.setDisplayed(shouldDisplaySideBar);\n var toolPanelDefs = sideBar.toolPanels;\n this.sideBarButtonsComp.setToolPanelDefs(toolPanelDefs);\n this.setupToolPanels(toolPanelDefs);\n this.setSideBarPosition(sideBar.position);\n if (!sideBar.hiddenByDefault) {\n this.openToolPanel(sideBar.defaultToolPanel);\n }\n };\n SideBarComp.prototype.setSideBarPosition = function (position) {\n if (!position) {\n position = 'right';\n }\n var isLeft = position === 'left';\n var resizerSide = isLeft ? 'right' : 'left';\n this.addOrRemoveCssClass('ag-side-bar-left', isLeft);\n this.addOrRemoveCssClass('ag-side-bar-right', !isLeft);\n this.toolPanelWrappers.forEach(function (wrapper) {\n wrapper.setResizerSizerSide(resizerSide);\n });\n return this;\n };\n SideBarComp.prototype.setupToolPanels = function (defs) {\n var _this = this;\n defs.forEach(function (def) {\n if (def.id == null) {\n console.warn(\"AG Grid: please review all your toolPanel components, it seems like at least one of them doesn't have an id\");\n return;\n }\n // helpers, in case user doesn't have the right module loaded\n if (def.toolPanel === 'agColumnsToolPanel') {\n var moduleMissing = !ModuleRegistry.assertRegistered(ModuleNames.ColumnToolPanelModule, 'Column Tool Panel');\n if (moduleMissing) {\n return;\n }\n }\n if (def.toolPanel === 'agFiltersToolPanel') {\n var moduleMissing = !ModuleRegistry.assertRegistered(ModuleNames.FiltersToolPanelModule, 'Filters Tool Panel');\n if (moduleMissing) {\n return;\n }\n }\n var wrapper = new ToolPanelWrapper();\n _this.getContext().createBean(wrapper);\n wrapper.setToolPanelDef(def);\n wrapper.setDisplayed(false);\n _this.getGui().appendChild(wrapper.getGui());\n _this.toolPanelWrappers.push(wrapper);\n });\n };\n SideBarComp.prototype.refresh = function () {\n this.toolPanelWrappers.forEach(function (wrapper) { return wrapper.refresh(); });\n };\n SideBarComp.prototype.openToolPanel = function (key) {\n var currentlyOpenedKey = this.openedItem();\n if (currentlyOpenedKey === key) {\n return;\n }\n this.toolPanelWrappers.forEach(function (wrapper) {\n var show = key === wrapper.getToolPanelId();\n wrapper.setDisplayed(show);\n });\n var newlyOpenedKey = this.openedItem();\n var openToolPanelChanged = currentlyOpenedKey !== newlyOpenedKey;\n if (openToolPanelChanged) {\n this.sideBarButtonsComp.setActiveButton(key);\n this.raiseToolPanelVisibleEvent(key);\n }\n };\n SideBarComp.prototype.getToolPanelInstance = function (key) {\n var toolPanelWrapper = this.toolPanelWrappers.filter(function (toolPanel) { return toolPanel.getToolPanelId() === key; })[0];\n if (!toolPanelWrapper) {\n console.warn(\"AG Grid: unable to lookup Tool Panel as invalid key supplied: \" + key);\n return;\n }\n return toolPanelWrapper.getToolPanelInstance();\n };\n SideBarComp.prototype.raiseToolPanelVisibleEvent = function (key) {\n var event = {\n type: Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED,\n source: key\n };\n this.eventService.dispatchEvent(event);\n };\n SideBarComp.prototype.close = function () {\n this.openToolPanel(undefined);\n };\n SideBarComp.prototype.isToolPanelShowing = function () {\n return !!this.openedItem();\n };\n SideBarComp.prototype.openedItem = function () {\n var activeToolPanel = null;\n this.toolPanelWrappers.forEach(function (wrapper) {\n if (wrapper.isDisplayed()) {\n activeToolPanel = wrapper.getToolPanelId();\n }\n });\n return activeToolPanel;\n };\n SideBarComp.prototype.destroyToolPanelWrappers = function () {\n var _this = this;\n this.toolPanelWrappers.forEach(function (wrapper) {\n _.removeFromParent(wrapper.getGui());\n _this.destroyBean(wrapper);\n });\n this.toolPanelWrappers.length = 0;\n };\n SideBarComp.prototype.destroy = function () {\n this.destroyToolPanelWrappers();\n _super.prototype.destroy.call(this);\n };\n SideBarComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$1U([\n Autowired('gridApi')\n ], SideBarComp.prototype, \"gridApi\", void 0);\n __decorate$1U([\n Autowired('focusService')\n ], SideBarComp.prototype, \"focusService\", void 0);\n __decorate$1U([\n RefSelector('sideBarButtons')\n ], SideBarComp.prototype, \"sideBarButtonsComp\", void 0);\n __decorate$1U([\n PostConstruct\n ], SideBarComp.prototype, \"postConstruct\", null);\n return SideBarComp;\n}(Component));\n\nvar __extends$2$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColDefService = /** @class */ (function (_super) {\n __extends$2$(ToolPanelColDefService, _super);\n function ToolPanelColDefService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isColGroupDef = function (colDef) { return colDef && typeof colDef.children !== 'undefined'; };\n _this.getId = function (colDef) {\n return _this.isColGroupDef(colDef) ? colDef.groupId : colDef.colId;\n };\n return _this;\n }\n ToolPanelColDefService.prototype.createColumnTree = function (colDefs) {\n var _this = this;\n var invalidColIds = [];\n var createDummyColGroup = function (abstractColDef, depth) {\n if (_this.isColGroupDef(abstractColDef)) {\n // creating 'dummy' group which is not associated with grid column group\n var groupDef = abstractColDef;\n var groupId = (typeof groupDef.groupId !== 'undefined') ? groupDef.groupId : groupDef.headerName;\n var group = new ProvidedColumnGroup(groupDef, groupId, false, depth);\n var children_1 = [];\n groupDef.children.forEach(function (def) {\n var child = createDummyColGroup(def, depth + 1);\n // check column exists in case invalid colDef is supplied for primary column\n if (child) {\n children_1.push(child);\n }\n });\n group.setChildren(children_1);\n return group;\n }\n else {\n var colDef = abstractColDef;\n var key = colDef.colId ? colDef.colId : colDef.field;\n var column = _this.columnModel.getPrimaryColumn(key);\n if (!column) {\n invalidColIds.push(colDef);\n }\n return column;\n }\n };\n var mappedResults = [];\n colDefs.forEach(function (colDef) {\n var result = createDummyColGroup(colDef, 0);\n if (result) {\n // only return correctly mapped colDef results\n mappedResults.push(result);\n }\n });\n if (invalidColIds.length > 0) {\n console.warn('AG Grid: unable to find grid columns for the supplied colDef(s):', invalidColIds);\n }\n return mappedResults;\n };\n ToolPanelColDefService.prototype.syncLayoutWithGrid = function (syncLayoutCallback) {\n // extract ordered list of leaf path trees (column group hierarchy for each individual leaf column)\n var leafPathTrees = this.getLeafPathTrees();\n // merge leaf path tree taking split column groups into account\n var mergedColumnTrees = this.mergeLeafPathTrees(leafPathTrees);\n // sync layout with merged column trees\n syncLayoutCallback(mergedColumnTrees);\n };\n ToolPanelColDefService.prototype.getLeafPathTrees = function () {\n // leaf tree paths are obtained by walking up the tree starting at a column until we reach the top level group.\n var getLeafPathTree = function (node, childDef) {\n var leafPathTree;\n // build up tree in reverse order\n if (node instanceof ProvidedColumnGroup) {\n if (node.isPadding()) {\n // skip over padding groups\n leafPathTree = childDef;\n }\n else {\n var groupDef = Object.assign({}, node.getColGroupDef());\n // ensure group contains groupId\n groupDef.groupId = node.getGroupId();\n groupDef.children = [childDef];\n leafPathTree = groupDef;\n }\n }\n else {\n var colDef = Object.assign({}, node.getColDef());\n // ensure col contains colId\n colDef.colId = node.getColId();\n leafPathTree = colDef;\n }\n // walk tree\n var parent = node.getOriginalParent();\n if (parent) {\n // keep walking up the tree until we reach the root\n return getLeafPathTree(parent, leafPathTree);\n }\n else {\n // we have reached the root - exit with resulting leaf path tree\n return leafPathTree;\n }\n };\n // obtain a sorted list of all grid columns\n var allGridColumns = this.columnModel.getAllGridColumns();\n // only primary columns and non row group columns should appear in the tool panel\n var allPrimaryGridColumns = allGridColumns.filter(function (column) {\n var colDef = column.getColDef();\n return column.isPrimary() && !colDef.showRowGroup;\n });\n // construct a leaf path tree for each column\n return allPrimaryGridColumns.map(function (col) { return getLeafPathTree(col, col.getColDef()); });\n };\n ToolPanelColDefService.prototype.mergeLeafPathTrees = function (leafPathTrees) {\n var _this = this;\n var matchingRootGroupIds = function (pathA, pathB) {\n var bothPathsAreGroups = _this.isColGroupDef(pathA) && _this.isColGroupDef(pathB);\n return bothPathsAreGroups && _this.getId(pathA) === _this.getId(pathB);\n };\n var mergeTrees = function (treeA, treeB) {\n if (!_this.isColGroupDef(treeB)) {\n return treeA;\n }\n var mergeResult = treeA;\n var groupToMerge = treeB;\n if (groupToMerge.children && groupToMerge.groupId) {\n var added = _this.addChildrenToGroup(mergeResult, groupToMerge.groupId, groupToMerge.children[0]);\n if (added) {\n return mergeResult;\n }\n }\n groupToMerge.children.forEach(function (child) { return mergeTrees(mergeResult, child); });\n return mergeResult;\n };\n // we can't just merge the leaf path trees as groups can be split apart - instead only merge if leaf\n // path groups with the same root group id are contiguous.\n var mergeColDefs = [];\n for (var i = 1; i <= leafPathTrees.length; i++) {\n var first = leafPathTrees[i - 1];\n var second = leafPathTrees[i];\n if (matchingRootGroupIds(first, second)) {\n leafPathTrees[i] = mergeTrees(first, second);\n }\n else {\n mergeColDefs.push(first);\n }\n }\n return mergeColDefs;\n };\n ToolPanelColDefService.prototype.addChildrenToGroup = function (tree, groupId, colDef) {\n var _this = this;\n var subGroupIsSplit = function (currentSubGroup, currentSubGroupToAdd) {\n var existingChildIds = currentSubGroup.children.map(_this.getId);\n var childGroupAlreadyExists = _.includes(existingChildIds, _this.getId(currentSubGroupToAdd));\n var lastChild = _.last(currentSubGroup.children);\n var lastChildIsDifferent = lastChild && _this.getId(lastChild) !== _this.getId(currentSubGroupToAdd);\n return childGroupAlreadyExists && lastChildIsDifferent;\n };\n if (!this.isColGroupDef(tree)) {\n return true;\n }\n var currentGroup = tree;\n var groupToAdd = colDef;\n if (subGroupIsSplit(currentGroup, groupToAdd)) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n if (currentGroup.groupId === groupId) {\n // add children that don't already exist to group\n var existingChildIds = currentGroup.children.map(this.getId);\n var colDefAlreadyPresent = _.includes(existingChildIds, this.getId(groupToAdd));\n if (!colDefAlreadyPresent) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n }\n // recurse until correct group is found to add children\n currentGroup.children.forEach(function (subGroup) { return _this.addChildrenToGroup(subGroup, groupId, colDef); });\n return false;\n };\n __decorate$1T([\n Autowired('columnModel')\n ], ToolPanelColDefService.prototype, \"columnModel\", void 0);\n ToolPanelColDefService = __decorate$1T([\n Bean('toolPanelColDefService')\n ], ToolPanelColDefService);\n return ToolPanelColDefService;\n}(BeanStub));\n\nvar SideBarModule = {\n moduleName: ModuleNames.SideBarModule,\n beans: [ToolPanelColDefService],\n agStackComponents: [\n { componentName: 'AgHorizontalResize', componentClass: HorizontalResizeComp },\n { componentName: 'AgSideBar', componentClass: SideBarComp },\n { componentName: 'AgSideBarButtons', componentClass: SideBarButtonsComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ModelItemUtils = /** @class */ (function () {\n function ModelItemUtils() {\n }\n ModelItemUtils.prototype.selectAllChildren = function (colTree, selectAllChecked, eventType) {\n var cols = this.extractAllLeafColumns(colTree);\n this.setAllColumns(cols, selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setColumn = function (col, selectAllChecked, eventType) {\n this.setAllColumns([col], selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setAllColumns = function (cols, selectAllChecked, eventType) {\n if (this.columnModel.isPivotMode()) {\n this.setAllPivot(cols, selectAllChecked, eventType);\n }\n else {\n this.setAllVisible(cols, selectAllChecked, eventType);\n }\n };\n ModelItemUtils.prototype.extractAllLeafColumns = function (allItems) {\n var res = [];\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n else {\n res.push(item.getColumn());\n }\n });\n };\n recursiveFunc(allItems);\n return res;\n };\n ModelItemUtils.prototype.setAllVisible = function (columns, visible, eventType) {\n var colStateItems = [];\n columns.forEach(function (col) {\n if (col.getColDef().lockVisible) {\n return;\n }\n if (col.isVisible() != visible) {\n colStateItems.push({\n colId: col.getId(),\n hide: !visible\n });\n }\n });\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivot = function (columns, value, eventType) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n this.setAllPivotPassive(columns, value);\n }\n else {\n this.setAllPivotActive(columns, value, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivotPassive = function (columns, value) {\n var copyOfPivotColumns = this.columnModel.getPivotColumns().slice();\n var copyOfValueColumns = this.columnModel.getValueColumns().slice();\n var copyOfRowGroupColumns = this.columnModel.getRowGroupColumns().slice();\n var pivotChanged = false;\n var valueChanged = false;\n var rowGroupChanged = false;\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n copyOfValueColumns.push(col);\n valueChanged = true;\n }\n else if (col.isAllowRowGroup()) {\n copyOfRowGroupColumns.push(col);\n pivotChanged = true;\n }\n else if (col.isAllowPivot()) {\n copyOfPivotColumns.push(col);\n rowGroupChanged = true;\n }\n };\n var turnOffAction = function (col) {\n if (!col.isAnyFunctionActive()) {\n return;\n }\n if (copyOfPivotColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfPivotColumns, col);\n pivotChanged = true;\n }\n if (copyOfValueColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfValueColumns, col);\n valueChanged = true;\n }\n if (copyOfRowGroupColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfRowGroupColumns, col);\n rowGroupChanged = true;\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (pivotChanged) {\n var event_1 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: copyOfPivotColumns\n };\n this.eventService.dispatchEvent(event_1);\n }\n if (rowGroupChanged) {\n var event_2 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns\n };\n this.eventService.dispatchEvent(event_2);\n }\n if (valueChanged) {\n var event_3 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n ModelItemUtils.prototype.setAllPivotActive = function (columns, value, eventType) {\n var _this = this;\n var colStateItems = [];\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n var aggFunc = typeof col.getAggFunc() === 'string'\n ? col.getAggFunc()\n : _this.aggFuncService.getDefaultAggFunc(col);\n colStateItems.push({\n colId: col.getId(),\n aggFunc: aggFunc\n });\n }\n else if (col.isAllowRowGroup()) {\n colStateItems.push({\n colId: col.getId(),\n rowGroup: true\n });\n }\n else if (col.isAllowPivot()) {\n colStateItems.push({\n colId: col.getId(),\n pivot: true\n });\n }\n };\n var turnOffAction = function (col) {\n var isActive = col.isPivotActive() || col.isRowGroupActive() || col.isValueActive();\n if (isActive) {\n colStateItems.push({\n colId: col.getId(),\n pivot: false,\n rowGroup: false,\n aggFunc: null\n });\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n __decorate$1S([\n Autowired('aggFuncService')\n ], ModelItemUtils.prototype, \"aggFuncService\", void 0);\n __decorate$1S([\n Autowired('columnModel')\n ], ModelItemUtils.prototype, \"columnModel\", void 0);\n __decorate$1S([\n Autowired('gridOptionsWrapper')\n ], ModelItemUtils.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1S([\n Autowired('eventService')\n ], ModelItemUtils.prototype, \"eventService\", void 0);\n ModelItemUtils = __decorate$1S([\n Bean('modelItemUtils')\n ], ModelItemUtils);\n return ModelItemUtils;\n}());\n\nvar ColumnsToolPanelModule = {\n moduleName: ModuleNames.ColumnToolPanelModule,\n beans: [ModelItemUtils],\n agStackComponents: [\n { componentName: 'AgPrimaryColsHeader', componentClass: PrimaryColsHeaderPanel },\n { componentName: 'AgPrimaryColsList', componentClass: PrimaryColsListPanel },\n { componentName: 'AgPrimaryCols', componentClass: PrimaryColsPanel }\n ],\n userComponents: [\n { componentName: 'agColumnsToolPanel', componentClass: ColumnToolPanel },\n ],\n dependantModules: [\n EnterpriseCoreModule,\n RowGroupingModule,\n SideBarModule\n ]\n};\n\nvar workbook = {\n getTemplate: function () {\n return {\n name: \"Workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n o: \"urn:schemas-microsoft-com:office:office\",\n x: \"urn:schemas-microsoft-com:office:excel\",\n ss: \"urn:schemas-microsoft-com:office:spreadsheet\",\n html: \"http://www.w3.org/TR/REC-html40\"\n },\n }],\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:spreadsheet\"\n }\n }\n };\n }\n};\n\nvar excelWorkbook = {\n getTemplate: function () {\n return {\n name: \"ExcelWorkbook\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:excel\"\n }\n },\n children: [{\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowWidth\",\n textNode: \"15135\"\n }, {\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowTopX\",\n textNode: \"120\"\n }, {\n name: \"WindowTopY\",\n textNode: \"45\"\n }, {\n name: \"ProtectStructure\",\n textNode: \"False\"\n }, {\n name: \"ProtectWindow\",\n textNode: \"False\"\n }]\n };\n }\n};\n\nvar column = {\n getTemplate: function (c) {\n var width = c.width;\n return {\n name: \"Column\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Width: width\n }\n }]\n }\n };\n }\n};\n\nvar cell = {\n getTemplate: function (c) {\n var _a, _b;\n var mergeAcross = c.mergeAcross, styleId = c.styleId, data = c.data;\n var properties = {};\n if (mergeAcross) {\n properties.MergeAcross = mergeAcross;\n }\n if (styleId) {\n properties.StyleID = styleId;\n }\n return {\n name: \"Cell\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: properties\n }]\n },\n children: [{\n name: \"Data\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Type: (_a = data) === null || _a === void 0 ? void 0 : _a.type\n }\n }]\n },\n textNode: (_b = data) === null || _b === void 0 ? void 0 : _b.value\n }]\n };\n }\n};\n\nvar row = {\n getTemplate: function (r) {\n var cells = r.cells;\n return {\n name: \"Row\",\n children: cells.map(function (it) { return cell.getTemplate(it); })\n };\n }\n};\n\nvar worksheet = {\n getTemplate: function (ws) {\n var table = ws.table, name = ws.name;\n var columns = table.columns, rows = table.rows;\n var c = columns.map(function (it) { return column.getTemplate(it); });\n var r = rows.map(function (it) { return row.getTemplate(it); });\n return {\n name: \"Worksheet\",\n children: [{\n name: \"Table\",\n children: c.concat(r)\n }],\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Name: name\n }\n }]\n }\n };\n }\n};\n\nvar documentProperties = {\n getTemplate: function () {\n return {\n name: \"DocumentProperties\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:office\"\n }\n },\n children: [{\n name: \"Version\",\n textNode: \"12.00\"\n }]\n };\n }\n};\n\nvar alignment = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.alignment, vertical = _a.vertical, horizontal = _a.horizontal, indent = _a.indent, readingOrder = _a.readingOrder, rotate = _a.rotate, shrinkToFit = _a.shrinkToFit, verticalText = _a.verticalText, wrapText = _a.wrapText;\n return {\n name: 'Alignment',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Vertical: vertical,\n Horizontal: horizontal,\n Indent: indent,\n ReadingOrder: readingOrder,\n Rotate: rotate,\n ShrinkToFit: shrinkToFit,\n VerticalText: verticalText,\n WrapText: wrapText\n }\n }]\n }\n };\n }\n};\n\nvar borders = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.borders, borderBottom = _a.borderBottom, borderLeft = _a.borderLeft, borderRight = _a.borderRight, borderTop = _a.borderTop;\n return {\n name: 'Borders',\n children: [borderBottom, borderLeft, borderRight, borderTop].map(function (it, index) {\n var current = index == 0 ? \"Bottom\" : index == 1 ? \"Left\" : index == 2 ? \"Right\" : \"Top\";\n return {\n name: 'Border',\n properties: {\n prefixedAttributes: [{\n prefix: 'ss:',\n map: {\n Position: current,\n LineStyle: it.lineStyle,\n Weight: it.weight,\n Color: it.color\n }\n }]\n }\n };\n })\n };\n }\n};\n\nvar font = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.font, bold = _a.bold, fontName = _a.fontName, italic = _a.italic, color = _a.color, outline = _a.outline, shadow = _a.shadow, size = _a.size, strikeThrough = _a.strikeThrough, underline = _a.underline, verticalAlign = _a.verticalAlign, charSet = _a.charSet, family = _a.family;\n return {\n name: \"Font\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Bold: bold,\n FontName: fontName,\n Italic: italic,\n Color: color,\n Outline: outline,\n Shadow: shadow,\n Size: size,\n StrikeThrough: strikeThrough,\n Underline: underline,\n VerticalAlign: verticalAlign\n }\n }, {\n prefix: \"x:\",\n map: {\n CharSet: charSet,\n Family: family\n }\n }]\n }\n };\n }\n};\n\nvar interior = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.interior, color = _a.color, pattern = _a.pattern, patternColor = _a.patternColor;\n return {\n name: \"Interior\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Color: color,\n Pattern: pattern,\n PatternColor: patternColor\n }\n }]\n }\n };\n }\n};\n\nvar protection = {\n getTemplate: function (styleProperties) {\n return {\n name: \"Protection\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Protected: styleProperties.protection.protected,\n HideFormula: styleProperties.protection.hideFormula\n }\n }]\n }\n };\n }\n};\n\nvar numberFormat = {\n getTemplate: function (styleProperties) {\n var format = styleProperties.numberFormat.format;\n return {\n name: \"NumberFormat\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Format: format\n }\n }]\n }\n };\n }\n};\n\nvar style = {\n getTemplate: function (styleProperties) {\n var id = styleProperties.id, name = styleProperties.name;\n return {\n name: 'Style',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n ID: id,\n Name: name ? name : id\n }\n }]\n }\n };\n }\n};\n\n/**\n * See https://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx\n */\nvar ExcelXmlFactory = /** @class */ (function () {\n function ExcelXmlFactory() {\n }\n ExcelXmlFactory.createExcel = function (styles, currentWorksheet) {\n var header = this.excelXmlHeader();\n var docProps = documentProperties.getTemplate();\n var eWorkbook = excelWorkbook.getTemplate();\n var wb = this.workbook(docProps, eWorkbook, styles, currentWorksheet);\n return \"\" + header + XmlFactory.createXml(wb, function (boolean) { return boolean ? '1' : '0'; });\n };\n ExcelXmlFactory.workbook = function (docProperties, eWorkbook, styles, currentWorksheet) {\n var children = [\n docProperties,\n eWorkbook,\n this.stylesXmlElement(styles)\n ].concat(worksheet.getTemplate(currentWorksheet));\n return Object.assign({}, workbook.getTemplate(), { children: children });\n };\n ExcelXmlFactory.excelXmlHeader = function () {\n return \"\\n \\n \";\n };\n ExcelXmlFactory.stylesXmlElement = function (styles) {\n var _this = this;\n return {\n name: 'Styles',\n children: styles ? styles.map(function (it) { return _this.styleXmlElement(it); }) : []\n };\n };\n ExcelXmlFactory.styleXmlElement = function (styleProperties) {\n var children = _.compose(this.addProperty('alignment', styleProperties), this.addProperty('borders', styleProperties), this.addProperty('font', styleProperties), this.addProperty('interior', styleProperties), this.addProperty('protection', styleProperties), this.addProperty('numberFormat', styleProperties))([]);\n return Object.assign({}, style.getTemplate(styleProperties), { children: children });\n };\n ExcelXmlFactory.addProperty = function (property, styleProperties) {\n return function (children) {\n if (!styleProperties[property]) {\n return children;\n }\n var options = {\n alignment: alignment,\n borders: borders,\n font: font,\n interior: interior,\n numberFormat: numberFormat,\n protection: protection\n };\n return children.concat(options[property].getTemplate(styleProperties));\n };\n };\n ExcelXmlFactory.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXmlFactory;\n}());\n\nvar INCH_TO_EMU = 9525;\nvar numberFormatMap = {\n '0': 1,\n '0.00': 2,\n '#,##0': 3,\n '#,##0.00': 4,\n '0%': 9,\n '0.00%': 10,\n '0.00E+00': 11,\n '# ?/?': 12,\n '# ??/??': 13,\n 'mm-dd-yy': 14,\n 'd-mmm-yy': 15,\n 'd-mmm': 16,\n 'mmm-yy': 17,\n 'h:mm AM/PM': 18,\n 'h:mm:ss AM/PM': 19,\n 'h:mm': 20,\n 'h:mm:ss': 21,\n 'm/d/yy h:mm': 22,\n '#,##0 ;(#,##0)': 37,\n '#,##0 ;[Red](#,##0)': 38,\n '#,##0.00;(#,##0.00)': 39,\n '#,##0.00;[Red](#,##0.00)': 40,\n 'mm:ss': 45,\n '[h]:mm:ss': 46,\n 'mmss.0': 47,\n '##0.0E+0': 48,\n '@': 49\n};\n\nvar pixelsToPoint = function (pixels) {\n return Math.round(pixels * 72 / 96);\n};\nvar pointsToPixel = function (points) {\n return Math.round(points * 96 / 72);\n};\nvar pixelsToEMU = function (value) {\n return Math.ceil(value * INCH_TO_EMU);\n};\nvar getFontFamilyId = function (name) {\n if (name === undefined) {\n return;\n }\n var families = ['Automatic', 'Roman', 'Swiss', 'Modern', 'Script', 'Decorative'];\n var pos = families.indexOf(name || 'Automatic');\n return Math.max(pos, 0);\n};\nvar getHeightFromProperty = function (rowIndex, height) {\n if (!height) {\n return;\n }\n var finalHeight;\n if (typeof height === 'number') {\n finalHeight = height;\n }\n else {\n var heightFunc = height;\n finalHeight = heightFunc({ rowIndex: rowIndex });\n }\n return pixelsToPoint(finalHeight);\n};\nvar setExcelImageTotalWidth = function (image, columnsToExport) {\n var _a = image.position, colSpan = _a.colSpan, column = _a.column;\n if (image.width) {\n if (colSpan) {\n var columnsInSpan = columnsToExport.slice(column - 1, column + colSpan - 1);\n var totalWidth = 0;\n for (var i = 0; i < columnsInSpan.length; i++) {\n var colWidth = columnsInSpan[i].getActualWidth();\n if (image.width < totalWidth + colWidth) {\n image.position.colSpan = i + 1;\n image.totalWidth = image.width;\n image.width = image.totalWidth - totalWidth;\n break;\n }\n totalWidth += colWidth;\n }\n }\n else {\n image.totalWidth = image.width;\n }\n }\n};\nvar setExcelImageTotalHeight = function (image, rowHeight) {\n var _a = image.position, rowSpan = _a.rowSpan, row = _a.row;\n if (image.height) {\n if (rowSpan) {\n var totalHeight = 0;\n var counter = 0;\n for (var i = row; i < row + rowSpan; i++) {\n var nextRowHeight = pointsToPixel(getHeightFromProperty(i, rowHeight) || 20);\n if (image.height < totalHeight + nextRowHeight) {\n image.position.rowSpan = counter + 1;\n image.totalHeight = image.height;\n image.height = image.totalHeight - totalHeight;\n break;\n }\n totalHeight += nextRowHeight;\n counter++;\n }\n }\n else {\n image.totalHeight = image.height;\n }\n }\n};\nvar createXmlPart = function (body) {\n var header = XmlFactory.createHeader({\n encoding: 'UTF-8',\n standalone: 'yes'\n });\n var xmlBody = XmlFactory.createXml(body);\n return \"\" + header + xmlBody;\n};\nvar getExcelColumnName = function (colIdx) {\n var startCode = 65;\n var tableWidth = 26;\n var fromCharCode = String.fromCharCode;\n var pos = Math.floor(colIdx / tableWidth);\n var tableIdx = colIdx % tableWidth;\n if (!pos || colIdx === tableWidth) {\n return fromCharCode(startCode + colIdx - 1);\n }\n if (!tableIdx) {\n return getExcelColumnName(pos - 1) + 'Z';\n }\n if (pos < tableWidth) {\n return fromCharCode(startCode + pos - 1) + fromCharCode(startCode + tableIdx - 1);\n }\n return getExcelColumnName(pos) + fromCharCode(startCode + tableIdx - 1);\n};\n\nvar __extends$2_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$F = (undefined && undefined.__assign) || function () {\n __assign$F = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$F.apply(this, arguments);\n};\nvar __read$T = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$u = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$T(arguments[i]));\n return ar;\n};\nvar BaseExcelSerializingSession = /** @class */ (function (_super) {\n __extends$2_(BaseExcelSerializingSession, _super);\n function BaseExcelSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.mixedStyles = {};\n _this.mixedStyleCounter = 0;\n _this.rows = [];\n _this.config = Object.assign({}, config);\n _this.stylesByIds = {};\n _this.config.baseExcelStyles.forEach(function (style) {\n _this.stylesByIds[style.id] = style;\n });\n _this.excelStyles = __spread$u(_this.config.baseExcelStyles);\n return _this;\n }\n BaseExcelSerializingSession.prototype.addCustomContent = function (customContent) {\n var _this = this;\n customContent.forEach(function (row) {\n var rowLen = _this.rows.length + 1;\n var rowObj = {\n height: getHeightFromProperty(rowLen, row.height || _this.config.rowHeight),\n cells: (row.cells || []).map(function (cell, idx) {\n var _a;\n var image = _this.addImage(rowLen, _this.columnsToExport[idx], (_a = cell.data) === null || _a === void 0 ? void 0 : _a.value);\n var ret = __assign$F({}, cell);\n if (image) {\n ret.data = {};\n if (image.value != null) {\n ret.data.value = image.value;\n }\n else {\n ret.data.type = 'e';\n ret.data.value = null;\n }\n }\n return ret;\n }),\n outlineLevel: row.outlineLevel || undefined\n };\n if (row.collapsed != null) {\n rowObj.collapsed = row.collapsed;\n }\n if (row.hidden != null) {\n rowObj.hidden = row.hidden;\n }\n _this.rows.push(rowObj);\n });\n };\n BaseExcelSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n var _this = this;\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, this.config.headerRowHeight)\n });\n return {\n onColumn: function (columnGroup, header, index, span, collapsibleRanges) {\n var styleIds = _this.config.styleLinker({ rowType: RowType.HEADER_GROUPING, rowIndex: 1, value: \"grouping-\" + header, columnGroup: columnGroup });\n currentCells.push(__assign$F(__assign$F({}, _this.createMergedCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), header, span)), { collapsibleRanges: collapsibleRanges }));\n }\n };\n };\n BaseExcelSerializingSession.prototype.onNewHeaderRow = function () {\n return this.onNewRow(this.onNewHeaderColumn, this.config.headerRowHeight);\n };\n BaseExcelSerializingSession.prototype.onNewBodyRow = function () {\n return this.onNewRow(this.onNewBodyColumn, this.config.rowHeight);\n };\n BaseExcelSerializingSession.prototype.prepare = function (columnsToExport) {\n var _this = this;\n _super.prototype.prepare.call(this, columnsToExport);\n this.columnsToExport = __spread$u(columnsToExport);\n this.cols = columnsToExport.map(function (col, i) { return _this.convertColumnToExcel(col, i); });\n };\n BaseExcelSerializingSession.prototype.parse = function () {\n // adding custom content might have made some rows wider than the grid, so add new columns\n var longestRow = this.rows.reduce(function (a, b) { return Math.max(a, b.cells.length); }, 0);\n while (this.cols.length < longestRow) {\n this.cols.push(this.convertColumnToExcel(null, this.cols.length + 1));\n }\n var data = {\n name: this.config.sheetName,\n table: {\n columns: this.cols,\n rows: this.rows\n }\n };\n return this.createExcel(data);\n };\n BaseExcelSerializingSession.prototype.isFormula = function (value) {\n if (value == null) {\n return false;\n }\n return this.config.autoConvertFormulas && value.toString().startsWith('=');\n };\n BaseExcelSerializingSession.prototype.getStyleById = function (styleId) {\n if (styleId == null) {\n return null;\n }\n return this.stylesByIds[styleId] || null;\n };\n BaseExcelSerializingSession.prototype.convertColumnToExcel = function (column, index) {\n var columnWidth = this.config.columnWidth;\n if (columnWidth) {\n if (typeof columnWidth === 'number') {\n return { width: columnWidth };\n }\n return { width: columnWidth({ column: column, index: index }) };\n }\n if (column) {\n var smallestUsefulWidth = 75;\n return { width: Math.max(column.getActualWidth(), smallestUsefulWidth) };\n }\n return {};\n };\n BaseExcelSerializingSession.prototype.onNewHeaderColumn = function (rowIndex, currentCells) {\n var _this = this;\n return function (column, index) {\n var nameForCol = _this.extractHeaderValue(column);\n var styleIds = _this.config.styleLinker({ rowType: RowType.HEADER, rowIndex: rowIndex, value: nameForCol, column: column });\n currentCells.push(_this.createCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), nameForCol));\n };\n };\n BaseExcelSerializingSession.prototype.onNewRow = function (onNewColumnAccumulator, height) {\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, height)\n });\n return {\n onColumn: onNewColumnAccumulator.bind(this, this.rows.length, currentCells)()\n };\n };\n BaseExcelSerializingSession.prototype.onNewBodyColumn = function (rowIndex, currentCells) {\n var _this = this;\n var skipCols = 0;\n return function (column, index, node) {\n if (skipCols > 0) {\n skipCols -= 1;\n return;\n }\n if (!_this.config.gridOptionsWrapper.isGroupHideOpenParents() && node.level) {\n _.last(_this.rows).outlineLevel = node.level;\n }\n var valueForCell = _this.extractRowCellValue(column, index, rowIndex, Constants.EXPORT_TYPE_EXCEL, node);\n var styleIds = _this.config.styleLinker({ rowType: RowType.BODY, rowIndex: rowIndex, value: valueForCell, column: column, node: node });\n var excelStyleId = _this.getStyleId(styleIds);\n var colSpan = column.getColSpan(node);\n var addedImage = _this.addImage(rowIndex, column, valueForCell);\n if (addedImage) {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(addedImage.value), addedImage.value == null ? '' : addedImage.value));\n }\n else if (colSpan > 1) {\n skipCols = colSpan - 1;\n currentCells.push(_this.createMergedCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell, colSpan - 1));\n }\n else {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell));\n }\n };\n };\n BaseExcelSerializingSession.prototype.getStyleId = function (styleIds) {\n if (!styleIds || !styleIds.length) {\n return null;\n }\n if (styleIds.length === 1) {\n return styleIds[0];\n }\n var key = styleIds.join(\"-\");\n if (!this.mixedStyles[key]) {\n this.addNewMixedStyle(styleIds);\n }\n return this.mixedStyles[key].excelID;\n };\n BaseExcelSerializingSession.prototype.addNewMixedStyle = function (styleIds) {\n var _this = this;\n this.mixedStyleCounter += 1;\n var excelId = \"mixedStyle\" + this.mixedStyleCounter;\n var resultantStyle = {};\n styleIds.forEach(function (styleId) {\n _this.excelStyles.forEach(function (excelStyle) {\n if (excelStyle.id === styleId) {\n _.mergeDeep(resultantStyle, _.deepCloneObject(excelStyle));\n }\n });\n });\n resultantStyle.id = excelId;\n resultantStyle.name = excelId;\n var key = styleIds.join(\"-\");\n this.mixedStyles[key] = {\n excelID: excelId,\n key: key,\n result: resultantStyle\n };\n this.excelStyles.push(resultantStyle);\n this.stylesByIds[excelId] = resultantStyle;\n };\n return BaseExcelSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$2Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXmlSerializingSession = /** @class */ (function (_super) {\n __extends$2Z(ExcelXmlSerializingSession, _super);\n function ExcelXmlSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXmlSerializingSession.prototype.createExcel = function (data) {\n return ExcelXmlFactory.createExcel(this.excelStyles, data);\n };\n ExcelXmlSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n return _.isNumeric(valueForCell) ? 'Number' : 'String';\n };\n ExcelXmlSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'Formula';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'string':\n return 'Formula';\n case 'number':\n return 'Number';\n case 'datetime':\n return 'DateTime';\n case 'error':\n return 'Error';\n case 'boolean':\n return 'Boolean';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXmlSerializingSession.prototype.addImage = function () {\n return;\n };\n ExcelXmlSerializingSession.prototype.createCell = function (styleId, type, value) {\n var actualStyle = this.getStyleById(styleId);\n var typeTransformed = (this.getType(type, actualStyle, value) || type);\n return {\n styleId: !!actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getValueTransformed(typeTransformed, value)\n }\n };\n };\n ExcelXmlSerializingSession.prototype.getValueTransformed = function (typeTransformed, value) {\n var _this = this;\n var wrapText = function (val) {\n if (_this.config.suppressTextAsCDATA) {\n return _.escapeString(val);\n }\n var cdataStart = '';\n var cdataEndRegex = new RegExp(cdataEnd, \"g\");\n return cdataStart\n // CDATA sections are closed by the character sequence ']]>' and there is no\n // way of escaping this, so if the text contains the offending sequence, emit\n // multiple CDATA sections and split the characters between them.\n + String(val).replace(cdataEndRegex, ']]' + cdataEnd + cdataStart + '>')\n + cdataEnd;\n };\n var convertBoolean = function (val) {\n if (!val || val === '0' || val === 'false') {\n return '0';\n }\n return '1';\n };\n switch (typeTransformed) {\n case 'String':\n return wrapText(value);\n case 'Number':\n return Number(value).valueOf() + '';\n case 'Boolean':\n return convertBoolean(value);\n default:\n return value;\n }\n };\n ExcelXmlSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: value\n },\n mergeAcross: numOfCells\n };\n };\n return ExcelXmlSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar coreFactory = {\n getTemplate: function (author) {\n var dt = new Date();\n var jsonDate = dt.toJSON();\n return {\n name: 'cp:coreProperties',\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n cp: \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",\n dc: 'http://purl.org/dc/elements/1.1/',\n dcterms: 'http://purl.org/dc/terms/',\n dcmitype: 'http://purl.org/dc/dcmitype/',\n xsi: 'http://www.w3.org/2001/XMLSchema-instance'\n }\n }]\n },\n children: [{\n name: 'dc:creator',\n textNode: author\n }, {\n name: 'dc:title',\n textNode: 'Workbook'\n }, {\n name: 'dcterms:created',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }, {\n name: 'dcterms:modified',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }]\n };\n }\n};\n\nvar contentTypeFactory = {\n getTemplate: function (config) {\n var name = config.name, ContentType = config.ContentType, Extension = config.Extension, PartName = config.PartName;\n return {\n name: name,\n properties: {\n rawMap: {\n Extension: Extension,\n PartName: PartName,\n ContentType: ContentType\n }\n }\n };\n }\n};\n\nvar __read$S = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$t = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$S(arguments[i]));\n return ar;\n};\nvar contentTypesFactory = {\n getTemplate: function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml',\n PartName: \"/xl/worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var sheetsWithImages = ExcelXlsxFactory.worksheetImages.size;\n var imageTypesObject = {};\n ExcelXlsxFactory.workbookImageIds.forEach(function (v) {\n imageTypesObject[v.type] = true;\n });\n var imageDocs = new Array(sheetsWithImages).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml',\n PartName: \"/xl/drawings/drawing\" + (i + 1) + \".xml\"\n }); });\n var imageTypes = Object.keys(imageTypesObject).map(function (ext) { return ({\n name: 'Default',\n ContentType: \"image/\" + ext,\n Extension: ext\n }); });\n var children = __spread$t(imageTypes, [\n {\n name: 'Default',\n Extension: 'rels',\n ContentType: 'application/vnd.openxmlformats-package.relationships+xml'\n }, {\n name: 'Default',\n ContentType: 'application/xml',\n Extension: 'xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml',\n PartName: \"/xl/workbook.xml\"\n }\n ], worksheets, [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.theme+xml',\n PartName: '/xl/theme/theme1.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml',\n PartName: '/xl/styles.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml',\n PartName: '/xl/sharedStrings.xml'\n }\n ], imageDocs, [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-package.core-properties+xml',\n PartName: '/docProps/core.xml'\n }\n ]).map(function (contentType) { return contentTypeFactory.getTemplate(contentType); });\n return {\n name: \"Types\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/content-types\"\n }\n },\n children: children\n };\n }\n};\n\nvar getAnchor = function (name, imageAnchor) { return ({\n name: \"xdr:\" + name,\n children: [{\n name: 'xdr:col',\n textNode: (imageAnchor.col).toString()\n }, {\n name: 'xdr:colOff',\n textNode: imageAnchor.offsetX.toString()\n }, {\n name: 'xdr:row',\n textNode: imageAnchor.row.toString()\n }, {\n name: 'xdr:rowOff',\n textNode: imageAnchor.offsetY.toString()\n }]\n}); };\nvar getExt = function (image) {\n var children = [{\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}'\n }\n },\n children: [{\n name: 'a16:creationId',\n properties: {\n rawMap: {\n 'id': '{822E6D20-D7BC-2841-A643-D49A6EF008A2}',\n 'xmlns:a16': 'http://schemas.microsoft.com/office/drawing/2014/main'\n }\n }\n }]\n }];\n var recolor = image.recolor && image.recolor.toLowerCase();\n switch (recolor) {\n case 'grayscale':\n case 'sepia':\n case 'washout':\n children.push({\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{C183D7F6-B498-43B3-948B-1728B52AA6E4}'\n }\n },\n children: [{\n name: 'adec:decorative',\n properties: {\n rawMap: {\n 'val': '0',\n 'xmlns:adec': 'http://schemas.microsoft.com/office/drawing/2017/decorative'\n }\n }\n }]\n });\n }\n return {\n name: 'a:extLst',\n children: children\n };\n};\nvar getNvPicPr = function (image, index) { return ({\n name: 'xdr:nvPicPr',\n children: [{\n name: 'xdr:cNvPr',\n properties: {\n rawMap: {\n id: index,\n name: image.id,\n descr: image.altText != null ? image.altText : undefined\n }\n },\n children: [getExt(image)]\n }, {\n name: 'xdr:cNvPicPr',\n properties: {\n rawMap: {\n preferRelativeResize: '0'\n }\n },\n children: [{\n name: 'a:picLocks'\n }]\n }]\n}); };\nvar getColorDetails = function (color) {\n if (!color.saturation && !color.tint) {\n return;\n }\n var ret = [];\n if (color.saturation) {\n ret.push({\n name: 'a:satMod',\n properties: {\n rawMap: {\n val: color.saturation * 1000\n }\n }\n });\n }\n if (color.tint) {\n ret.push({\n name: 'a:tint',\n properties: {\n rawMap: {\n val: color.tint * 1000\n }\n }\n });\n }\n return ret;\n};\nvar getDuoTone = function (primaryColor, secondaryColor) {\n return ({\n name: 'a:duotone',\n children: [{\n name: 'a:prstClr',\n properties: {\n rawMap: {\n val: primaryColor.color\n }\n },\n children: getColorDetails(primaryColor)\n }, {\n name: 'a:srgbClr',\n properties: {\n rawMap: {\n val: secondaryColor.color\n }\n },\n children: getColorDetails(secondaryColor)\n }]\n });\n};\nvar getBlipFill = function (image, index) {\n var blipChildren;\n if (image.transparency) {\n var transparency = Math.min(Math.max(image.transparency, 0), 100);\n blipChildren = [{\n name: 'a:alphaModFix',\n properties: {\n rawMap: {\n amt: 100000 - Math.round(transparency * 1000),\n }\n }\n }];\n }\n if (image.recolor) {\n if (!blipChildren) {\n blipChildren = [];\n }\n switch (image.recolor.toLocaleLowerCase()) {\n case 'grayscale':\n blipChildren.push({ name: 'a:grayscl' });\n break;\n case 'sepia':\n blipChildren.push(getDuoTone({ color: 'black' }, { color: 'D9C3A5', tint: 50, saturation: 180 }));\n break;\n case 'washout':\n blipChildren.push({\n name: 'a:lum',\n properties: {\n rawMap: {\n bright: '70000',\n contrast: '-70000'\n }\n }\n });\n break;\n }\n }\n return ({\n name: 'xdr:blipFill',\n children: [{\n name: 'a:blip',\n properties: {\n rawMap: {\n 'cstate': 'print',\n 'r:embed': \"rId\" + index,\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'\n }\n },\n children: blipChildren\n }, {\n name: 'a:stretch',\n children: [{\n name: 'a:fillRect'\n }]\n }]\n });\n};\nvar getSpPr = function (image, imageBoxSize) {\n var xfrm = {\n name: 'a:xfrm',\n children: [{\n name: 'a:off',\n properties: {\n rawMap: {\n x: 0,\n y: 0\n }\n }\n }, {\n name: 'a:ext',\n properties: {\n rawMap: {\n cx: imageBoxSize.width,\n cy: imageBoxSize.height\n }\n }\n }]\n };\n if (image.rotation) {\n var rotation = image.rotation;\n xfrm.properties = {\n rawMap: {\n rot: Math.min(Math.max(rotation, 0), 360) * 60000\n }\n };\n }\n var prstGeom = {\n name: 'a:prstGeom',\n properties: {\n rawMap: {\n prst: 'rect'\n }\n },\n children: [{ name: 'a:avLst' }]\n };\n var ret = {\n name: 'xdr:spPr',\n children: [xfrm, prstGeom]\n };\n return ret;\n};\nvar getImageBoxSize = function (image) {\n image.fitCell = !!image.fitCell || (!image.width || !image.height);\n var _a = image.position, position = _a === void 0 ? {} : _a, fitCell = image.fitCell, _b = image.width, width = _b === void 0 ? 0 : _b, _c = image.height, height = _c === void 0 ? 0 : _c, totalHeight = image.totalHeight, totalWidth = image.totalWidth;\n var _d = position.offsetX, offsetX = _d === void 0 ? 0 : _d, _e = position.offsetY, offsetY = _e === void 0 ? 0 : _e, _f = position.row, row = _f === void 0 ? 1 : _f, _g = position.rowSpan, rowSpan = _g === void 0 ? 1 : _g, _h = position.column, column = _h === void 0 ? 1 : _h, _j = position.colSpan, colSpan = _j === void 0 ? 1 : _j;\n return {\n from: {\n row: row - 1,\n col: column - 1,\n offsetX: pixelsToEMU(offsetX),\n offsetY: pixelsToEMU(offsetY)\n },\n to: {\n row: (row - 1) + (fitCell ? 1 : rowSpan - 1),\n col: (column - 1) + (fitCell ? 1 : colSpan - 1),\n offsetX: pixelsToEMU(width + offsetX),\n offsetY: pixelsToEMU(height + offsetY)\n },\n height: pixelsToEMU(totalHeight || height),\n width: pixelsToEMU(totalWidth || width)\n };\n};\nvar getPicture = function (image, currentIndex, worksheetImageIndex, imageBoxSize) {\n return {\n name: 'xdr:pic',\n children: [\n getNvPicPr(image, currentIndex + 1),\n getBlipFill(image, worksheetImageIndex + 1),\n getSpPr(image, imageBoxSize)\n ]\n };\n};\nvar drawingFactory = {\n getTemplate: function (config) {\n var sheetIndex = config.sheetIndex;\n var sheetImages = ExcelXlsxFactory.worksheetImages.get(sheetIndex);\n var sheetImageIds = ExcelXlsxFactory.worksheetImageIds.get(sheetIndex);\n var children = sheetImages.map(function (image, idx) {\n var boxSize = getImageBoxSize(image);\n return ({\n name: 'xdr:twoCellAnchor',\n properties: {\n rawMap: {\n editAs: 'absolute'\n }\n },\n children: [\n getAnchor('from', boxSize.from),\n getAnchor('to', boxSize.to),\n getPicture(image, idx, sheetImageIds.get(image.id).index, boxSize),\n { name: 'xdr:clientData' }\n ]\n });\n });\n return {\n name: 'xdr:wsDr',\n properties: {\n rawMap: {\n 'xmlns:a': 'http://schemas.openxmlformats.org/drawingml/2006/main',\n 'xmlns:xdr': 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'\n }\n },\n children: children\n };\n }\n};\n\nvar __read$R = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getColorChildren = function (props) {\n var _a = __read$R(props, 4), type = _a[0], innerType = _a[1], val = _a[2], lastClr = _a[3];\n return {\n name: \"a:\" + type,\n children: [{\n name: \"a:\" + innerType,\n properties: {\n rawMap: {\n val: val,\n lastClr: lastClr\n }\n }\n }]\n };\n};\nvar colorScheme = {\n getTemplate: function () {\n return {\n name: \"a:clrScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getColorChildren(['dk1', 'sysClr', 'windowText', '000000']),\n getColorChildren(['lt1', 'sysClr', 'window', 'FFFFFF']),\n getColorChildren(['dk2', 'srgbClr', '44546A']),\n getColorChildren(['lt2', 'srgbClr', 'E7E6E6']),\n getColorChildren(['accent1', 'srgbClr', '4472C4']),\n getColorChildren(['accent2', 'srgbClr', 'ED7D31']),\n getColorChildren(['accent3', 'srgbClr', 'A5A5A5']),\n getColorChildren(['accent4', 'srgbClr', 'FFC000']),\n getColorChildren(['accent5', 'srgbClr', '5B9BD5']),\n getColorChildren(['accent6', 'srgbClr', '70AD47']),\n getColorChildren(['hlink', 'srgbClr', '0563C1']),\n getColorChildren(['folHlink', 'srgbClr', '954F72'])\n ]\n };\n }\n};\n\nvar __read$Q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getFont$3 = function (props) {\n var _a = __read$Q(props, 4), type = _a[0], typeface = _a[1], script = _a[2], panose = _a[3];\n return {\n name: \"a:\" + type,\n properties: {\n rawMap: {\n script: script,\n typeface: typeface,\n panose: panose\n }\n }\n };\n};\nvar fontScheme = {\n getTemplate: function () {\n var utf8_encode = _.utf8_encode;\n return {\n name: \"a:fontScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [{\n name: 'a:majorFont',\n children: [\n getFont$3(['latin', 'Calibri Light', undefined, '020F0302020204030204']),\n getFont$3(['ea', '']),\n getFont$3(['cs', '']),\n getFont$3(['font', utf8_encode('游ゴシック Light'), 'Jpan']),\n getFont$3(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont$3(['font', utf8_encode('等线 Light'), 'Hans']),\n getFont$3(['font', utf8_encode('新細明體'), 'Hant']),\n getFont$3(['font', 'Times New Roman', 'Arab']),\n getFont$3(['font', 'Times New Roman', 'Hebr']),\n getFont$3(['font', 'Tahoma', 'Thai']),\n getFont$3(['font', 'Nyala', 'Ethi']),\n getFont$3(['font', 'Vrinda', 'Beng']),\n getFont$3(['font', 'Shruti', 'Gujr']),\n getFont$3(['font', 'MoolBoran', 'Khmr']),\n getFont$3(['font', 'Tunga', 'Knda']),\n getFont$3(['font', 'Raavi', 'Guru']),\n getFont$3(['font', 'Euphemia', 'Cans']),\n getFont$3(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont$3(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont$3(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont$3(['font', 'MV Boli', 'Thaa']),\n getFont$3(['font', 'Mangal', 'Deva']),\n getFont$3(['font', 'Gautami', 'Telu']),\n getFont$3(['font', 'Latha', 'Taml']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont$3(['font', 'Kalinga', 'Orya']),\n getFont$3(['font', 'Kartika', 'Mlym']),\n getFont$3(['font', 'DokChampa', 'Laoo']),\n getFont$3(['font', 'Iskoola Pota', 'Sinh']),\n getFont$3(['font', 'Mongolian Baiti', 'Mong']),\n getFont$3(['font', 'Times New Roman', 'Viet']),\n getFont$3(['font', 'Microsoft Uighur', 'Uigh']),\n getFont$3(['font', 'Sylfaen', 'Geor']),\n getFont$3(['font', 'Arial', 'Armn']),\n getFont$3(['font', 'Leelawadee UI', 'Bugi']),\n getFont$3(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont$3(['font', 'Javanese Text', 'Java']),\n getFont$3(['font', 'Segoe UI', 'Lisu']),\n getFont$3(['font', 'Myanmar Text', 'Mymr']),\n getFont$3(['font', 'Ebrima', 'Nkoo']),\n getFont$3(['font', 'Nirmala UI', 'Olck']),\n getFont$3(['font', 'Ebrima', 'Osma']),\n getFont$3(['font', 'Phagspa', 'Phag']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syre']),\n getFont$3(['font', 'Nirmala UI', 'Sora']),\n getFont$3(['font', 'Microsoft Tai Le', 'Tale']),\n getFont$3(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont$3(['font', 'Ebrima', 'Tfng'])\n ]\n }, {\n name: 'a:minorFont',\n children: [\n getFont$3(['latin', 'Calibri', undefined, '020F0502020204030204']),\n getFont$3(['ea', '']),\n getFont$3(['cs', '']),\n getFont$3(['font', utf8_encode('游ゴシック'), 'Jpan']),\n getFont$3(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont$3(['font', utf8_encode('等线'), 'Hans']),\n getFont$3(['font', utf8_encode('新細明體'), 'Hant']),\n getFont$3(['font', 'Arial', 'Arab']),\n getFont$3(['font', 'Arial', 'Hebr']),\n getFont$3(['font', 'Tahoma', 'Thai']),\n getFont$3(['font', 'Nyala', 'Ethi']),\n getFont$3(['font', 'Vrinda', 'Beng']),\n getFont$3(['font', 'Shruti', 'Gujr']),\n getFont$3(['font', 'DaunPenh', 'Khmr']),\n getFont$3(['font', 'Tunga', 'Knda']),\n getFont$3(['font', 'Raavi', 'Guru']),\n getFont$3(['font', 'Euphemia', 'Cans']),\n getFont$3(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont$3(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont$3(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont$3(['font', 'MV Boli', 'Thaa']),\n getFont$3(['font', 'Mangal', 'Deva']),\n getFont$3(['font', 'Gautami', 'Telu']),\n getFont$3(['font', 'Latha', 'Taml']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont$3(['font', 'Kalinga', 'Orya']),\n getFont$3(['font', 'Kartika', 'Mlym']),\n getFont$3(['font', 'DokChampa', 'Laoo']),\n getFont$3(['font', 'Iskoola Pota', 'Sinh']),\n getFont$3(['font', 'Mongolian Baiti', 'Mong']),\n getFont$3(['font', 'Arial', 'Viet']),\n getFont$3(['font', 'Microsoft Uighur', 'Uigh']),\n getFont$3(['font', 'Sylfaen', 'Geor']),\n getFont$3(['font', 'Arial', 'Armn']),\n getFont$3(['font', 'Leelawadee UI', 'Bugi']),\n getFont$3(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont$3(['font', 'Javanese Text', 'Java']),\n getFont$3(['font', 'Segoe UI', 'Lisu']),\n getFont$3(['font', 'Myanmar Text', 'Mymr']),\n getFont$3(['font', 'Ebrima', 'Nkoo']),\n getFont$3(['font', 'Nirmala UI', 'Olck']),\n getFont$3(['font', 'Ebrima', 'Osma']),\n getFont$3(['font', 'Phagspa', 'Phag']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont$3(['font', 'Estrangelo Edessa', 'Syre']),\n getFont$3(['font', 'Nirmala UI', 'Sora']),\n getFont$3(['font', 'Microsoft Tai Le', 'Tale']),\n getFont$3(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont$3(['font', 'Ebrima', 'Tfng'])\n ]\n }]\n };\n }\n};\n\nvar __read$P = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getPropertyVal = function (name, val, children) { return ({\n name: \"a:\" + name,\n properties: {\n rawMap: {\n val: val\n }\n },\n children: children\n}); };\nvar getGs = function (props) {\n var _a = __read$P(props, 6), pos = _a[0], schemeColor = _a[1], satMod = _a[2], lumMod = _a[3], tint = _a[4], shade = _a[5];\n var children = [];\n children.push(getPropertyVal('satMod', satMod));\n if (lumMod) {\n children.push(getPropertyVal('lumMod', lumMod));\n }\n if (tint) {\n children.push(getPropertyVal('tint', tint));\n }\n if (shade) {\n children.push(getPropertyVal('shade', shade));\n }\n return {\n name: 'a:gs',\n properties: {\n rawMap: {\n pos: pos\n }\n },\n children: [{\n name: 'a:schemeClr',\n properties: {\n rawMap: {\n val: schemeColor\n }\n },\n children: children\n }]\n };\n};\nvar getSolidFill = function (val, children) { return ({\n name: 'a:solidFill',\n children: [getPropertyVal('schemeClr', val, children)]\n}); };\nvar getGradFill = function (props) {\n var _a = __read$P(props, 5), rotWithShape = _a[0], gs1 = _a[1], gs2 = _a[2], gs3 = _a[3], lin = _a[4];\n var _b = __read$P(lin, 2), ang = _b[0], scaled = _b[1];\n return {\n name: 'a:gradFill',\n properties: {\n rawMap: {\n rotWithShape: rotWithShape\n }\n },\n children: [{\n name: 'a:gsLst',\n children: [\n getGs(gs1),\n getGs(gs2),\n getGs(gs3)\n ]\n }, {\n name: 'a:lin',\n properties: {\n rawMap: {\n ang: ang,\n scaled: scaled\n }\n }\n }]\n };\n};\nvar getLine = function (props) {\n var _a = __read$P(props, 4), w = _a[0], cap = _a[1], cmpd = _a[2], algn = _a[3];\n return {\n name: 'a:ln',\n properties: {\n rawMap: { w: w, cap: cap, cmpd: cmpd, algn: algn }\n },\n children: [\n getSolidFill('phClr'),\n getPropertyVal('prstDash', 'solid'),\n {\n name: 'a:miter',\n properties: {\n rawMap: {\n lim: '800000'\n }\n }\n }\n ]\n };\n};\nvar getEffectStyle = function (shadow) {\n var children = [];\n if (shadow) {\n var _a = __read$P(shadow, 5), blurRad = _a[0], dist = _a[1], dir = _a[2], algn = _a[3], rotWithShape = _a[4];\n children.push({\n name: 'a:outerShdw',\n properties: {\n rawMap: { blurRad: blurRad, dist: dist, dir: dir, algn: algn, rotWithShape: rotWithShape }\n },\n children: [\n getPropertyVal('srgbClr', '000000', [getPropertyVal('alpha', '63000')])\n ]\n });\n }\n return {\n name: 'a:effectStyle',\n children: [Object.assign({}, {\n name: 'a:effectLst'\n }, children.length ? { children: children } : {})]\n };\n};\nvar getFillStyleList = function () { return ({\n name: 'a:fillStyleLst',\n children: [\n getSolidFill('phClr'),\n getGradFill([\n '1',\n ['0', 'phClr', '105000', '110000', '67000'],\n ['50000', 'phClr', '103000', '105000', '73000'],\n ['100000', 'phClr', '109000', '105000', '81000'],\n ['5400000', '0']\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '103000', '102000', '94000'],\n ['50000', 'phClr', '110000', '100000', undefined, '100000'],\n ['100000', 'phClr', '120000', '99000', undefined, '78000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar getLineStyleList = function () { return ({\n name: 'a:lnStyleLst',\n children: [\n getLine(['6350', 'flat', 'sng', 'ctr']),\n getLine(['12700', 'flat', 'sng', 'ctr']),\n getLine(['19050', 'flat', 'sng', 'ctr'])\n ]\n}); };\nvar getEffectStyleList = function () { return ({\n name: 'a:effectStyleLst',\n children: [\n getEffectStyle(),\n getEffectStyle(),\n getEffectStyle(['57150', '19050', '5400000', 'ctr', '0'])\n ]\n}); };\nvar getBgFillStyleList = function () { return ({\n name: 'a:bgFillStyleLst',\n children: [\n getSolidFill('phClr'),\n getSolidFill('phClr', [\n getPropertyVal('tint', '95000'),\n getPropertyVal('satMod', '170000'),\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '150000', '102000', '93000', '98000'],\n ['50000', 'phClr', '130000', '103000', '98000', '90000'],\n ['100000', 'phClr', '120000', undefined, undefined, '63000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar formatScheme = {\n getTemplate: function () {\n return {\n name: \"a:fmtScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getFillStyleList(),\n getLineStyleList(),\n getEffectStyleList(),\n getBgFillStyleList()\n ]\n };\n }\n};\n\nvar themeElements = {\n getTemplate: function () {\n return {\n name: \"a:themeElements\",\n children: [\n colorScheme.getTemplate(),\n fontScheme.getTemplate(),\n formatScheme.getTemplate()\n ]\n };\n }\n};\n\nvar officeTheme = {\n getTemplate: function () {\n return {\n name: \"a:theme\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n a: \"http://schemas.openxmlformats.org/drawingml/2006/main\"\n },\n }],\n rawMap: {\n name: \"Office Theme\"\n }\n },\n children: [\n themeElements.getTemplate(),\n {\n name: 'a:objectDefaults'\n },\n {\n name: 'a:extraClrSchemeLst'\n }\n ]\n };\n }\n};\n\nvar buildSharedString = function (strMap) {\n var ret = [];\n strMap.forEach(function (val, key) {\n var textNode = key.toString();\n var child = {\n name: 't',\n textNode: _.utf8_encode(_.escapeString(textNode))\n };\n // if we have leading or trailing spaces, instruct Excel not to trim them\n var preserveSpaces = textNode.trim().length !== textNode.length;\n if (preserveSpaces) {\n child.properties = {\n rawMap: {\n \"xml:space\": \"preserve\"\n }\n };\n }\n ret.push({\n name: 'si',\n children: [child]\n });\n });\n return ret;\n};\nvar sharedStrings = {\n getTemplate: function (strings) {\n return {\n name: \"sst\",\n properties: {\n rawMap: {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n count: strings.size,\n uniqueCount: strings.size\n }\n },\n children: buildSharedString(strings)\n };\n }\n};\n\nvar numberFormatFactory = {\n getTemplate: function (numberFormat) {\n var formatCode = numberFormat.formatCode, numFmtId = numberFormat.numFmtId;\n return {\n name: \"numFmt\",\n properties: {\n rawMap: {\n formatCode: formatCode,\n numFmtId: numFmtId\n }\n }\n };\n }\n};\n\nvar numberFormatsFactory = {\n getTemplate: function (numberFormats) {\n return {\n name: \"numFmts\",\n properties: {\n rawMap: {\n count: numberFormats.length\n }\n },\n children: numberFormats.map(function (numberFormat) { return numberFormatFactory.getTemplate(numberFormat); })\n };\n }\n};\n\nvar fontFactory = {\n getTemplate: function (font) {\n var size = font.size, colorTheme = font.colorTheme, _a = font.color, color = _a === void 0 ? 'FF000000' : _a, _b = font.fontName, fontName = _b === void 0 ? 'Calibri' : _b, family = font.family, scheme = font.scheme, italic = font.italic, bold = font.bold, strikeThrough = font.strikeThrough, outline = font.outline, shadow = font.shadow, underline = font.underline, verticalAlign = font.verticalAlign;\n var children = [\n { name: 'sz', properties: { rawMap: { val: size } } },\n { name: 'color', properties: { rawMap: { theme: colorTheme, rgb: color } } },\n { name: 'name', properties: { rawMap: { val: fontName } } }\n ];\n if (family) {\n children.push({ name: 'family', properties: { rawMap: { val: family } } });\n }\n if (scheme) {\n children.push({ name: 'scheme', properties: { rawMap: { val: scheme } } });\n }\n if (italic) {\n children.push({ name: 'i' });\n }\n if (bold) {\n children.push({ name: 'b' });\n }\n if (strikeThrough) {\n children.push({ name: 'strike' });\n }\n if (outline) {\n children.push({ name: 'outline' });\n }\n if (shadow) {\n children.push({ name: 'shadow' });\n }\n if (underline) {\n children.push({ name: 'u', properties: { rawMap: { val: underline } } });\n }\n if (verticalAlign) {\n children.push({ name: 'vertAlign', properties: { rawMap: { val: verticalAlign } } });\n }\n return { name: \"font\", children: children };\n }\n};\n\nvar fontsFactory = {\n getTemplate: function (fonts) {\n return {\n name: \"fonts\",\n properties: {\n rawMap: {\n count: fonts.length\n }\n },\n children: fonts.map(function (font) { return fontFactory.getTemplate(font); })\n };\n }\n};\n\nvar fillFactory = {\n getTemplate: function (fill) {\n var patternType = fill.patternType, fgTheme = fill.fgTheme, fgTint = fill.fgTint, fgRgb = fill.fgRgb, bgRgb = fill.bgRgb, bgIndexed = fill.bgIndexed;\n var pf = {\n name: 'patternFill',\n properties: {\n rawMap: {\n patternType: patternType\n }\n }\n };\n if (fgTheme || fgTint || fgRgb) {\n pf.children = [{\n name: 'fgColor',\n properties: {\n rawMap: {\n theme: fgTheme,\n tint: fgTint,\n rgb: fgRgb\n }\n }\n }];\n }\n if (bgIndexed || bgRgb) {\n if (!pf.children) {\n pf.children = [];\n }\n pf.children.push({\n name: 'bgColor',\n properties: {\n rawMap: {\n indexed: bgIndexed,\n rgb: bgRgb\n }\n }\n });\n }\n return {\n name: \"fill\",\n children: [pf]\n };\n }\n};\n\nvar fillsFactory = {\n getTemplate: function (fills) {\n return {\n name: \"fills\",\n properties: {\n rawMap: {\n count: fills.length\n }\n },\n children: fills.map(function (fill) { return fillFactory.getTemplate(fill); })\n };\n }\n};\n\nvar getWeightName = function (value) {\n switch (value) {\n case 1: return 'thin';\n case 2: return 'medium';\n case 3: return 'thick';\n default: return 'hair';\n }\n};\nvar mappedBorderNames = {\n None: 'None',\n Dot: 'Dotted',\n Dash: 'Dashed',\n Double: 'Double',\n DashDot: 'DashDot',\n DashDotDot: 'DashDotDot',\n SlantDashDot: 'SlantDashDot'\n};\nvar mediumBorders = ['Dashed', 'DashDot', 'DashDotDot'];\nvar colorMap = {\n None: 'none',\n Solid: 'solid',\n Gray50: 'mediumGray',\n Gray75: 'darkGray',\n Gray25: 'lightGray',\n HorzStripe: 'darkHorizontal',\n VertStripe: 'darkVertical',\n ReverseDiagStripe: 'darkDown',\n DiagStripe: 'darkUp',\n DiagCross: 'darkGrid',\n ThickDiagCross: 'darkTrellis',\n ThinHorzStripe: 'lightHorizontal',\n ThinVertStripe: 'lightVertical',\n ThinReverseDiagStripe: 'lightDown',\n ThinDiagStripe: 'lightUp',\n ThinHorzCross: 'lightGrid',\n ThinDiagCross: 'lightTrellis',\n Gray125: 'gray125',\n Gray0625: 'gray0625'\n};\nvar horizontalAlignmentMap = {\n Automatic: 'general',\n Left: 'left',\n Center: 'center',\n Right: 'right',\n Fill: 'fill',\n Justify: 'justify',\n CenterAcrossSelection: 'centerContinuous',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar verticalAlignmentMap = {\n Automatic: undefined,\n Top: 'top',\n Bottom: 'bottom',\n Center: 'center',\n Justify: 'justify',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar convertLegacyPattern = function (name) {\n if (!name) {\n return 'none';\n }\n return colorMap[name] || name;\n};\nvar convertLegacyColor = function (color) {\n if (color == undefined) {\n return color;\n }\n if (color.charAt(0) === '#') {\n color = color.substr(1);\n }\n return color.length === 6 ? 'FF' + color : color;\n};\nvar convertLegacyBorder = function (type, weight) {\n if (!type) {\n return 'thin';\n }\n // Legacy Types are: None, Continuous, Dash, Dot, DashDot, DashDotDot, SlantDashDot, and Double\n // Weight represents: 0—Hairline, 1—Thin , 2—Medium, 3—Thick\n // New types: none, thin, medium, dashed, dotted, thick, double, hair, mediumDashed, dashDot, mediumDashDot,\n // dashDotDot, mediumDashDotDot, slantDashDot\n var namedWeight = getWeightName(weight);\n var mappedName = mappedBorderNames[type];\n if (type === 'Continuous') {\n return namedWeight;\n }\n if (namedWeight === 'medium' && mediumBorders.indexOf(mappedName) !== -1) {\n return \"medium\" + mappedName;\n }\n return mappedName.charAt(0).toLowerCase() + mappedName.substr(1);\n};\nvar convertLegacyHorizontalAlignment = function (alignment) {\n return horizontalAlignmentMap[alignment] || 'general';\n};\nvar convertLegacyVerticalAlignment = function (alignment) {\n return verticalAlignmentMap[alignment] || undefined;\n};\n\nvar getBorderColor = function (color) {\n return {\n name: 'color',\n properties: {\n rawMap: {\n rgb: convertLegacyColor(color || '#000000')\n }\n }\n };\n};\nvar borderFactory$1 = {\n getTemplate: function (border) {\n var left = border.left, right = border.right, top = border.top, bottom = border.bottom, diagonal = border.diagonal;\n var leftChildren = left ? [getBorderColor(left.color)] : undefined;\n var rightChildren = right ? [getBorderColor(right.color)] : undefined;\n var topChildren = top ? [getBorderColor(top.color)] : undefined;\n var bottomChildren = bottom ? [getBorderColor(bottom.color)] : undefined;\n var diagonalChildren = diagonal ? [getBorderColor(diagonal.color)] : undefined;\n return {\n name: 'border',\n children: [{\n name: 'left',\n properties: { rawMap: { style: left && left.style } },\n children: leftChildren\n }, {\n name: 'right',\n properties: { rawMap: { style: right && right.style } },\n children: rightChildren\n }, {\n name: 'top',\n properties: { rawMap: { style: top && top.style } },\n children: topChildren\n }, {\n name: 'bottom',\n properties: { rawMap: { style: bottom && bottom.style } },\n children: bottomChildren\n }, {\n name: 'diagonal',\n properties: { rawMap: { style: diagonal && diagonal.style } },\n children: diagonalChildren\n }]\n };\n }\n};\n\nvar bordersFactory = {\n getTemplate: function (borders) {\n return {\n name: \"borders\",\n properties: {\n rawMap: {\n count: borders.length\n }\n },\n children: borders.map(function (border) { return borderFactory$1.getTemplate(border); })\n };\n }\n};\n\nvar getReadingOrderId = function (readingOrder) {\n var order = ['Context', 'LeftToRight', 'RightToLeft'];\n var pos = order.indexOf(readingOrder);\n return Math.max(pos, 0);\n};\nvar alignmentFactory = {\n getTemplate: function (alignment) {\n var horizontal = alignment.horizontal, indent = alignment.indent, readingOrder = alignment.readingOrder, rotate = alignment.rotate, shrinkToFit = alignment.shrinkToFit, vertical = alignment.vertical, wrapText = alignment.wrapText;\n return {\n name: 'alignment',\n properties: {\n rawMap: {\n horizontal: horizontal && convertLegacyHorizontalAlignment(horizontal),\n indent: indent,\n readingOrder: readingOrder && getReadingOrderId(readingOrder),\n textRotation: rotate,\n shrinkToFit: shrinkToFit,\n vertical: vertical && convertLegacyVerticalAlignment(vertical),\n wrapText: wrapText\n }\n }\n };\n }\n};\n\nvar protectionFactory = {\n getTemplate: function (protection) {\n var locked = protection.protected === false ? 0 : 1;\n var hidden = protection.hideFormula === true ? 1 : 0;\n return {\n name: 'protection',\n properties: {\n rawMap: {\n hidden: hidden,\n locked: locked\n }\n }\n };\n }\n};\n\nvar xfFactory = {\n getTemplate: function (xf) {\n var alignment = xf.alignment, borderId = xf.borderId, fillId = xf.fillId, fontId = xf.fontId, numFmtId = xf.numFmtId, protection = xf.protection, xfId = xf.xfId;\n var children = [];\n if (alignment) {\n children.push(alignmentFactory.getTemplate(alignment));\n }\n if (protection) {\n children.push(protectionFactory.getTemplate(protection));\n }\n return {\n name: \"xf\",\n properties: {\n rawMap: {\n applyAlignment: alignment ? 1 : undefined,\n applyProtection: protection ? 1 : undefined,\n applyBorder: borderId ? 1 : undefined,\n applyFill: fillId ? 1 : undefined,\n borderId: borderId,\n fillId: fillId,\n applyFont: fontId ? 1 : undefined,\n fontId: fontId,\n applyNumberFormat: numFmtId ? 1 : undefined,\n numFmtId: numFmtId,\n xfId: xfId\n }\n },\n children: children.length ? children : undefined\n };\n }\n};\n\nvar cellStylesXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellStyleXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar cellXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar borderFactory = {\n getTemplate: function (cellStyle) {\n var builtinId = cellStyle.builtinId, name = cellStyle.name, xfId = cellStyle.xfId;\n return {\n name: \"cellStyle\",\n properties: {\n rawMap: {\n builtinId: builtinId,\n name: name,\n xfId: xfId\n }\n }\n };\n }\n};\n\nvar cellStylesFactory = {\n getTemplate: function (cellStyles) {\n return {\n name: \"cellStyles\",\n properties: {\n rawMap: {\n count: cellStyles.length\n }\n },\n children: cellStyles.map(function (cellStyle) { return borderFactory.getTemplate(cellStyle); })\n };\n }\n};\n\nvar __assign$E = (undefined && undefined.__assign) || function () {\n __assign$E = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$E.apply(this, arguments);\n};\nvar stylesMap;\nvar registeredNumberFmts;\nvar registeredFonts;\nvar registeredFills;\nvar registeredBorders;\nvar registeredCellStyleXfs;\nvar registeredCellXfs;\nvar registeredCellStyles;\nvar currentSheet;\nvar getStyleName = function (name, currentSheet) {\n if (name.indexOf('mixedStyle') !== -1 && currentSheet > 1) {\n name += \"_\" + currentSheet;\n }\n return name;\n};\nvar resetStylesheetValues = function () {\n stylesMap = { base: 0 };\n registeredNumberFmts = [];\n registeredFonts = [{ fontName: 'Calibri', colorTheme: '1', family: '2', scheme: 'minor' }];\n registeredFills = [{ patternType: 'none', }, { patternType: 'gray125' }];\n registeredBorders = [{ left: undefined, right: undefined, top: undefined, bottom: undefined, diagonal: undefined }];\n registeredCellStyleXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0 }];\n registeredCellXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0, xfId: 0 }];\n registeredCellStyles = [{ builtinId: 0, name: 'Normal', xfId: 0 }];\n};\nvar registerFill = function (fill) {\n var convertedPattern = convertLegacyPattern(fill.pattern);\n var convertedFillColor = convertLegacyColor(fill.color);\n var convertedPatternColor = convertLegacyColor(fill.patternColor);\n var pos = registeredFills.findIndex(function (currentFill) {\n var patternType = currentFill.patternType, fgRgb = currentFill.fgRgb, bgRgb = currentFill.bgRgb;\n if (patternType != convertedPattern ||\n fgRgb != convertedFillColor ||\n bgRgb != convertedPatternColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFills.length;\n registeredFills.push({ patternType: convertedPattern, fgRgb: convertedFillColor, bgRgb: convertedPatternColor });\n }\n return pos;\n};\nvar registerNumberFmt = function (format) {\n format = _.utf8_encode(format);\n if (numberFormatMap[format]) {\n return numberFormatMap[format];\n }\n var pos = registeredNumberFmts.findIndex(function (currentFormat) { return currentFormat.formatCode === format; });\n if (pos === -1) {\n pos = registeredNumberFmts.length + 164;\n registeredNumberFmts.push({ formatCode: format, numFmtId: pos });\n }\n else {\n pos = registeredNumberFmts[pos].numFmtId;\n }\n return pos;\n};\nvar registerBorders = function (borders) {\n var borderBottom = borders.borderBottom, borderTop = borders.borderTop, borderLeft = borders.borderLeft, borderRight = borders.borderRight;\n var bottomStyle;\n var topStyle;\n var leftStyle;\n var rightStyle;\n var bottomColor;\n var topColor;\n var leftColor;\n var rightColor;\n if (borderLeft) {\n leftStyle = convertLegacyBorder(borderLeft.lineStyle, borderLeft.weight);\n leftColor = convertLegacyColor(borderLeft.color);\n }\n if (borderRight) {\n rightStyle = convertLegacyBorder(borderRight.lineStyle, borderRight.weight);\n rightColor = convertLegacyColor(borderRight.color);\n }\n if (borderBottom) {\n bottomStyle = convertLegacyBorder(borderBottom.lineStyle, borderBottom.weight);\n bottomColor = convertLegacyColor(borderBottom.color);\n }\n if (borderTop) {\n topStyle = convertLegacyBorder(borderTop.lineStyle, borderTop.weight);\n topColor = convertLegacyColor(borderTop.color);\n }\n var pos = registeredBorders.findIndex(function (currentBorder) {\n var left = currentBorder.left, right = currentBorder.right, top = currentBorder.top, bottom = currentBorder.bottom;\n if (!left && (leftStyle || leftColor)) {\n return false;\n }\n if (!right && (rightStyle || rightColor)) {\n return false;\n }\n if (!top && (topStyle || topColor)) {\n return false;\n }\n if (!bottom && (bottomStyle || bottomColor)) {\n return false;\n }\n var _a = left || {}, clS = _a.style, clC = _a.color;\n var _b = right || {}, crS = _b.style, crC = _b.color;\n var _c = top || {}, ctS = _c.style, ctC = _c.color;\n var _d = bottom || {}, cbS = _d.style, cbC = _d.color;\n if (clS != leftStyle || clC != leftColor) {\n return false;\n }\n if (crS != rightStyle || crC != rightColor) {\n return false;\n }\n if (ctS != topStyle || ctC != topColor) {\n return false;\n }\n if (cbS != bottomStyle || cbC != bottomColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredBorders.length;\n registeredBorders.push({\n left: {\n style: leftStyle, color: leftColor\n },\n right: {\n style: rightStyle, color: rightColor\n },\n top: {\n style: topStyle, color: topColor\n },\n bottom: {\n style: bottomStyle, color: bottomColor\n },\n diagonal: {\n style: undefined,\n color: undefined\n }\n });\n }\n return pos;\n};\nvar registerFont = function (font) {\n var _a = font.fontName, name = _a === void 0 ? 'Calibri' : _a, color = font.color, size = font.size, bold = font.bold, italic = font.italic, outline = font.outline, shadow = font.shadow, strikeThrough = font.strikeThrough, underline = font.underline, family = font.family, verticalAlign = font.verticalAlign;\n var utf8Name = name ? _.utf8_encode(name) : name;\n var convertedColor = convertLegacyColor(color);\n var familyId = getFontFamilyId(family);\n var convertedUnderline = underline ? underline.toLocaleLowerCase() : undefined;\n var convertedVerticalAlign = verticalAlign ? verticalAlign.toLocaleLowerCase() : undefined;\n var pos = registeredFonts.findIndex(function (currentFont) {\n if (currentFont.fontName != utf8Name ||\n currentFont.color != convertedColor ||\n currentFont.size != size ||\n currentFont.bold != bold ||\n currentFont.italic != italic ||\n currentFont.outline != outline ||\n currentFont.shadow != shadow ||\n currentFont.strikeThrough != strikeThrough ||\n currentFont.underline != convertedUnderline ||\n currentFont.verticalAlign != convertedVerticalAlign ||\n // @ts-ignore\n currentFont.family != familyId) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFonts.length;\n registeredFonts.push({\n fontName: utf8Name,\n color: convertedColor,\n size: size,\n bold: bold,\n italic: italic,\n outline: outline,\n shadow: shadow,\n strikeThrough: strikeThrough,\n underline: convertedUnderline,\n verticalAlign: convertedVerticalAlign,\n family: familyId != null ? familyId.toString() : undefined\n });\n }\n return pos;\n};\nvar registerStyle = function (config) {\n var alignment = config.alignment, borders = config.borders, font = config.font, interior = config.interior, numberFormat = config.numberFormat, protection = config.protection;\n var id = config.id;\n var currentFill = 0;\n var currentBorder = 0;\n var currentFont = 0;\n var currentNumberFmt = 0;\n if (!id) {\n return;\n }\n id = getStyleName(id, currentSheet);\n if (stylesMap[id] != undefined) {\n return;\n }\n if (interior) {\n currentFill = registerFill(interior);\n }\n if (borders) {\n currentBorder = registerBorders(borders);\n }\n if (font) {\n currentFont = registerFont(font);\n }\n if (numberFormat) {\n currentNumberFmt = registerNumberFmt(numberFormat.format);\n }\n stylesMap[id] = registeredCellXfs.length;\n registeredCellXfs.push({\n alignment: alignment,\n borderId: currentBorder || 0,\n fillId: currentFill || 0,\n fontId: currentFont || 0,\n numFmtId: currentNumberFmt || 0,\n protection: protection,\n xfId: 0\n });\n};\nvar stylesheetFactory = {\n getTemplate: function (defaultFontSize) {\n var numberFormats = numberFormatsFactory.getTemplate(registeredNumberFmts);\n var fonts = fontsFactory.getTemplate(registeredFonts.map(function (font) { return (__assign$E(__assign$E({}, font), { size: font.size != null ? font.size : defaultFontSize })); }));\n var fills = fillsFactory.getTemplate(registeredFills);\n var borders = bordersFactory.getTemplate(registeredBorders);\n var cellStylesXfs = cellStylesXfsFactory.getTemplate(registeredCellStyleXfs);\n var cellXfs = cellXfsFactory.getTemplate(registeredCellXfs);\n var cellStyles = cellStylesFactory.getTemplate(registeredCellStyles);\n resetStylesheetValues();\n return {\n name: 'styleSheet',\n properties: {\n rawMap: {\n 'mc:Ignorable': 'x14ac x16r2 xr',\n 'xmlns': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'xmlns:x14ac': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',\n 'xmlns:x16r2': 'http://schemas.microsoft.com/office/spreadsheetml/2015/02/main',\n 'xmlns:xr': 'http://schemas.microsoft.com/office/spreadsheetml/2014/revision'\n }\n },\n children: [\n numberFormats,\n fonts,\n fills,\n borders,\n cellStylesXfs,\n cellXfs,\n cellStyles,\n {\n name: 'tableStyles',\n properties: {\n rawMap: {\n count: 0,\n defaultPivotStyle: 'PivotStyleLight16',\n defaultTableStyle: 'TableStyleMedium2'\n }\n }\n }\n ]\n };\n }\n};\nvar getStyleId = function (name, currentSheet) {\n return stylesMap[getStyleName(name, currentSheet)] || 0;\n};\nvar registerStyles = function (styles, _currentSheet) {\n currentSheet = _currentSheet;\n if (currentSheet === 1) {\n resetStylesheetValues();\n }\n styles.forEach(registerStyle);\n};\n\nvar sheetFactory = {\n getTemplate: function (name, idx) {\n var sheetId = (idx + 1).toString();\n return {\n name: \"sheet\",\n properties: {\n rawMap: {\n \"name\": name,\n \"sheetId\": sheetId,\n \"r:id\": \"rId\" + sheetId\n }\n }\n };\n }\n};\n\nvar sheetsFactory = {\n getTemplate: function (names) {\n return {\n name: \"sheets\",\n children: names.map(function (sheet, idx) { return sheetFactory.getTemplate(sheet, idx); })\n };\n }\n};\n\nvar workbookFactory = {\n getTemplate: function (names) {\n return {\n name: \"workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n },\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: [sheetsFactory.getTemplate(names)]\n };\n }\n};\n\n// https://docs.microsoft.com/en-us/office/troubleshoot/excel/determine-column-widths\nvar getExcelCellWidth = function (width) { return Math.ceil((width - 12) / 7 + 1); };\nvar columnFactory = {\n getTemplate: function (config) {\n var min = config.min, max = config.max, outlineLevel = config.outlineLevel, s = config.s, width = config.width, hidden = config.hidden, bestFit = config.bestFit;\n var excelWidth = 1;\n var customWidth = '0';\n if (width > 1) {\n excelWidth = getExcelCellWidth(width);\n customWidth = '1';\n }\n return {\n name: 'col',\n properties: {\n rawMap: {\n min: min,\n max: max,\n outlineLevel: outlineLevel != null ? outlineLevel : undefined,\n width: excelWidth,\n style: s,\n hidden: hidden ? '1' : '0',\n bestFit: bestFit ? '1' : '0',\n customWidth: customWidth\n }\n }\n };\n }\n};\n\nvar convertLegacyType = function (type) {\n var t = type.charAt(0).toLowerCase();\n return t === 's' ? 'inlineStr' : t;\n};\nvar cellFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var ref = config.ref, data = config.data, styleId = config.styleId;\n var _a = data || { type: 'empty', value: null }, type = _a.type, value = _a.value;\n var convertedType = type;\n if (type === 'f') {\n convertedType = 'str';\n }\n else if (type.charAt(0) === type.charAt(0).toUpperCase()) {\n convertedType = convertLegacyType(type);\n }\n var obj = {\n name: 'c',\n properties: {\n rawMap: {\n r: ref,\n t: convertedType === 'empty' ? undefined : convertedType,\n s: styleId ? getStyleId(styleId, currentSheet) : undefined\n }\n }\n };\n if (convertedType === 'empty') {\n return obj;\n }\n var children;\n if (convertedType === 'str' && type === 'f') {\n children = [{\n name: 'f',\n textNode: _.escapeString(_.utf8_encode(value))\n }];\n }\n else if (convertedType === 'inlineStr') {\n children = [{\n name: 'is',\n children: [{\n name: 't',\n textNode: _.escapeString(_.utf8_encode(value))\n }]\n }];\n }\n else {\n children = [{\n name: 'v',\n textNode: value\n }];\n }\n return Object.assign({}, obj, { children: children });\n }\n};\n\nvar __read$O = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$s = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$O(arguments[i]));\n return ar;\n};\nvar addEmptyCells = function (cells, rowIdx) {\n var mergeMap = [];\n var posCounter = 0;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.mergeAcross) {\n mergeMap.push({\n pos: i,\n excelPos: posCounter\n });\n posCounter += cell.mergeAcross;\n }\n posCounter++;\n }\n if (mergeMap.length) {\n for (var i = mergeMap.length - 1; i >= 0; i--) {\n var mergedCells = [];\n var cell = cells[mergeMap[i].pos];\n for (var j = 1; j <= cell.mergeAcross; j++) {\n mergedCells.push({\n ref: \"\" + getExcelColumnName(mergeMap[i].excelPos + 1 + j) + (rowIdx + 1),\n styleId: cell.styleId,\n data: { type: 'empty', value: null }\n });\n }\n if (mergedCells.length) {\n cells.splice.apply(cells, __spread$s([mergeMap[i].pos + 1, 0], mergedCells));\n }\n }\n }\n};\nvar shouldDisplayCell = function (cell) { var _a; return ((_a = cell.data) === null || _a === void 0 ? void 0 : _a.value) !== '' || cell.styleId !== undefined; };\nvar rowFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var collapsed = config.collapsed, hidden = config.hidden, height = config.height, outlineLevel = config.outlineLevel, _a = config.cells, cells = _a === void 0 ? [] : _a;\n addEmptyCells(cells, idx);\n var children = cells.filter(shouldDisplayCell).map(function (cell, idx) { return cellFactory.getTemplate(cell, idx, currentSheet); });\n return {\n name: \"row\",\n properties: {\n rawMap: {\n r: idx + 1,\n collapsed: collapsed,\n hidden: hidden ? '1' : '0',\n ht: height,\n customHeight: height != null ? '1' : '0',\n spans: '1:1',\n outlineLevel: outlineLevel || undefined\n }\n },\n children: children\n };\n }\n};\n\nvar mergeCellFactory = {\n getTemplate: function (ref) {\n return {\n name: 'mergeCell',\n properties: {\n rawMap: {\n ref: ref\n }\n }\n };\n }\n};\n\nvar getMergedCellsAndAddColumnGroups = function (rows, cols) {\n var mergedCells = [];\n var cellsWithCollapsibleGroups = [];\n rows.forEach(function (currentRow, rowIdx) {\n var cells = currentRow.cells;\n var merges = 0;\n var lastCol;\n cells.forEach(function (currentCell, cellIdx) {\n var min = cellIdx + merges + 1;\n var start = getExcelColumnName(min);\n var outputRow = rowIdx + 1;\n if (currentCell.mergeAcross) {\n merges += currentCell.mergeAcross;\n var end = getExcelColumnName(cellIdx + merges + 1);\n mergedCells.push(\"\" + start + outputRow + \":\" + end + outputRow);\n }\n if (!cols[min - 1]) {\n cols[min - 1] = {};\n }\n var collapsibleRanges = currentCell.collapsibleRanges;\n if (collapsibleRanges) {\n collapsibleRanges.forEach(function (range) {\n cellsWithCollapsibleGroups.push([min + range[0], min + range[1]]);\n });\n }\n lastCol = cols[min - 1];\n lastCol.min = min;\n lastCol.max = min;\n currentCell.ref = \"\" + start + outputRow;\n });\n });\n cellsWithCollapsibleGroups.sort(function (a, b) {\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return b[1] - a[1];\n });\n var rangeMap = new Map();\n var outlineLevel = new Map();\n cellsWithCollapsibleGroups.filter(function (currentRange) {\n var rangeString = currentRange.toString();\n var inMap = rangeMap.get(rangeString);\n if (inMap) {\n return false;\n }\n rangeMap.set(rangeString, true);\n return true;\n }).forEach(function (range) {\n var refCol = cols.find(function (col) { return col.min == range[0] && col.max == range[1]; });\n var currentOutlineLevel = outlineLevel.get(range[0]);\n cols.push({\n min: range[0],\n max: range[1],\n outlineLevel: currentOutlineLevel || 1,\n width: (refCol || { width: 100 }).width\n });\n outlineLevel.set(range[0], (currentOutlineLevel || 0) + 1);\n });\n return mergedCells;\n};\nvar getPageOrientation = function (orientation) {\n if (!orientation || (orientation !== 'Portrait' && orientation !== 'Landscape')) {\n return 'portrait';\n }\n return orientation.toLocaleLowerCase();\n};\nvar getPageSize = function (pageSize) {\n if (pageSize == null) {\n return 1;\n }\n var positions = ['Letter', 'Letter Small', 'Tabloid', 'Ledger', 'Legal', 'Statement', 'Executive', 'A3', 'A4', 'A4 Small', 'A5', 'A6', 'B4', 'B5', 'Folio', 'Envelope', 'Envelope DL', 'Envelope C5', 'Envelope B5', 'Envelope C3', 'Envelope C4', 'Envelope C6', 'Envelope Monarch', 'Japanese Postcard', 'Japanese Double Postcard'];\n var pos = positions.indexOf(pageSize);\n return pos === -1 ? 1 : (pos + 1);\n};\nvar addColumns = function (columns) {\n return function (children) {\n if (columns.length) {\n children.push({\n name: 'cols',\n children: columns.map(function (column) { return columnFactory.getTemplate(column); })\n });\n }\n return children;\n };\n};\nvar addSheetData = function (rows, sheetNumber) {\n return function (children) {\n if (rows.length) {\n children.push({\n name: 'sheetData',\n children: rows.map(function (row, idx) { return rowFactory.getTemplate(row, idx, sheetNumber); })\n });\n }\n return children;\n };\n};\nvar addMergeCells = function (mergeCells) {\n return function (children) {\n if (mergeCells.length) {\n children.push({\n name: 'mergeCells',\n properties: {\n rawMap: {\n count: mergeCells.length\n }\n },\n children: mergeCells.map(function (mergedCell) { return mergeCellFactory.getTemplate(mergedCell); })\n });\n }\n return children;\n };\n};\nvar addPageMargins = function (margins) {\n return function (children) {\n var _a = margins.top, top = _a === void 0 ? 0.75 : _a, _b = margins.right, right = _b === void 0 ? 0.7 : _b, _c = margins.bottom, bottom = _c === void 0 ? 0.75 : _c, _d = margins.left, left = _d === void 0 ? 0.7 : _d, _e = margins.header, header = _e === void 0 ? 0.3 : _e, _f = margins.footer, footer = _f === void 0 ? 0.3 : _f;\n children.push({\n name: 'pageMargins',\n properties: {\n rawMap: { bottom: bottom, footer: footer, header: header, left: left, right: right, top: top }\n }\n });\n return children;\n };\n};\nvar addPageSetup = function (pageSetup) {\n return function (children) {\n if (pageSetup) {\n children.push({\n name: 'pageSetup',\n properties: {\n rawMap: {\n horizontalDpi: 0,\n verticalDpi: 0,\n orientation: getPageOrientation(pageSetup.orientation),\n paperSize: getPageSize(pageSetup.pageSize)\n }\n }\n });\n }\n return children;\n };\n};\nvar replaceHeaderFooterTokens = function (value) {\n var map = {\n '&[Page]': '&P',\n '&[Pages]': '&N',\n '&[Date]': '&D',\n '&[Time]': '&T',\n '&[Tab]': '&A',\n '&[Path]': '&Z',\n '&[File]': '&F'\n };\n _.iterateObject(map, function (key, val) {\n value = value.replace(key, val);\n });\n return value;\n};\nvar getHeaderPosition = function (position) {\n if (position === 'Center') {\n return 'C';\n }\n if (position === 'Right') {\n return 'R';\n }\n return 'L';\n};\nvar applyHeaderFontStyle = function (headerString, font) {\n if (!font) {\n return headerString;\n }\n headerString += '&"';\n headerString += font.fontName || 'Calibri';\n if (font.bold !== font.italic) {\n headerString += font.bold ? ',Bold' : ',Italic';\n }\n else if (font.bold) {\n headerString += ',Bold Italic';\n }\n else {\n headerString += ',Regular';\n }\n headerString += '"';\n if (font.size) {\n headerString += \"&\" + font.size;\n }\n if (font.strikeThrough) {\n headerString += '&S';\n }\n if (font.underline) {\n headerString += \"&\" + (font.underline === 'Double' ? 'E' : 'U');\n }\n if (font.color) {\n headerString += \"&K\" + font.color.replace('#', '').toUpperCase();\n }\n return headerString;\n};\nvar processHeaderFooterContent = function (content) {\n return content.reduce(function (prev, curr) {\n var pos = getHeaderPosition(curr.position);\n var output = applyHeaderFontStyle(prev + \"&\" + pos, curr.font);\n return \"\" + output + _.escapeString(replaceHeaderFooterTokens(curr.value));\n }, '');\n};\nvar buildHeaderFooter = function (headerFooterConfig) {\n var rules = ['all', 'first', 'even'];\n var headersAndFooters = [];\n rules.forEach(function (rule) {\n var headerFooter = headerFooterConfig[rule];\n var namePrefix = rule === 'all' ? 'odd' : rule;\n if (!headerFooter || (!headerFooter.header && !headerFooter.footer)) {\n return;\n }\n _.iterateObject(headerFooter, function (key, value) {\n var nameSuffix = \"\" + key.charAt(0).toUpperCase() + key.slice(1);\n if (value) {\n headersAndFooters.push({\n name: \"\" + namePrefix + nameSuffix,\n properties: {\n rawMap: {\n 'xml:space': 'preserve'\n }\n },\n textNode: processHeaderFooterContent(value)\n });\n }\n });\n });\n return headersAndFooters;\n};\nvar addHeaderFooter = function (headerFooterConfig) {\n return function (children) {\n if (!headerFooterConfig) {\n return children;\n }\n var differentFirst = headerFooterConfig.first != null ? 1 : 0;\n var differentOddEven = headerFooterConfig.even != null ? 1 : 0;\n children.push({\n name: 'headerFooter',\n properties: {\n rawMap: {\n differentFirst: differentFirst,\n differentOddEven: differentOddEven\n }\n },\n children: buildHeaderFooter(headerFooterConfig)\n });\n return children;\n };\n};\nvar addDrawingRel = function (currentSheet) {\n return function (children) {\n if (ExcelXlsxFactory.worksheetImages.get(currentSheet)) {\n children.push({\n name: 'drawing',\n properties: {\n rawMap: {\n 'r:id': 'rId1'\n }\n }\n });\n }\n return children;\n };\n};\nvar addSheetPr = function () {\n return function (children) {\n children.push({\n name: 'sheetPr',\n children: [{\n name: 'outlinePr',\n properties: {\n rawMap: {\n summaryBelow: 0\n }\n }\n }]\n });\n return children;\n };\n};\nvar addSheetFormatPr = function (rows) {\n return function (children) {\n var maxOutline = rows.reduce(function (prev, row) {\n if (row.outlineLevel && row.outlineLevel > prev) {\n return row.outlineLevel;\n }\n return prev;\n }, 0);\n children.push({\n name: 'sheetFormatPr',\n properties: {\n rawMap: {\n baseColWidth: 10,\n defaultRowHeight: 16,\n outlineLevelRow: maxOutline ? maxOutline : undefined\n }\n }\n });\n return children;\n };\n};\nvar worksheetFactory = {\n getTemplate: function (params) {\n var worksheet = params.worksheet, currentSheet = params.currentSheet, _a = params.margins, margins = _a === void 0 ? {} : _a, pageSetup = params.pageSetup, headerFooterConfig = params.headerFooterConfig;\n var table = worksheet.table;\n var rows = table.rows, columns = table.columns;\n var mergedCells = (columns && columns.length) ? getMergedCellsAndAddColumnGroups(rows, columns) : [];\n var createWorksheetChildren = _.compose(addSheetPr(), addSheetFormatPr(rows), addColumns(columns), addSheetData(rows, currentSheet + 1), addMergeCells(mergedCells), addPageMargins(margins), addPageSetup(pageSetup), addHeaderFooter(headerFooterConfig), addDrawingRel(currentSheet));\n var children = createWorksheetChildren([]);\n return {\n name: \"worksheet\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n }\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: children\n };\n }\n};\n\nvar relationshipFactory = {\n getTemplate: function (config) {\n var Id = config.Id, Type = config.Type, Target = config.Target;\n return {\n name: \"Relationship\",\n properties: {\n rawMap: {\n Id: Id,\n Type: Type,\n Target: Target\n }\n }\n };\n }\n};\n\nvar relationshipsFactory = {\n getTemplate: function (c) {\n var children = c.map(function (relationship) { return relationshipFactory.getTemplate(relationship); });\n return {\n name: \"Relationships\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/relationships\"\n }\n },\n children: children\n };\n }\n};\n\nvar __read$N = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$r = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$N(arguments[i]));\n return ar;\n};\n/**\n * See https://www.ecma-international.org/news/TC45_current_work/OpenXML%20White%20Paper.pdf\n */\nvar ExcelXlsxFactory = /** @class */ (function () {\n function ExcelXlsxFactory() {\n }\n ExcelXlsxFactory.createExcel = function (styles, worksheet, margins, pageSetup, headerFooterConfig) {\n this.addSheetName(worksheet);\n registerStyles(styles, this.sheetNames.length);\n return this.createWorksheet(worksheet, margins, pageSetup, headerFooterConfig);\n };\n ExcelXlsxFactory.buildImageMap = function (image, rowIndex, col, columnsToExport, rowHeight) {\n var currentSheetIndex = this.sheetNames.length;\n var registeredImage = this.images.get(image.id);\n if (!image.position || !image.position.row || !image.position.column) {\n if (!image.position) {\n image.position = {};\n }\n image.position = Object.assign({}, image.position, {\n row: rowIndex,\n column: columnsToExport.indexOf(col) + 1\n });\n }\n var calculatedImage = image;\n setExcelImageTotalWidth(calculatedImage, columnsToExport);\n setExcelImageTotalHeight(calculatedImage, rowHeight);\n if (registeredImage) {\n var currentSheetImages = registeredImage.find(function (currentImage) { return currentImage.sheetId === currentSheetIndex; });\n if (currentSheetImages) {\n currentSheetImages.image.push(calculatedImage);\n }\n else {\n registeredImage.push({\n sheetId: currentSheetIndex,\n image: [calculatedImage]\n });\n }\n }\n else {\n this.images.set(calculatedImage.id, [{ sheetId: currentSheetIndex, image: [calculatedImage] }]);\n this.workbookImageIds.set(calculatedImage.id, { type: calculatedImage.imageType, index: this.workbookImageIds.size });\n }\n this.buildSheetImageMap(currentSheetIndex, calculatedImage);\n };\n ExcelXlsxFactory.buildSheetImageMap = function (sheetIndex, image) {\n var worksheetImageIdMap = this.worksheetImageIds.get(sheetIndex);\n if (!worksheetImageIdMap) {\n worksheetImageIdMap = new Map();\n this.worksheetImageIds.set(sheetIndex, worksheetImageIdMap);\n }\n var sheetImages = this.worksheetImages.get(sheetIndex);\n if (!sheetImages) {\n this.worksheetImages.set(sheetIndex, [image]);\n worksheetImageIdMap.set(image.id, { index: 0, type: image.imageType });\n }\n else {\n sheetImages.push(image);\n if (!worksheetImageIdMap.get(image.id)) {\n worksheetImageIdMap.set(image.id, { index: worksheetImageIdMap.size, type: image.imageType });\n }\n }\n };\n ExcelXlsxFactory.addSheetName = function (worksheet) {\n var name = _.escapeString(worksheet.name) || '';\n var append = '';\n while (this.sheetNames.indexOf(\"\" + name + append) !== -1) {\n if (append === '') {\n append = '_1';\n }\n else {\n var curr = parseInt(append.slice(1), 10);\n append = \"_\" + (curr + 1);\n }\n }\n worksheet.name = \"\" + name + append;\n this.sheetNames.push(worksheet.name);\n };\n ExcelXlsxFactory.getStringPosition = function (str) {\n if (this.sharedStrings.has(str)) {\n return this.sharedStrings.get(str);\n }\n this.sharedStrings.set(str, this.sharedStrings.size);\n return this.sharedStrings.size - 1;\n };\n ExcelXlsxFactory.resetFactory = function () {\n this.sharedStrings = new Map();\n this.images = new Map();\n this.worksheetImages = new Map();\n this.workbookImageIds = new Map();\n this.worksheetImageIds = new Map();\n this.sheetNames = [];\n this.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n };\n ExcelXlsxFactory.createWorkbook = function () {\n return createXmlPart(workbookFactory.getTemplate(this.sheetNames));\n };\n ExcelXlsxFactory.createStylesheet = function (defaultFontSize) {\n return createXmlPart(stylesheetFactory.getTemplate(defaultFontSize));\n };\n ExcelXlsxFactory.createSharedStrings = function () {\n return createXmlPart(sharedStrings.getTemplate(this.sharedStrings));\n };\n ExcelXlsxFactory.createCore = function (author) {\n return createXmlPart(coreFactory.getTemplate(author));\n };\n ExcelXlsxFactory.createContentTypes = function (sheetLen) {\n return createXmlPart(contentTypesFactory.getTemplate(sheetLen));\n };\n ExcelXlsxFactory.createRels = function () {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',\n Target: 'xl/workbook.xml'\n }, {\n Id: 'rId2',\n Type: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',\n Target: 'docProps/core.xml'\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createTheme = function () {\n return createXmlPart(officeTheme.getTemplate());\n };\n ExcelXlsxFactory.createWorkbookRels = function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n Id: \"rId\" + (i + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',\n Target: \"worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var rs = relationshipsFactory.getTemplate(__spread$r(worksheets, [\n {\n Id: \"rId\" + (sheetLen + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',\n Target: 'theme/theme1.xml'\n }, {\n Id: \"rId\" + (sheetLen + 2),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',\n Target: 'styles.xml'\n }, {\n Id: \"rId\" + (sheetLen + 3),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',\n Target: 'sharedStrings.xml'\n }\n ]));\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createDrawing = function (sheetIndex) {\n return createXmlPart(drawingFactory.getTemplate({ sheetIndex: sheetIndex }));\n };\n ExcelXlsxFactory.createDrawingRel = function (sheetIndex) {\n var _this = this;\n var worksheetImageIds = this.worksheetImageIds.get(sheetIndex);\n var XMLArr = [];\n worksheetImageIds.forEach(function (value, key) {\n XMLArr.push({\n Id: \"rId\" + (value.index + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\n Target: \"../media/image\" + (_this.workbookImageIds.get(key).index + 1) + \".\" + value.type\n });\n });\n return createXmlPart(relationshipsFactory.getTemplate(XMLArr));\n };\n ExcelXlsxFactory.createWorksheetDrawingRel = function (currentRelationIndex) {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',\n Target: \"../drawings/drawing\" + (currentRelationIndex + 1) + \".xml\"\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createWorksheet = function (worksheet, margins, pageSetup, headerFooterConfig) {\n return createXmlPart(worksheetFactory.getTemplate({\n worksheet: worksheet,\n currentSheet: this.sheetNames.length - 1,\n margins: margins,\n pageSetup: pageSetup,\n headerFooterConfig: headerFooterConfig\n }));\n };\n ExcelXlsxFactory.sharedStrings = new Map();\n ExcelXlsxFactory.sheetNames = [];\n /** Maps images to sheet */\n ExcelXlsxFactory.images = new Map();\n /** Maps sheets to images */\n ExcelXlsxFactory.worksheetImages = new Map();\n /** Maps all workbook images to a global Id */\n ExcelXlsxFactory.workbookImageIds = new Map();\n /** Maps all sheet images to unique Ids */\n ExcelXlsxFactory.worksheetImageIds = new Map();\n ExcelXlsxFactory.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXlsxFactory;\n}());\n\nvar __extends$2Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXlsxSerializingSession = /** @class */ (function (_super) {\n __extends$2Y(ExcelXlsxSerializingSession, _super);\n function ExcelXlsxSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXlsxSerializingSession.prototype.createExcel = function (data) {\n var _a = this, excelStyles = _a.excelStyles, config = _a.config;\n var margins = config.margins, pageSetup = config.pageSetup, headerFooterConfig = config.headerFooterConfig;\n return ExcelXlsxFactory.createExcel(excelStyles, data, margins, pageSetup, headerFooterConfig);\n };\n ExcelXlsxSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n if (valueForCell === undefined) {\n return 'empty';\n }\n return _.isNumeric(valueForCell) ? 'n' : 's';\n };\n ExcelXlsxSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'f';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'formula':\n return 'f';\n case 'string':\n return 's';\n case 'number':\n return 'n';\n case 'datetime':\n return 'd';\n case 'error':\n return 'e';\n case 'boolean':\n return 'b';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXlsxSerializingSession.prototype.addImage = function (rowIndex, column, value) {\n if (!this.config.addImageToCell) {\n return;\n }\n var addedImage = this.config.addImageToCell(rowIndex, column, value);\n if (!addedImage) {\n return;\n }\n ExcelXlsxFactory.buildImageMap(addedImage.image, rowIndex, column, this.columnsToExport, this.config.rowHeight);\n return addedImage;\n };\n ExcelXlsxSerializingSession.prototype.createCell = function (styleId, type, value) {\n var actualStyle = this.getStyleById(styleId);\n var typeTransformed = this.getType(type, actualStyle, value) || type;\n return {\n styleId: actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getCellValue(typeTransformed, value)\n }\n };\n };\n ExcelXlsxSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n var valueToUse = value == null ? '' : value;\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: type === 's' ? ExcelXlsxFactory.getStringPosition(valueToUse).toString() : value\n },\n mergeAcross: numOfCells\n };\n };\n ExcelXlsxSerializingSession.prototype.getCellValue = function (type, value) {\n if (value == null) {\n return ExcelXlsxFactory.getStringPosition('').toString();\n }\n switch (type) {\n case 's':\n return value === '' ? '' : ExcelXlsxFactory.getStringPosition(value).toString();\n case 'f':\n return value.slice(1);\n case 'n':\n return Number(value).toString();\n default:\n return value;\n }\n };\n return ExcelXlsxSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar __extends$2X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$D = (undefined && undefined.__assign) || function () {\n __assign$D = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$D.apply(this, arguments);\n};\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar getMultipleSheetsAsExcel = function (params) {\n var data = params.data, _a = params.fontSize, fontSize = _a === void 0 ? 11 : _a, _b = params.author, author = _b === void 0 ? 'AG Grid' : _b;\n var hasImages = ExcelXlsxFactory.images.size > 0;\n ZipContainer.addFolders([\n '_rels/',\n 'docProps/',\n 'xl/',\n 'xl/theme/',\n 'xl/_rels/',\n 'xl/worksheets/'\n ]);\n if (hasImages) {\n ZipContainer.addFolders([\n 'xl/worksheets/_rels',\n 'xl/drawings/',\n 'xl/drawings/_rels',\n 'xl/media/',\n ]);\n var imgCounter_1 = 0;\n ExcelXlsxFactory.images.forEach(function (value) {\n var firstImage = value[0].image[0];\n var ext = firstImage.imageType;\n ZipContainer.addFile(\"xl/media/image\" + ++imgCounter_1 + \".\" + ext, firstImage.base64, true);\n });\n }\n if (!data || data.length === 0) {\n console.warn(\"AG Grid: Invalid params supplied to getMultipleSheetsAsExcel() - `ExcelExportParams.data` is empty.\");\n ExcelXlsxFactory.resetFactory();\n return;\n }\n var sheetLen = data.length;\n var imageRelationCounter = 0;\n data.forEach(function (value, idx) {\n ZipContainer.addFile(\"xl/worksheets/sheet\" + (idx + 1) + \".xml\", value);\n if (hasImages && ExcelXlsxFactory.worksheetImages.get(idx)) {\n createImageRelationsForSheet(idx, imageRelationCounter++);\n }\n });\n ZipContainer.addFile('xl/workbook.xml', ExcelXlsxFactory.createWorkbook());\n ZipContainer.addFile('xl/styles.xml', ExcelXlsxFactory.createStylesheet(fontSize));\n ZipContainer.addFile('xl/sharedStrings.xml', ExcelXlsxFactory.createSharedStrings());\n ZipContainer.addFile('xl/theme/theme1.xml', ExcelXlsxFactory.createTheme());\n ZipContainer.addFile('xl/_rels/workbook.xml.rels', ExcelXlsxFactory.createWorkbookRels(sheetLen));\n ZipContainer.addFile('docProps/core.xml', ExcelXlsxFactory.createCore(author));\n ZipContainer.addFile('[Content_Types].xml', ExcelXlsxFactory.createContentTypes(sheetLen));\n ZipContainer.addFile('_rels/.rels', ExcelXlsxFactory.createRels());\n ExcelXlsxFactory.resetFactory();\n var mimeType = params.mimeType || 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n return ZipContainer.getContent(mimeType);\n};\nvar exportMultipleSheetsAsExcel = function (params) {\n var _a = params.fileName, fileName = _a === void 0 ? 'export.xlsx' : _a;\n var contents = getMultipleSheetsAsExcel(params);\n if (contents) {\n Downloader.download(fileName, contents);\n }\n};\nvar createImageRelationsForSheet = function (sheetIndex, currentRelationIndex) {\n var drawingFolder = 'xl/drawings';\n var drawingFileName = drawingFolder + \"/drawing\" + (currentRelationIndex + 1) + \".xml\";\n var relFileName = drawingFolder + \"/_rels/drawing\" + (currentRelationIndex + 1) + \".xml.rels\";\n var worksheetRelFile = \"xl/worksheets/_rels/sheet\" + (sheetIndex + 1) + \".xml.rels\";\n ZipContainer.addFile(relFileName, ExcelXlsxFactory.createDrawingRel(sheetIndex));\n ZipContainer.addFile(drawingFileName, ExcelXlsxFactory.createDrawing(sheetIndex));\n ZipContainer.addFile(worksheetRelFile, ExcelXlsxFactory.createWorksheetDrawingRel(currentRelationIndex));\n};\nvar ExcelCreator = /** @class */ (function (_super) {\n __extends$2X(ExcelCreator, _super);\n function ExcelCreator() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.exportMode = 'xlsx';\n return _this;\n }\n ExcelCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n ExcelCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('excel');\n return Object.assign({}, baseParams, params);\n };\n ExcelCreator.prototype.getData = function (params) {\n this.setExportMode(params.exportMode || 'xlsx');\n return _super.prototype.getData.call(this, params);\n };\n ExcelCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n var packageFile = this.packageFile(exportParams);\n if (packageFile) {\n Downloader.download(this.getFileName(mergedParams.fileName), packageFile);\n }\n return data;\n };\n ExcelCreator.prototype.exportDataAsExcel = function (params) {\n return this.export(params);\n };\n ExcelCreator.prototype.getDataAsExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n if (params && params.exportMode === 'xml') {\n return data;\n }\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n return this.packageFile(exportParams);\n };\n ExcelCreator.prototype.setFactoryMode = function (factoryMode, exportMode) {\n if (exportMode === void 0) { exportMode = 'xlsx'; }\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n factory.factoryMode = factoryMode;\n };\n ExcelCreator.prototype.getFactoryMode = function (exportMode) {\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n return factory.factoryMode;\n };\n ExcelCreator.prototype.getSheetDataForExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n return data;\n };\n ExcelCreator.prototype.getMultipleSheetsAsExcel = function (params) {\n return getMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.exportMultipleSheetsAsExcel = function (params) {\n return exportMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.getDefaultFileName = function () {\n return \"export.\" + this.getExportMode();\n };\n ExcelCreator.prototype.getDefaultFileExtension = function () {\n return this.getExportMode();\n };\n ExcelCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var isXlsx = this.getExportMode() === 'xlsx';\n var sheetName = 'ag-grid';\n if (params.sheetName != null) {\n sheetName = _.utf8_encode(params.sheetName.toString().substr(0, 31));\n }\n var config = __assign$D(__assign$D({}, params), { sheetName: sheetName,\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper, headerRowHeight: params.headerRowHeight || params.rowHeight, baseExcelStyles: this.gridOptions.excelStyles || [], styleLinker: this.styleLinker.bind(this) });\n return new (isXlsx ? ExcelXlsxSerializingSession : ExcelXmlSerializingSession)(config);\n };\n ExcelCreator.prototype.styleLinker = function (params) {\n var rowType = params.rowType, rowIndex = params.rowIndex, value = params.value, column = params.column, columnGroup = params.columnGroup, node = params.node;\n var isHeader = rowType === RowType.HEADER;\n var isGroupHeader = rowType === RowType.HEADER_GROUPING;\n var col = (isHeader ? column : columnGroup);\n var headerClasses = [];\n if (isHeader || isGroupHeader) {\n headerClasses.push('header');\n if (isGroupHeader) {\n headerClasses.push('headerGroup');\n }\n if (col) {\n headerClasses = headerClasses.concat(CssClassApplier.getHeaderClassesFromColDef(col.getDefinition(), this.gridOptionsWrapper, column || null, columnGroup || null));\n }\n return headerClasses;\n }\n var styles = this.gridOptions.excelStyles;\n var applicableStyles = [\"cell\"];\n if (!styles || !styles.length) {\n return applicableStyles;\n }\n var styleIds = styles.map(function (it) {\n return it.id;\n });\n this.stylingService.processAllCellClasses(column.getDefinition(), {\n value: value,\n data: node.data,\n node: node,\n colDef: column.getDefinition(),\n column: column,\n rowIndex: rowIndex,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n }, function (className) {\n if (styleIds.indexOf(className) > -1) {\n applicableStyles.push(className);\n }\n });\n return applicableStyles.sort(function (left, right) {\n return (styleIds.indexOf(left) < styleIds.indexOf(right)) ? -1 : 1;\n });\n };\n ExcelCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressExcelExport();\n };\n ExcelCreator.prototype.setExportMode = function (exportMode) {\n this.exportMode = exportMode;\n };\n ExcelCreator.prototype.getExportMode = function () {\n return this.exportMode;\n };\n ExcelCreator.prototype.packageFile = function (params) {\n if (this.getExportMode() === 'xml') {\n var mimeType = params.mimeType || 'application/vnd.ms-excel';\n return new Blob([\"\\ufeff\", params.data[0]], { type: mimeType });\n }\n return getMultipleSheetsAsExcel(params);\n };\n __decorate$1R([\n Autowired('columnModel')\n ], ExcelCreator.prototype, \"columnModel\", void 0);\n __decorate$1R([\n Autowired('valueService')\n ], ExcelCreator.prototype, \"valueService\", void 0);\n __decorate$1R([\n Autowired('gridOptions')\n ], ExcelCreator.prototype, \"gridOptions\", void 0);\n __decorate$1R([\n Autowired('stylingService')\n ], ExcelCreator.prototype, \"stylingService\", void 0);\n __decorate$1R([\n Autowired('gridSerializer')\n ], ExcelCreator.prototype, \"gridSerializer\", void 0);\n __decorate$1R([\n Autowired('gridOptionsWrapper')\n ], ExcelCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1R([\n PostConstruct\n ], ExcelCreator.prototype, \"postConstruct\", null);\n ExcelCreator = __decorate$1R([\n Bean('excelCreator')\n ], ExcelCreator);\n return ExcelCreator;\n}(BaseCreator));\n\nvar ExcelExportModule = {\n moduleName: ModuleNames.ExcelExportModule,\n beans: [\n // beans in this module\n ExcelCreator,\n // these beans are part of CSV Export module\n GridSerializer, CsvCreator\n ],\n dependantModules: [\n CsvExportModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$2W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EXPAND_STATE;\n(function (EXPAND_STATE) {\n EXPAND_STATE[EXPAND_STATE[\"EXPANDED\"] = 0] = \"EXPANDED\";\n EXPAND_STATE[EXPAND_STATE[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n EXPAND_STATE[EXPAND_STATE[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(EXPAND_STATE || (EXPAND_STATE = {}));\nvar FiltersToolPanelHeaderPanel = /** @class */ (function (_super) {\n __extends$2W(FiltersToolPanelHeaderPanel, _super);\n function FiltersToolPanelHeaderPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FiltersToolPanelHeaderPanel.prototype.preConstruct = function () {\n this.setTemplate(/* html */ \"
\\n
\\n \\n
\");\n };\n FiltersToolPanelHeaderPanel.prototype.postConstruct = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.onValueChange(this.onSearchTextChanged.bind(this));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n this.createExpandIcons();\n this.setExpandState(EXPAND_STATE.EXPANDED);\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n };\n FiltersToolPanelHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n FiltersToolPanelHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild(this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper));\n this.eExpand.appendChild(this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper));\n this.eExpand.appendChild(this.eExpandIndeterminate = _.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsWrapper));\n };\n // we only show expand / collapse if we are showing filters\n FiltersToolPanelHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilterSearch = !this.params.suppressFilterSearch;\n var showExpand = !this.params.suppressExpandAll;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n var isFilterGroupPresent = function (col) { return col.getOriginalParent() && col.isFilterAllowed(); };\n var filterGroupsPresent = this.columnModel.getAllGridColumns().some(isFilterGroupPresent);\n _.setDisplayed(this.eFilterTextField.getGui(), showFilterSearch);\n _.setDisplayed(this.eExpand, showExpand && filterGroupsPresent);\n };\n FiltersToolPanelHeaderPanel.prototype.onSearchTextChanged = function () {\n var _this = this;\n if (!this.onSearchTextChangedDebounced) {\n this.onSearchTextChangedDebounced = _.debounce(function () {\n _this.dispatchEvent({ type: 'searchChanged', searchText: _this.eFilterTextField.getValue() });\n }, 300);\n }\n this.onSearchTextChangedDebounced();\n };\n FiltersToolPanelHeaderPanel.prototype.onExpandClicked = function () {\n var event = this.currentExpandState === EXPAND_STATE.EXPANDED ? { type: 'collapseAll' } : { type: 'expandAll' };\n this.dispatchEvent(event);\n };\n FiltersToolPanelHeaderPanel.prototype.setExpandState = function (state) {\n this.currentExpandState = state;\n _.setDisplayed(this.eExpandChecked, this.currentExpandState === EXPAND_STATE.EXPANDED);\n _.setDisplayed(this.eExpandUnchecked, this.currentExpandState === EXPAND_STATE.COLLAPSED);\n _.setDisplayed(this.eExpandIndeterminate, this.currentExpandState === EXPAND_STATE.INDETERMINATE);\n };\n __decorate$1Q([\n Autowired('columnModel')\n ], FiltersToolPanelHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$1Q([\n RefSelector('eExpand')\n ], FiltersToolPanelHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$1Q([\n RefSelector('eFilterTextField')\n ], FiltersToolPanelHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$1Q([\n PreConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"preConstruct\", null);\n __decorate$1Q([\n PostConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"postConstruct\", null);\n return FiltersToolPanelHeaderPanel;\n}(Component));\n\nvar __extends$2V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterComp = /** @class */ (function (_super) {\n __extends$2V(ToolPanelFilterComp, _super);\n function ToolPanelFilterComp(hideHeader) {\n if (hideHeader === void 0) { hideHeader = false; }\n var _this = _super.call(this, ToolPanelFilterComp.TEMPLATE) || this;\n _this.expanded = false;\n _this.hideHeader = hideHeader;\n return _this;\n }\n ToolPanelFilterComp.prototype.postConstruct = function () {\n this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper);\n this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper);\n this.eExpand.appendChild(this.eExpandChecked);\n this.eExpand.appendChild(this.eExpandUnchecked);\n };\n ToolPanelFilterComp.prototype.setColumn = function (column) {\n var _this = this;\n this.column = column;\n this.eFilterName.innerText = this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false) || '';\n this.addManagedListener(this.eFilterToolPanelHeader, 'click', this.toggleExpanded.bind(this));\n this.addManagedListener(this.eFilterToolPanelHeader, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER) {\n _this.toggleExpanded();\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n this.addInIcon('filter', this.eFilterIcon, this.column);\n this.eFilterIcon.classList.toggle('ag-hidden', !this.isFilterActive());\n this.eExpandChecked.classList.add('ag-hidden');\n if (this.hideHeader) {\n this.eFilterToolPanelHeader.classList.toggle('ag-hidden', true);\n this.eFilterToolPanelHeader.removeAttribute('tabindex');\n }\n else {\n this.eFilterToolPanelHeader.setAttribute('tabindex', '0');\n }\n this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n };\n ToolPanelFilterComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelFilterComp.prototype.getColumnFilterName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false);\n };\n ToolPanelFilterComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eFilterToolPanelHeader.classList.add(cssClass);\n };\n ToolPanelFilterComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = _.createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n eParent.appendChild(eIcon);\n };\n ToolPanelFilterComp.prototype.isFilterActive = function () {\n return this.filterManager.isFilterActive(this.column);\n };\n ToolPanelFilterComp.prototype.onFilterChanged = function () {\n this.eFilterIcon.classList.toggle('ag-hidden', !this.isFilterActive());\n this.dispatchEvent({ type: Column.EVENT_FILTER_CHANGED });\n };\n ToolPanelFilterComp.prototype.toggleExpanded = function () {\n this.expanded ? this.collapse() : this.expand();\n };\n ToolPanelFilterComp.prototype.expand = function () {\n var _this = this;\n var _a;\n if (this.expanded) {\n return;\n }\n this.expanded = true;\n _.setAriaExpanded(this.eFilterToolPanelHeader, true);\n var container = _.loadTemplate(/* html */ \"
\");\n var filterPromise = (_a = this.filterManager.getOrCreateFilterWrapper(this.column, 'TOOLBAR')) === null || _a === void 0 ? void 0 : _a.filterPromise;\n if (filterPromise) {\n filterPromise.then(function (filter) {\n _this.underlyingFilter = filter;\n if (!filter) {\n return;\n }\n container.appendChild(filter.getGui());\n _this.agFilterToolPanelBody.appendChild(container);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'toolPanel' });\n }\n });\n }\n _.setDisplayed(this.eExpandChecked, true);\n _.setDisplayed(this.eExpandUnchecked, false);\n };\n ToolPanelFilterComp.prototype.collapse = function () {\n if (!this.expanded) {\n return;\n }\n this.expanded = false;\n _.setAriaExpanded(this.eFilterToolPanelHeader, false);\n this.agFilterToolPanelBody.removeChild(this.agFilterToolPanelBody.children[0]);\n _.setDisplayed(this.eExpandChecked, false);\n _.setDisplayed(this.eExpandUnchecked, true);\n };\n ToolPanelFilterComp.prototype.refreshFilter = function () {\n if (!this.expanded) {\n return;\n }\n var filter = this.underlyingFilter;\n if (!filter) {\n return;\n }\n // set filters should be updated when the filter has been changed elsewhere, i.e. via api. Note that we can't\n // use 'afterGuiAttached' to refresh the virtual list as it also focuses on the mini filter which changes the\n // scroll position in the filter list panel\n if (typeof filter.refreshVirtualList === 'function') {\n filter.refreshVirtualList();\n }\n };\n ToolPanelFilterComp.prototype.onFilterOpened = function (event) {\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.column) {\n return;\n }\n if (!this.expanded) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterComp.TEMPLATE = \"\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$1P([\n RefSelector('eFilterToolPanelHeader')\n ], ToolPanelFilterComp.prototype, \"eFilterToolPanelHeader\", void 0);\n __decorate$1P([\n RefSelector('eFilterName')\n ], ToolPanelFilterComp.prototype, \"eFilterName\", void 0);\n __decorate$1P([\n RefSelector('agFilterToolPanelBody')\n ], ToolPanelFilterComp.prototype, \"agFilterToolPanelBody\", void 0);\n __decorate$1P([\n RefSelector('eFilterIcon')\n ], ToolPanelFilterComp.prototype, \"eFilterIcon\", void 0);\n __decorate$1P([\n RefSelector('eExpand')\n ], ToolPanelFilterComp.prototype, \"eExpand\", void 0);\n __decorate$1P([\n Autowired('filterManager')\n ], ToolPanelFilterComp.prototype, \"filterManager\", void 0);\n __decorate$1P([\n Autowired('columnModel')\n ], ToolPanelFilterComp.prototype, \"columnModel\", void 0);\n __decorate$1P([\n PostConstruct\n ], ToolPanelFilterComp.prototype, \"postConstruct\", null);\n return ToolPanelFilterComp;\n}(Component));\n\nvar __extends$2U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterGroupComp = /** @class */ (function (_super) {\n __extends$2U(ToolPanelFilterGroupComp, _super);\n function ToolPanelFilterGroupComp(columnGroup, childFilterComps, expandedCallback, depth, showingColumn) {\n var _this = _super.call(this) || this;\n _this.columnGroup = columnGroup;\n _this.childFilterComps = childFilterComps;\n _this.depth = depth;\n _this.expandedCallback = expandedCallback;\n _this.showingColumn = showingColumn;\n return _this;\n }\n ToolPanelFilterGroupComp.prototype.preConstruct = function () {\n var groupParams = {\n cssIdentifier: 'filter-toolpanel',\n direction: 'vertical'\n };\n this.setTemplate(ToolPanelFilterGroupComp.TEMPLATE, { filterGroupComp: groupParams });\n };\n ToolPanelFilterGroupComp.prototype.init = function () {\n var _this = this;\n this.setGroupTitle();\n this.filterGroupComp.setAlignItems('stretch');\n this.filterGroupComp.addCssClass(\"ag-filter-toolpanel-group-level-\" + this.depth);\n this.filterGroupComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + this.depth + \"-header\");\n this.childFilterComps.forEach(function (filterComp) {\n _this.filterGroupComp.addItem(filterComp);\n filterComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + (_this.depth + 1) + \"-header\");\n });\n this.refreshFilterClass();\n this.addExpandCollapseListeners();\n this.addFilterChangedListeners();\n this.setupTooltip();\n };\n ToolPanelFilterGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n // we don't show tooltips for groups, as when the group expands, it's div contains the columns which also\n // have tooltips, so the tooltips would clash. Eg mouse over group, tooltip shows, mouse over column, another\n // tooltip shows but cos we didn't leave the group the group tooltip remains. this should be fixed in the future,\n // maybe the group shouldn't contain the children form a DOM perspective.\n if (!this.showingColumn) {\n return;\n }\n var refresh = function () {\n var newTooltipText = _this.columnGroup.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelFilterGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'filterToolPanelColumnGroup';\n return res;\n };\n ToolPanelFilterGroupComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.filterGroupComp.addCssClassToTitleBar(cssClass);\n };\n ToolPanelFilterGroupComp.prototype.refreshFilters = function () {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n filterComp.refreshFilters();\n }\n else {\n filterComp.refreshFilter();\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.isColumnGroup = function () {\n return this.columnGroup instanceof ProvidedColumnGroup;\n };\n ToolPanelFilterGroupComp.prototype.isExpanded = function () {\n return this.filterGroupComp.isExpanded();\n };\n ToolPanelFilterGroupComp.prototype.getChildren = function () {\n return this.childFilterComps;\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupName = function () {\n return this.filterGroupName ? this.filterGroupName : '';\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupId = function () {\n return this.columnGroup.getId();\n };\n ToolPanelFilterGroupComp.prototype.hideGroupItem = function (hide, index) {\n this.filterGroupComp.hideItem(hide, index);\n };\n ToolPanelFilterGroupComp.prototype.hideGroup = function (hide) {\n this.addOrRemoveCssClass('ag-hidden', hide);\n };\n ToolPanelFilterGroupComp.prototype.forEachToolPanelFilterChild = function (action) {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterComp) {\n action(filterComp);\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.addExpandCollapseListeners = function () {\n var _this = this;\n var expandListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.expand(); }); };\n var collapseListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.collapse(); }); };\n this.addManagedListener(this.filterGroupComp, AgGroupComponent.EVENT_EXPANDED, expandListener);\n this.addManagedListener(this.filterGroupComp, AgGroupComponent.EVENT_COLLAPSED, collapseListener);\n };\n ToolPanelFilterGroupComp.prototype.getColumns = function () {\n if (this.columnGroup instanceof ProvidedColumnGroup) {\n return this.columnGroup.getLeafColumns();\n }\n return [this.columnGroup];\n };\n ToolPanelFilterGroupComp.prototype.addFilterChangedListeners = function () {\n var _this = this;\n this.getColumns().forEach(function (column) {\n _this.addManagedListener(column, Column.EVENT_FILTER_CHANGED, function () { return _this.refreshFilterClass(); });\n });\n if (!(this.columnGroup instanceof ProvidedColumnGroup)) {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n }\n };\n ToolPanelFilterGroupComp.prototype.refreshFilterClass = function () {\n var columns = this.getColumns();\n var anyChildFiltersActive = function () { return columns.some(function (col) { return col.isFilterActive(); }); };\n this.filterGroupComp.addOrRemoveCssClass('ag-has-filter', anyChildFiltersActive());\n };\n ToolPanelFilterGroupComp.prototype.onFilterOpened = function (event) {\n // when a filter is opened elsewhere, i.e. column menu we close the filter comp so we also need to collapse\n // the column group. This approach means we don't need to try and sync filter models on the same column.\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.columnGroup) {\n return;\n }\n if (!this.isExpanded()) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterGroupComp.prototype.expand = function () {\n this.filterGroupComp.toggleGroupExpand(true);\n };\n ToolPanelFilterGroupComp.prototype.collapse = function () {\n this.filterGroupComp.toggleGroupExpand(false);\n };\n ToolPanelFilterGroupComp.prototype.setGroupTitle = function () {\n this.filterGroupName = (this.columnGroup instanceof ProvidedColumnGroup) ?\n this.getColumnGroupName(this.columnGroup) : this.getColumnName(this.columnGroup);\n this.filterGroupComp.setTitle(this.filterGroupName || '');\n };\n ToolPanelFilterGroupComp.prototype.getColumnGroupName = function (columnGroup) {\n return this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, 'filterToolPanel');\n };\n ToolPanelFilterGroupComp.prototype.getColumnName = function (column) {\n return this.columnModel.getDisplayNameForColumn(column, 'filterToolPanel', false);\n };\n ToolPanelFilterGroupComp.prototype.destroyFilters = function () {\n this.childFilterComps = this.destroyBeans(this.childFilterComps);\n _.clearElement(this.getGui());\n };\n ToolPanelFilterGroupComp.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n ToolPanelFilterGroupComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$1O([\n RefSelector('filterGroupComp')\n ], ToolPanelFilterGroupComp.prototype, \"filterGroupComp\", void 0);\n __decorate$1O([\n Autowired('columnModel')\n ], ToolPanelFilterGroupComp.prototype, \"columnModel\", void 0);\n __decorate$1O([\n PreConstruct\n ], ToolPanelFilterGroupComp.prototype, \"preConstruct\", null);\n __decorate$1O([\n PostConstruct\n ], ToolPanelFilterGroupComp.prototype, \"init\", null);\n return ToolPanelFilterGroupComp;\n}(Component));\n\nvar __extends$2T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanelListPanel = /** @class */ (function (_super) {\n __extends$2T(FiltersToolPanelListPanel, _super);\n function FiltersToolPanelListPanel() {\n var _this = _super.call(this, FiltersToolPanelListPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.filterGroupComps = [];\n return _this;\n }\n FiltersToolPanelListPanel.prototype.init = function (params) {\n var _this = this;\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n _.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () { return _this.onColumnsChanged(); });\n }\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED, function (event) {\n // when re-entering the filters tool panel we need to refresh the virtual lists in the set filters in case\n // filters have been changed elsewhere, i.e. via an api call.\n if (event.source === 'filters') {\n _this.refreshFilters();\n }\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n };\n FiltersToolPanelListPanel.prototype.onColumnsChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n shouldSyncColumnLayoutWithGrid ? this.syncFilterLayout() : this.buildTreeFromProvidedColumnDefs();\n };\n FiltersToolPanelListPanel.prototype.syncFilterLayout = function () {\n this.toolPanelColDefService.syncLayoutWithGrid(this.setFiltersLayout.bind(this));\n };\n FiltersToolPanelListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n var _this = this;\n this.destroyFilters();\n var columnTree = this.columnModel.getPrimaryColumnTree();\n this.filterGroupComps = this.recursivelyAddComps(columnTree, 0);\n var len = this.filterGroupComps.length;\n if (len) {\n // skip the destroy function because this will be managed\n // by the `destroyFilters` function\n this.filterGroupComps.forEach(function (comp) { return _this.appendChild(comp); });\n this.setFirstAndLastVisible(0, len - 1);\n }\n // perform search if searchFilterText exists\n if (_.exists(this.searchFilterText)) {\n this.searchFilters(this.searchFilterText);\n }\n // notify header of expand\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.setFiltersLayout = function (colDefs) {\n var _this = this;\n this.destroyFilters();\n var columnTree = this.toolPanelColDefService.createColumnTree(colDefs);\n this.filterGroupComps = this.recursivelyAddComps(columnTree, 0);\n var len = this.filterGroupComps.length;\n if (len) {\n // skip the destroy function because this will be managed\n // by the `destroyFilters` function\n this.filterGroupComps.forEach(function (comp) { return _this.appendChild(comp); });\n this.setFirstAndLastVisible(0, len - 1);\n }\n // perform search if searchFilterText exists\n if (_.exists(this.searchFilterText)) {\n this.searchFilters(this.searchFilterText);\n }\n // notify header of expand\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddComps = function (tree, depth) {\n var _this = this;\n return _.flatten(tree.map(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n return _.flatten(_this.recursivelyAddFilterGroupComps(child, depth));\n }\n var column = child;\n if (!_this.shouldDisplayFilter(column)) {\n return [];\n }\n var hideFilterCompHeader = depth === 0;\n var filterComp = new ToolPanelFilterComp(hideFilterCompHeader);\n _this.createBean(filterComp);\n filterComp.setColumn(column);\n if (depth > 0) {\n return filterComp;\n }\n var filterGroupComp = _this.createBean(new ToolPanelFilterGroupComp(column, [filterComp], _this.onGroupExpanded.bind(_this), depth, true));\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n filterGroupComp.collapse();\n return filterGroupComp;\n }));\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddFilterGroupComps = function (columnGroup, depth) {\n if (!this.filtersExistInChildren(columnGroup.getChildren())) {\n return;\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef && colGroupDef.suppressFiltersToolPanel) {\n return [];\n }\n var newDepth = columnGroup.isPadding() ? depth : depth + 1;\n var childFilterComps = _.flatten(this.recursivelyAddComps(columnGroup.getChildren(), newDepth));\n if (columnGroup.isPadding()) {\n return childFilterComps;\n }\n var filterGroupComp = new ToolPanelFilterGroupComp(columnGroup, childFilterComps, this.onGroupExpanded.bind(this), depth, false);\n this.createBean(filterGroupComp);\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n return [filterGroupComp];\n };\n FiltersToolPanelListPanel.prototype.filtersExistInChildren = function (tree) {\n var _this = this;\n return tree.some(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n return _this.filtersExistInChildren(child.getChildren());\n }\n return _this.shouldDisplayFilter(child);\n });\n };\n FiltersToolPanelListPanel.prototype.shouldDisplayFilter = function (column) {\n var suppressFiltersToolPanel = column.getColDef() && column.getColDef().suppressFiltersToolPanel;\n return column.isFilterAllowed() && !suppressFiltersToolPanel;\n };\n // we don't support refreshing, but must implement because it's on the tool panel interface\n FiltersToolPanelListPanel.prototype.refresh = function () { };\n // lazy initialise the panel\n FiltersToolPanelListPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilterGroups = function (expand, groupIds) {\n var updatedGroupIds = [];\n var updateGroupExpandState = function (filterGroup) {\n var groupId = filterGroup.getFilterGroupId();\n var shouldExpandOrCollapse = !groupIds || _.includes(groupIds, groupId);\n if (shouldExpandOrCollapse) {\n // don't expand 'column groups', i.e. top level columns wrapped in a group\n if (expand && filterGroup.isColumnGroup()) {\n filterGroup.expand();\n }\n else {\n filterGroup.collapse();\n }\n updatedGroupIds.push(groupId);\n }\n // recursively look for more groups to expand / collapse\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateGroupExpandState(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (groupIds) {\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return updatedGroupIds.indexOf(groupId) < 0; });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find groups for these supplied groupIds:', unrecognisedGroupIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilters = function (expand, colIds) {\n var updatedColIds = [];\n var updateGroupExpandState = function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n var anyChildrenChanged_1 = false;\n filterComp.getChildren().forEach(function (child) {\n var childUpdated = updateGroupExpandState(child);\n if (childUpdated) {\n if (expand) {\n filterComp.expand();\n anyChildrenChanged_1 = true;\n }\n else if (!filterComp.isColumnGroup()) {\n // we only collapse columns wrapped in groups\n filterComp.collapse();\n }\n }\n });\n return anyChildrenChanged_1;\n }\n var colId = filterComp.getColumn().getColId();\n var updateFilterExpandState = !colIds || _.includes(colIds, colId);\n if (updateFilterExpandState) {\n expand ? filterComp.expand() : filterComp.collapse();\n updatedColIds.push(colId);\n }\n return updateFilterExpandState;\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (colIds) {\n var unrecognisedColIds = colIds.filter(function (colId) { return updatedColIds.indexOf(colId) < 0; });\n if (unrecognisedColIds.length > 0) {\n console.warn('AG Grid: unable to find columns for these supplied colIds:', unrecognisedColIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.onGroupExpanded = function () {\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.fireExpandedEvent = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n var updateExpandCounts = function (filterGroup) {\n if (!filterGroup.isColumnGroup()) {\n return;\n }\n filterGroup.isExpanded() ? expandedCount++ : notExpandedCount++;\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateExpandCounts(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateExpandCounts);\n var state;\n if (expandedCount > 0 && notExpandedCount > 0) {\n state = EXPAND_STATE.INDETERMINATE;\n }\n else if (notExpandedCount > 0) {\n state = EXPAND_STATE.COLLAPSED;\n }\n else {\n state = EXPAND_STATE.EXPANDED;\n }\n this.dispatchEvent({ type: 'groupExpanded', state: state });\n };\n FiltersToolPanelListPanel.prototype.performFilterSearch = function (searchText) {\n this.searchFilterText = _.exists(searchText) ? searchText.toLowerCase() : null;\n this.searchFilters(this.searchFilterText);\n };\n FiltersToolPanelListPanel.prototype.searchFilters = function (searchFilter) {\n var passesFilter = function (groupName) {\n return !_.exists(searchFilter) || groupName.toLowerCase().indexOf(searchFilter) !== -1;\n };\n var recursivelySearch = function (filterItem, parentPasses) {\n if (!(filterItem instanceof ToolPanelFilterGroupComp)) {\n return passesFilter(filterItem.getColumnFilterName() || '');\n }\n var children = filterItem.getChildren();\n var groupNamePasses = passesFilter(filterItem.getFilterGroupName());\n // if group or parent already passed - ensure this group and all children are visible\n var alreadyPassed = parentPasses || groupNamePasses;\n if (alreadyPassed) {\n // ensure group visible\n filterItem.hideGroup(false);\n // ensure all children are visible\n for (var i = 0; i < children.length; i++) {\n recursivelySearch(children[i], alreadyPassed);\n filterItem.hideGroupItem(false, i);\n }\n return true;\n }\n // hide group item filters\n var anyChildPasses = false;\n children.forEach(function (child, index) {\n var childPasses = recursivelySearch(child, parentPasses);\n filterItem.hideGroupItem(!childPasses, index);\n if (childPasses) {\n anyChildPasses = true;\n }\n });\n // hide group if no children pass\n filterItem.hideGroup(!anyChildPasses);\n return anyChildPasses;\n };\n var firstVisible;\n var lastVisible;\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n recursivelySearch(filterGroup, false);\n if (firstVisible === undefined) {\n if (!filterGroup.containsCssClass('ag-hidden')) {\n firstVisible = idx;\n lastVisible = idx;\n }\n }\n else if (!filterGroup.containsCssClass('ag-hidden') && lastVisible !== idx) {\n lastVisible = idx;\n }\n });\n this.setFirstAndLastVisible(firstVisible, lastVisible);\n };\n FiltersToolPanelListPanel.prototype.setFirstAndLastVisible = function (firstIdx, lastIdx) {\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n filterGroup.removeCssClass('ag-first-group-visible');\n filterGroup.removeCssClass('ag-last-group-visible');\n if (idx === firstIdx) {\n filterGroup.addCssClass('ag-first-group-visible');\n }\n if (idx === lastIdx) {\n filterGroup.addCssClass('ag-last-group-visible');\n }\n });\n };\n FiltersToolPanelListPanel.prototype.refreshFilters = function () {\n this.filterGroupComps.forEach(function (filterGroupComp) { return filterGroupComp.refreshFilters(); });\n };\n FiltersToolPanelListPanel.prototype.destroyFilters = function () {\n this.filterGroupComps = this.destroyBeans(this.filterGroupComps);\n _.clearElement(this.getGui());\n };\n FiltersToolPanelListPanel.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanelListPanel.TEMPLATE = \"
\";\n __decorate$1N([\n Autowired(\"gridApi\")\n ], FiltersToolPanelListPanel.prototype, \"gridApi\", void 0);\n __decorate$1N([\n Autowired(\"columnApi\")\n ], FiltersToolPanelListPanel.prototype, \"columnApi\", void 0);\n __decorate$1N([\n Autowired('toolPanelColDefService')\n ], FiltersToolPanelListPanel.prototype, \"toolPanelColDefService\", void 0);\n __decorate$1N([\n Autowired('columnModel')\n ], FiltersToolPanelListPanel.prototype, \"columnModel\", void 0);\n return FiltersToolPanelListPanel;\n}(Component));\n\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$C = (undefined && undefined.__assign) || function () {\n __assign$C = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$C.apply(this, arguments);\n};\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanel = /** @class */ (function (_super) {\n __extends$2S(FiltersToolPanel, _super);\n function FiltersToolPanel() {\n var _this = _super.call(this, FiltersToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.listenerDestroyFuncs = [];\n return _this;\n }\n FiltersToolPanel.prototype.init = function (params) {\n // if initialised is true, means this is a refresh\n if (this.initialised) {\n this.listenerDestroyFuncs.forEach(function (func) { return func(); });\n this.listenerDestroyFuncs = [];\n }\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n };\n this.params = __assign$C(__assign$C(__assign$C({}, defaultParams), this.params), { context: this.gridOptionsWrapper.getContext() });\n this.filtersToolPanelHeaderPanel.init(this.params);\n this.filtersToolPanelListPanel.init(this.params);\n var hideExpand = this.params.suppressExpandAll;\n var hideSearch = this.params.suppressFilterSearch;\n if (hideExpand && hideSearch) {\n this.filtersToolPanelHeaderPanel.setDisplayed(false);\n }\n // this is necessary to prevent a memory leak while refreshing the tool panel\n this.listenerDestroyFuncs.push(this.addManagedListener(this.filtersToolPanelHeaderPanel, 'expandAll', this.onExpandAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'searchChanged', this.onSearchChanged.bind(this)), this.addManagedListener(this.filtersToolPanelListPanel, 'groupExpanded', this.onGroupExpanded.bind(this)));\n };\n // lazy initialise the panel\n FiltersToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanel.prototype.onExpandAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(true);\n };\n FiltersToolPanel.prototype.onCollapseAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(false);\n };\n FiltersToolPanel.prototype.onSearchChanged = function (event) {\n this.filtersToolPanelListPanel.performFilterSearch(event.searchText);\n };\n FiltersToolPanel.prototype.setFilterLayout = function (colDefs) {\n this.filtersToolPanelListPanel.setFiltersLayout(colDefs);\n };\n FiltersToolPanel.prototype.onGroupExpanded = function (event) {\n this.filtersToolPanelHeaderPanel.setExpandState(event.state);\n };\n FiltersToolPanel.prototype.expandFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(true, groupIds);\n };\n FiltersToolPanel.prototype.collapseFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(false, groupIds);\n };\n FiltersToolPanel.prototype.expandFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(true, colIds);\n };\n FiltersToolPanel.prototype.collapseFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(false, colIds);\n };\n FiltersToolPanel.prototype.syncLayoutWithGrid = function () {\n this.filtersToolPanelListPanel.syncFilterLayout();\n };\n FiltersToolPanel.prototype.refresh = function () {\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FiltersToolPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$1M([\n RefSelector('filtersToolPanelHeaderPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelHeaderPanel\", void 0);\n __decorate$1M([\n RefSelector('filtersToolPanelListPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelListPanel\", void 0);\n __decorate$1M([\n Autowired('gridApi')\n ], FiltersToolPanel.prototype, \"gridApi\", void 0);\n __decorate$1M([\n Autowired('columnApi')\n ], FiltersToolPanel.prototype, \"columnApi\", void 0);\n return FiltersToolPanel;\n}(Component));\n\nvar FiltersToolPanelModule = {\n moduleName: ModuleNames.FiltersToolPanelModule,\n beans: [],\n agStackComponents: [\n { componentName: 'AgFiltersToolPanelHeader', componentClass: FiltersToolPanelHeaderPanel },\n { componentName: 'AgFiltersToolPanelList', componentClass: FiltersToolPanelListPanel }\n ],\n userComponents: [\n { componentName: 'agFiltersToolPanel', componentClass: FiltersToolPanel },\n ],\n dependantModules: [\n SideBarModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartDatasource = /** @class */ (function (_super) {\n __extends$2R(ChartDatasource, _super);\n function ChartDatasource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartDatasource.prototype.getData = function (params) {\n if (params.crossFiltering) {\n if (params.grouping) {\n console.warn(\"AG Grid: crossing filtering with row grouping is not supported.\");\n return { chartData: [], columnNames: {} };\n }\n if (!this.gridOptionsWrapper.isRowModelDefault()) {\n console.warn(\"AG Grid: crossing filtering is only supported in the client side row model.\");\n return { chartData: [], columnNames: {} };\n }\n }\n var isServerSide = this.gridOptionsWrapper.isRowModelServerSide();\n if (isServerSide && params.pivoting) {\n this.updatePivotKeysForSSRM();\n }\n var result = this.extractRowsFromGridRowModel(params);\n result.chartData = this.aggregateRowsByDimension(params, result.chartData);\n return result;\n };\n ChartDatasource.prototype.extractRowsFromGridRowModel = function (params) {\n var _this = this;\n var extractedRowData = [];\n var columnNames = {};\n // maps used to keep track of expanded groups that need to be removed\n var groupNodeIndexes = {};\n var groupsToRemove = {};\n // only used when cross filtering\n var filteredNodes = {};\n var allRowNodes = [];\n var numRows;\n if (params.crossFiltering) {\n filteredNodes = this.getFilteredRowNodes();\n allRowNodes = this.getAllRowNodes();\n numRows = allRowNodes.length;\n }\n else {\n // make sure enough rows in range to chart. if user filters and less rows, then end row will be\n // the last displayed row, not where the range ends.\n var modelLastRow = this.gridRowModel.getRowCount() - 1;\n var rangeLastRow = params.endRow >= 0 ? Math.min(params.endRow, modelLastRow) : modelLastRow;\n numRows = rangeLastRow - params.startRow + 1;\n }\n var _loop_1 = function (i) {\n var data = {};\n var rowNode = params.crossFiltering ? allRowNodes[i] : this_1.gridRowModel.getRow(i + params.startRow);\n // first get data for dimensions columns\n params.dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var column = _this.columnModel.getGridColumn(colId);\n if (column) {\n var valueObject = _this.valueService.getValue(column, rowNode);\n // when grouping we also need to build up multi category labels for charts\n if (params.grouping) {\n var valueString = valueObject && valueObject.toString ? String(valueObject.toString()) : '';\n // traverse parents to extract group label path\n var labels = ChartDatasource.getGroupLabels(rowNode, valueString);\n data[colId] = {\n labels: labels, toString: function () {\n return this.labels.filter(function (l) { return !!l; }).reverse().join(' - ');\n }\n };\n // keep track of group node indexes, so they can be padded when other groups are expanded\n if (rowNode.group) {\n groupNodeIndexes[labels.toString()] = i;\n }\n // if node (group or leaf) has parents then it is expanded and should be removed\n var groupKey = labels.slice(1, labels.length).toString();\n if (groupKey) {\n groupsToRemove[groupKey] = groupNodeIndexes[groupKey];\n }\n }\n else {\n // leaf nodes can be directly added to dimension columns\n data[colId] = valueObject;\n }\n }\n else {\n // introduce a default category when no dimensions exist with a value based off row index (+1)\n data[ChartDataModel.DEFAULT_CATEGORY] = i + 1;\n }\n });\n // then get data for value columns\n params.valueCols.forEach(function (col) {\n var columnNamesArr = [];\n // pivot keys should be added first\n var pivotKeys = col.getColDef().pivotKeys;\n if (pivotKeys) {\n columnNamesArr = pivotKeys.slice();\n }\n // then add column header name to results\n var headerName = col.getColDef().headerName;\n if (headerName) {\n columnNamesArr.push(headerName);\n }\n // add array of column names to results\n if (columnNamesArr.length > 0) {\n columnNames[col.getId()] = columnNamesArr;\n }\n var colId = col.getColId();\n if (params.crossFiltering) {\n var filteredOutColId = colId + '-filtered-out';\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n var actualValue = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n if (filteredNodes[rowNode.id]) {\n data[colId] = actualValue;\n data[filteredOutColId] = params.aggFunc || params.isScatter ? undefined : 0;\n }\n else {\n data[colId] = params.aggFunc || params.isScatter ? undefined : 0;\n data[filteredOutColId] = actualValue;\n }\n }\n else {\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n // aggregated value\n if (value && value.hasOwnProperty('toString')) {\n value = parseFloat(value.toString());\n }\n data[colId] = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n }\n });\n // row data from footer nodes should not be included in charts\n if (rowNode.footer) {\n // 'stamping' data as footer to avoid impacting previously calculated `groupIndexesToRemove` and will\n // be removed from the results along with any expanded group nodes\n data.footer = true;\n }\n // add data to results\n extractedRowData.push(data);\n };\n var this_1 = this;\n for (var i = 0; i < numRows; i++) {\n _loop_1(i);\n }\n if (params.grouping) {\n var groupIndexesToRemove_1 = _.values(groupsToRemove);\n var filterFunc = function (data, index) { return !data.footer && !_.includes(groupIndexesToRemove_1, index); };\n extractedRowData = extractedRowData.filter(filterFunc);\n }\n return { chartData: extractedRowData, columnNames: columnNames };\n };\n ChartDatasource.prototype.aggregateRowsByDimension = function (params, dataFromGrid) {\n var _this = this;\n var dimensionCols = params.dimensionCols;\n if (!params.aggFunc || dimensionCols.length === 0) {\n return dataFromGrid;\n }\n var lastCol = _.last(dimensionCols);\n var lastColId = lastCol && lastCol.colId;\n var map = {};\n var dataAggregated = [];\n dataFromGrid.forEach(function (data) {\n var currentMap = map;\n dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var key = data[colId];\n if (colId === lastColId) {\n var groupItem_1 = currentMap[key];\n if (!groupItem_1) {\n groupItem_1 = { __children: [] };\n dimensionCols.forEach(function (dimCol) {\n var dimColId = dimCol.colId;\n groupItem_1[dimColId] = data[dimColId];\n });\n currentMap[key] = groupItem_1;\n dataAggregated.push(groupItem_1);\n }\n groupItem_1.__children.push(data);\n }\n else {\n // map of maps\n if (!currentMap[key]) {\n currentMap[key] = {};\n }\n currentMap = currentMap[key];\n }\n });\n });\n if (ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Charting Aggregation')) {\n dataAggregated.forEach(function (groupItem) { return params.valueCols.forEach(function (col) {\n if (params.crossFiltering) {\n params.valueCols.forEach(function (valueCol) {\n var colId = valueCol.getColId();\n // filtered data\n var dataToAgg = groupItem.__children\n .filter(function (child) { return typeof child[colId] !== 'undefined'; })\n .map(function (child) { return child[colId]; });\n var aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n groupItem[valueCol.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n // filtered out data\n var filteredOutColId = colId + \"-filtered-out\";\n var dataToAggFiltered = groupItem.__children\n .filter(function (child) { return typeof child[filteredOutColId] !== 'undefined'; })\n .map(function (child) { return child[filteredOutColId]; });\n var aggResultFiltered = _this.aggregationStage.aggregateValues(dataToAggFiltered, params.aggFunc);\n groupItem[filteredOutColId] = aggResultFiltered && typeof aggResultFiltered.value !== 'undefined' ? aggResultFiltered.value : aggResultFiltered;\n });\n }\n else {\n var dataToAgg = groupItem.__children.map(function (child) { return child[col.getId()]; });\n var aggResult = 0;\n if (ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Charting Aggregation')) {\n aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n }\n groupItem[col.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n }\n }); });\n }\n return dataAggregated;\n };\n ChartDatasource.prototype.updatePivotKeysForSSRM = function () {\n var secondaryColumns = this.columnModel.getSecondaryColumns();\n if (!secondaryColumns) {\n return;\n }\n // we don't know what the application will use for the pivot key separator (i.e. '_' or '|' ) as the\n // secondary columns are provided to grid by the application via columnApi.setSecondaryColumns()\n var pivotKeySeparator = this.extractPivotKeySeparator(secondaryColumns);\n // `pivotKeys` is not used by the SSRM for pivoting, so it is safe to reuse this colDef property. This way\n // the same logic can be used for CSRM and SSRM to extract legend names in extractRowsFromGridRowModel()\n secondaryColumns.forEach(function (col) {\n if (pivotKeySeparator === '') {\n col.getColDef().pivotKeys = [];\n }\n else {\n var keys = col.getColId().split(pivotKeySeparator);\n col.getColDef().pivotKeys = keys.slice(0, keys.length - 1);\n }\n });\n };\n ChartDatasource.prototype.extractPivotKeySeparator = function (secondaryColumns) {\n if (secondaryColumns.length === 0) {\n return '';\n }\n var extractSeparator = function (columnGroup, childId) {\n var groupId = columnGroup.getGroupId();\n if (!columnGroup.getParent()) {\n // removing groupId ('2000') from childId ('2000|Swimming') yields '|Swimming' so first char is separator\n return childId.split(groupId)[1][0];\n }\n return extractSeparator(columnGroup.getParent(), groupId);\n };\n var firstSecondaryCol = secondaryColumns[0];\n if (firstSecondaryCol.getParent() == null) {\n return '';\n }\n return extractSeparator(firstSecondaryCol.getParent(), firstSecondaryCol.getColId());\n };\n ChartDatasource.getGroupLabels = function (rowNode, initialLabel) {\n var labels = [initialLabel];\n while (rowNode && rowNode.level !== 0) {\n rowNode = rowNode.parent;\n if (rowNode) {\n labels.push(rowNode.key);\n }\n }\n return labels;\n };\n ChartDatasource.prototype.getFilteredRowNodes = function () {\n var filteredNodes = {};\n this.gridRowModel.forEachNodeAfterFilterAndSort(function (rowNode) {\n filteredNodes[rowNode.id] = rowNode;\n });\n return filteredNodes;\n };\n ChartDatasource.prototype.getAllRowNodes = function () {\n var allRowNodes = [];\n this.gridRowModel.forEachNode(function (rowNode) {\n allRowNodes.push(rowNode);\n });\n return this.sortRowNodes(allRowNodes);\n };\n ChartDatasource.prototype.sortRowNodes = function (rowNodes) {\n var sortOptions = this.sortController.getSortOptions();\n var noSort = !sortOptions || sortOptions.length == 0;\n if (noSort)\n return rowNodes;\n return this.rowNodeSorter.doFullSort(rowNodes, sortOptions);\n };\n __decorate$1L([\n Autowired('rowModel')\n ], ChartDatasource.prototype, \"gridRowModel\", void 0);\n __decorate$1L([\n Autowired('valueService')\n ], ChartDatasource.prototype, \"valueService\", void 0);\n __decorate$1L([\n Autowired('columnModel')\n ], ChartDatasource.prototype, \"columnModel\", void 0);\n __decorate$1L([\n Autowired('rowNodeSorter')\n ], ChartDatasource.prototype, \"rowNodeSorter\", void 0);\n __decorate$1L([\n Autowired('sortController')\n ], ChartDatasource.prototype, \"sortController\", void 0);\n __decorate$1L([\n Optional('aggregationStage')\n ], ChartDatasource.prototype, \"aggregationStage\", void 0);\n return ChartDatasource;\n}(BeanStub));\n\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$M = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$q = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$M(arguments[i]));\n return ar;\n};\nvar ChartDataModel = /** @class */ (function (_super) {\n __extends$2Q(ChartDataModel, _super);\n function ChartDataModel(params) {\n var _this = _super.call(this) || this;\n _this.unlinked = false;\n _this.chartData = [];\n _this.valueColState = [];\n _this.dimensionColState = [];\n _this.columnNames = {};\n _this.grouping = false;\n _this.crossFiltering = false;\n // this control flag is used to only log warning for the initial user config\n _this.suppressComboChartWarnings = false;\n _this.chartId = params.chartId;\n _this.chartType = params.chartType;\n _this.pivotChart = params.pivotChart;\n _this.chartThemeName = params.chartThemeName;\n _this.aggFunc = params.aggFunc;\n _this.referenceCellRange = params.cellRange;\n _this.suppliedCellRange = params.cellRange;\n _this.suppressChartRanges = params.suppressChartRanges;\n _this.unlinked = !!params.unlinkChart;\n _this.crossFiltering = !!params.crossFiltering;\n _this.seriesChartTypes = params.seriesChartTypes || [];\n _this.initComboCharts(params);\n return _this;\n }\n ChartDataModel.prototype.initComboCharts = function (params) {\n var seriesChartTypesExist = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n var customCombo = params.chartType === 'customCombo' || seriesChartTypesExist;\n if (customCombo) {\n // it is not necessary to supply a chart type for combo charts when `seriesChartTypes` is supplied\n this.chartType = 'customCombo';\n // cache supplied `seriesChartTypes` to allow switching between different chart types in the settings panel\n this.savedCustomSeriesChartTypes = this.seriesChartTypes || [];\n }\n };\n ChartDataModel.prototype.init = function () {\n this.datasource = this.createManagedBean(new ChartDatasource());\n this.updateCellRanges();\n };\n ChartDataModel.prototype.updateCellRanges = function (updatedColState) {\n if (this.valueCellRange) {\n this.referenceCellRange = this.valueCellRange;\n }\n var _a = this.getAllChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allColsFromRanges = this.getAllColumnsFromRanges();\n if (updatedColState) {\n this.updateColumnState(updatedColState);\n }\n this.setDimensionCellRange(dimensionCols, allColsFromRanges, updatedColState);\n this.setValueCellRange(valueCols, allColsFromRanges, updatedColState);\n if (!updatedColState) {\n this.resetColumnState();\n // dimension / category cell range could be out of sync after resetting column state when row grouping\n this.syncDimensionCellRange();\n }\n this.updateSeriesChartTypes();\n this.updateData();\n };\n ChartDataModel.prototype.updateSeriesChartTypes = function () {\n if (!this.isComboChart()) {\n return;\n }\n // ensure primary only chart types are not placed on secondary axis\n this.seriesChartTypes = this.seriesChartTypes.map(function (seriesChartType) {\n var primaryOnly = ['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType);\n seriesChartType.secondaryAxis = primaryOnly ? false : seriesChartType.secondaryAxis;\n return seriesChartType;\n });\n // note that when seriesChartTypes are supplied the chart type is also changed to 'customCombo'\n if (this.chartType === 'customCombo') {\n this.updateSeriesChartTypesForCustomCombo();\n return;\n }\n this.updateChartSeriesTypesForBuiltInCombos();\n };\n ChartDataModel.prototype.updateSeriesChartTypesForCustomCombo = function () {\n var _this = this;\n var seriesChartTypesSupplied = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n if (!seriesChartTypesSupplied && !this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: 'seriesChartTypes' are required when the 'customCombo' chart type is specified.\");\n }\n // ensure correct chartTypes are supplied\n this.seriesChartTypes = this.seriesChartTypes.map(function (s) {\n if (!ChartDataModel.SUPPORTED_COMBO_CHART_TYPES.includes(s.chartType)) {\n console.warn(\"AG Grid: invalid chartType '\" + s.chartType + \"' supplied in 'seriesChartTypes', converting to 'line' instead.\");\n s.chartType = 'line';\n }\n return s;\n });\n var getSeriesChartType = function (valueCol) {\n if (!_this.savedCustomSeriesChartTypes || _this.savedCustomSeriesChartTypes.length === 0) {\n _this.savedCustomSeriesChartTypes = _this.seriesChartTypes;\n }\n var providedSeriesChartType = _this.savedCustomSeriesChartTypes.find(function (s) { return s.colId === valueCol.colId; });\n if (!providedSeriesChartType) {\n if (valueCol.selected && !_this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: no 'seriesChartType' found for colId = '\" + valueCol.colId + \"', defaulting to 'line'.\");\n }\n return {\n colId: valueCol.colId,\n chartType: 'line',\n secondaryAxis: false\n };\n }\n return providedSeriesChartType;\n };\n var updatedSeriesChartTypes = this.valueColState.map(getSeriesChartType);\n this.seriesChartTypes = updatedSeriesChartTypes;\n // also cache custom `seriesChartTypes` to allow for switching between different chart types\n this.savedCustomSeriesChartTypes = updatedSeriesChartTypes;\n // turn off warnings as first combo chart attempt has completed\n this.suppressComboChartWarnings = true;\n };\n ChartDataModel.prototype.updateChartSeriesTypesForBuiltInCombos = function () {\n var primaryChartType = this.chartType === 'columnLineCombo' ? 'groupedColumn' : 'stackedArea';\n var secondaryChartType = this.chartType === 'columnLineCombo' ? 'line' : 'groupedColumn';\n var selectedCols = this.valueColState.filter(function (cs) { return cs.selected; });\n var lineIndex = Math.ceil(selectedCols.length / 2);\n this.seriesChartTypes = selectedCols.map(function (valueCol, i) {\n var seriesType = (i >= lineIndex) ? secondaryChartType : primaryChartType;\n return { colId: valueCol.colId, chartType: seriesType, secondaryAxis: false };\n });\n };\n ChartDataModel.prototype.updateData = function () {\n var _a = this.getRowIndexes(), startRow = _a.startRow, endRow = _a.endRow;\n if (this.pivotChart) {\n this.resetColumnState();\n }\n this.grouping = this.isGrouping();\n var params = {\n aggFunc: this.aggFunc,\n dimensionCols: [this.getSelectedDimension()],\n grouping: this.grouping,\n pivoting: this.isPivotActive(),\n crossFiltering: this.crossFiltering,\n valueCols: this.getSelectedValueCols(),\n startRow: startRow,\n endRow: endRow,\n isScatter: _.includes(['scatter', 'bubble'], this.chartType)\n };\n var _b = this.datasource.getData(params), chartData = _b.chartData, columnNames = _b.columnNames;\n this.chartData = chartData;\n this.columnNames = columnNames;\n };\n ChartDataModel.prototype.isGrouping = function () {\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var groupedCols = usingTreeData ? null : this.columnModel.getRowGroupColumns();\n var isGroupActive = usingTreeData || (groupedCols && groupedCols.length > 0);\n // charts only group when the selected category is a group column\n var colId = this.getSelectedDimension().colId;\n var displayedGroupCols = this.columnModel.getGroupDisplayColumns();\n var groupDimensionSelected = displayedGroupCols.map(function (col) { return col.getColId(); }).some(function (id) { return id === colId; });\n return !!isGroupActive && groupDimensionSelected;\n };\n ChartDataModel.prototype.getSelectedValueCols = function () {\n return this.valueColState.filter(function (cs) { return cs.selected; }).map(function (cs) { return cs.column; });\n };\n ChartDataModel.prototype.getSelectedDimension = function () {\n return this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n };\n ChartDataModel.prototype.getColDisplayName = function (col) {\n return this.columnModel.getDisplayNameForColumn(col, 'chart');\n };\n ChartDataModel.prototype.isPivotMode = function () {\n return this.columnModel.isPivotMode();\n };\n ChartDataModel.prototype.getChartDataType = function (colId) {\n var column = this.columnModel.getPrimaryColumn(colId);\n return column ? column.getColDef().chartDataType : undefined;\n };\n ChartDataModel.prototype.isPivotActive = function () {\n return this.columnModel.isPivotActive();\n };\n ChartDataModel.prototype.createCellRange = function (type) {\n var columns = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n columns[_i - 1] = arguments[_i];\n }\n return {\n id: this.chartId,\n startRow: this.referenceCellRange.startRow,\n endRow: this.referenceCellRange.endRow,\n columns: columns,\n startColumn: type === CellRangeType.DIMENSION ? columns[0] : this.referenceCellRange.startColumn,\n type: type\n };\n };\n ChartDataModel.prototype.getAllColumnsFromRanges = function () {\n if (this.pivotChart) {\n return _.convertToSet(this.columnModel.getAllDisplayedColumns());\n }\n var columns = this.dimensionCellRange || this.valueCellRange ? [] : this.referenceCellRange.columns;\n if (this.dimensionCellRange) {\n columns.push.apply(columns, __spread$q(this.dimensionCellRange.columns));\n }\n if (this.valueCellRange) {\n columns.push.apply(columns, __spread$q(this.valueCellRange.columns));\n }\n return _.convertToSet(columns);\n };\n ChartDataModel.prototype.getRowIndexes = function () {\n var startRow = 0, endRow = 0;\n var rangeService = this.rangeService;\n var range = this.valueCellRange;\n if (rangeService && range) {\n startRow = rangeService.getRangeStartRow(range).rowIndex;\n // when the last row the cell range is a pinned 'bottom' row, the `endRow` index is set to -1 which results\n // in the ChartDatasource processing all non pinned rows from the `startRow` index.\n var endRowPosition = rangeService.getRangeEndRow(range);\n endRow = endRowPosition.rowPinned === Constants.PINNED_BOTTOM ? -1 : endRowPosition.rowIndex;\n }\n return { startRow: startRow, endRow: endRow };\n };\n ChartDataModel.prototype.getAllChartColumns = function () {\n var _this = this;\n var displayedCols = this.columnModel.getAllDisplayedColumns();\n var dimensionCols = new Set();\n var valueCols = new Set();\n displayedCols.forEach(function (col) {\n var colDef = col.getColDef();\n var chartDataType = colDef.chartDataType;\n if (chartDataType) {\n // chart data type was specified explicitly\n switch (chartDataType) {\n case 'category':\n case 'time':\n dimensionCols.add(col);\n return;\n case 'series':\n valueCols.add(col);\n return;\n case 'excluded':\n return;\n default:\n console.warn(\"AG Grid: unexpected chartDataType value '\" + chartDataType + \"' supplied, instead use 'category', 'series' or 'excluded'\");\n break;\n }\n }\n if (colDef.colId === 'ag-Grid-AutoColumn') {\n dimensionCols.add(col);\n return;\n }\n if (!col.isPrimary()) {\n valueCols.add(col);\n return;\n }\n // if 'chartDataType' is not provided then infer type based data contained in first row\n (_this.isNumberCol(col) ? valueCols : dimensionCols).add(col);\n });\n return { dimensionCols: dimensionCols, valueCols: valueCols };\n };\n ChartDataModel.prototype.isNumberCol = function (col) {\n if (col.getColId() === 'ag-Grid-AutoColumn') {\n return false;\n }\n var row = this.rowRenderer.getRowNode({ rowIndex: 0, rowPinned: null });\n if (!row) {\n return false;\n }\n var cellValue = this.valueService.getValue(col, row);\n if (cellValue == null) {\n cellValue = this.extractLeafData(row, col);\n }\n if (cellValue != null && typeof cellValue.toNumber === 'function') {\n cellValue = cellValue.toNumber();\n }\n return typeof cellValue === 'number';\n };\n ChartDataModel.prototype.extractLeafData = function (row, col) {\n if (!row.allLeafChildren) {\n return null;\n }\n for (var i = 0; i < row.allLeafChildren.length; i++) {\n var childRow = row.allLeafChildren[i];\n var value = this.valueService.getValue(col, childRow);\n if (value != null) {\n return value;\n }\n }\n return null;\n };\n ChartDataModel.prototype.resetColumnState = function () {\n var _this = this;\n var _a = this.getAllChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allCols = this.getAllColumnsFromRanges();\n var isInitialising = this.valueColState.length < 1;\n this.dimensionColState = [];\n this.valueColState = [];\n var hasSelectedDimension = false;\n var order = 1;\n var aggFuncDimension = this.suppliedCellRange.columns[0]; //TODO\n dimensionCols.forEach(function (column) {\n var isAutoGroupCol = column.getColId() === 'ag-Grid-AutoColumn';\n var selected = false;\n if (_this.crossFiltering && _this.aggFunc) {\n if (aggFuncDimension.getColId() === column.getColId()) {\n selected = true;\n }\n }\n else {\n selected = isAutoGroupCol ? true : !hasSelectedDimension && allCols.has(column);\n }\n _this.dimensionColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: selected,\n order: order++\n });\n if (selected) {\n hasSelectedDimension = true;\n }\n });\n var defaultCategory = {\n colId: ChartDataModel.DEFAULT_CATEGORY,\n displayName: this.chartTranslationService.translate('defaultCategory'),\n selected: !hasSelectedDimension,\n order: 0\n };\n this.dimensionColState.unshift(defaultCategory);\n var valueColumnsFromReferenceRange = this.referenceCellRange.columns.filter(function (c) { return valueCols.has(c); });\n valueCols.forEach(function (column) {\n // first time the value cell range is set, preserve the column order from the supplied range\n if (isInitialising && _.includes(_this.referenceCellRange.columns, column)) {\n column = valueColumnsFromReferenceRange.shift();\n }\n _this.valueColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: allCols.has(column),\n order: order++\n });\n });\n };\n ChartDataModel.prototype.updateColumnState = function (updatedCol) {\n var idsMatch = function (cs) { return cs.colId === updatedCol.colId; };\n var _a = this, dimensionColState = _a.dimensionColState, valueColState = _a.valueColState;\n if (dimensionColState.filter(idsMatch).length > 0) {\n // only one dimension should be selected\n dimensionColState.forEach(function (cs) { return cs.selected = idsMatch(cs); });\n }\n else {\n // just update the selected value on the supplied value column\n valueColState.filter(idsMatch).forEach(function (cs) { return cs.selected = updatedCol.selected; });\n }\n var allColumns = __spread$q(dimensionColState, valueColState);\n var orderedColIds = [];\n // calculate new order\n allColumns.forEach(function (col, i) {\n if (i === updatedCol.order) {\n orderedColIds.push(updatedCol.colId);\n }\n if (col.colId !== updatedCol.colId) {\n orderedColIds.push(col.colId);\n }\n });\n // update col state with new order\n allColumns.forEach(function (col) {\n var order = orderedColIds.indexOf(col.colId);\n col.order = order >= 0 ? orderedColIds.indexOf(col.colId) : allColumns.length - 1;\n });\n this.reorderColState();\n };\n ChartDataModel.prototype.reorderColState = function () {\n var ascColStateOrder = function (a, b) { return a.order - b.order; };\n this.dimensionColState.sort(ascColStateOrder);\n this.valueColState.sort(ascColStateOrder);\n };\n ChartDataModel.prototype.setDimensionCellRange = function (dimensionCols, colsInRange, updatedColState) {\n var _this = this;\n this.dimensionCellRange = undefined;\n if (!updatedColState && !this.dimensionColState.length) {\n // use first dimension column in range by default\n dimensionCols.forEach(function (col) {\n if (_this.dimensionCellRange || !colsInRange.has(col)) {\n return;\n }\n _this.dimensionCellRange = _this.createCellRange(CellRangeType.DIMENSION, col);\n });\n return;\n }\n var selectedDimensionColState = updatedColState;\n if (this.crossFiltering && this.aggFunc) {\n var aggFuncDimension_1 = this.suppliedCellRange.columns[0]; //TODO\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.colId === aggFuncDimension_1.getColId(); })[0];\n }\n else if (!selectedDimensionColState || !dimensionCols.has(selectedDimensionColState.column)) {\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n }\n if (selectedDimensionColState && selectedDimensionColState.colId !== ChartDataModel.DEFAULT_CATEGORY) {\n this.dimensionCellRange = this.createCellRange(CellRangeType.DIMENSION, selectedDimensionColState.column);\n }\n };\n ChartDataModel.prototype.setValueCellRange = function (valueCols, colsInRange, updatedColState) {\n this.valueCellRange = undefined;\n var selectedValueCols = [];\n valueCols.forEach(function (col) {\n if (updatedColState && updatedColState.colId === col.getColId()) {\n if (updatedColState.selected) {\n selectedValueCols.push(updatedColState.column);\n }\n }\n else if (colsInRange.has(col)) {\n selectedValueCols.push(col);\n }\n });\n if (selectedValueCols.length > 0) {\n var orderedColIds_1 = [];\n if (this.valueColState.length > 0) {\n orderedColIds_1 = this.valueColState.map(function (c) { return c.colId; });\n }\n else {\n colsInRange.forEach(function (c) { return orderedColIds_1.push(c.getColId()); });\n }\n selectedValueCols.sort(function (a, b) { return orderedColIds_1.indexOf(a.getColId()) - orderedColIds_1.indexOf(b.getColId()); });\n this.valueCellRange = this.createCellRange.apply(this, __spread$q([CellRangeType.VALUE], selectedValueCols));\n }\n };\n ChartDataModel.prototype.syncDimensionCellRange = function () {\n var selectedDimension = this.getSelectedDimension();\n if (selectedDimension && selectedDimension.column) {\n this.dimensionCellRange = this.createCellRange(CellRangeType.DIMENSION, selectedDimension.column);\n }\n };\n ChartDataModel.prototype.isComboChart = function () {\n return ['columnLineCombo', 'areaColumnCombo', 'customCombo'].includes(this.chartType);\n };\n ChartDataModel.DEFAULT_CATEGORY = 'AG-GRID-DEFAULT-CATEGORY';\n ChartDataModel.SUPPORTED_COMBO_CHART_TYPES = ['line', 'groupedColumn', 'stackedColumn', 'area', 'stackedArea'];\n __decorate$1K([\n Autowired('columnModel')\n ], ChartDataModel.prototype, \"columnModel\", void 0);\n __decorate$1K([\n Autowired('valueService')\n ], ChartDataModel.prototype, \"valueService\", void 0);\n __decorate$1K([\n Autowired('rangeService')\n ], ChartDataModel.prototype, \"rangeService\", void 0);\n __decorate$1K([\n Autowired('rowRenderer')\n ], ChartDataModel.prototype, \"rowRenderer\", void 0);\n __decorate$1K([\n Autowired('chartTranslationService')\n ], ChartDataModel.prototype, \"chartTranslationService\", void 0);\n __decorate$1K([\n PostConstruct\n ], ChartDataModel.prototype, \"init\", null);\n return ChartDataModel;\n}(BeanStub));\n\n// For small data structs like a bounding box, objects are superior to arrays\n// in terms of performance (by 3-4% in Chrome 71, Safari 12 and by 20% in Firefox 64).\n// They are also self descriptive and harder to abuse.\n// For example, one has to do:\n// `ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);`\n// rather than become enticed by the much slower:\n// `ctx.strokeRect(...bbox);`\n// https://jsperf.com/array-vs-object-create-access\nvar BBox$1 = /** @class */ (function () {\n function BBox(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BBox.prototype.clone = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox(x, y, width, height);\n };\n BBox.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.width === other.width && this.height === other.height;\n };\n BBox.prototype.isValid = function () {\n return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height);\n };\n BBox.prototype.dilate = function (value) {\n this.x -= value;\n this.y -= value;\n this.width += value * 2;\n this.height += value * 2;\n };\n BBox.prototype.containsPoint = function (x, y) {\n return x >= this.x && x <= this.x + this.width && y >= this.y && y <= this.y + this.height;\n };\n BBox.prototype.render = function (ctx, params) {\n if (params === void 0) { params = BBox.noParams; }\n ctx.save();\n if (params.resetTransform) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n ctx.strokeStyle = params.strokeStyle || 'cyan';\n ctx.lineWidth = params.lineWidth || 1;\n ctx.strokeRect(this.x, this.y, this.width, this.height);\n if (params.label) {\n ctx.fillStyle = params.fillStyle || 'black';\n ctx.textBaseline = 'bottom';\n ctx.fillText(params.label, this.x, this.y);\n }\n ctx.restore();\n };\n BBox.noParams = {};\n return BBox;\n}());\n\nvar __read$L = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * As of Jan 8, 2019, Firefox still doesn't implement\n * `getTransform(): DOMMatrix;`\n * `setTransform(transform?: DOMMatrix2DInit)`\n * in the `CanvasRenderingContext2D`.\n * Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=928150\n * IE11 and Edge 44 also don't have the support.\n * Thus this class, to keep track of the current transform and\n * combine transformations.\n * Standards:\n * https://html.spec.whatwg.org/dev/canvas.html\n * https://www.w3.org/TR/geometry-1/\n */\nvar Matrix$1 = /** @class */ (function () {\n function Matrix(elements) {\n if (elements === void 0) { elements = [1, 0, 0, 1, 0, 0]; }\n this.elements = elements;\n }\n Matrix.prototype.setElements = function (elements) {\n var e = this.elements;\n // `this.elements = elements.slice()` is 4-5 times slower\n // (in Chrome 71 and FF 64) than manually copying elements,\n // since slicing allocates new memory.\n // The performance of passing parameters individually\n // vs as an array is about the same in both browsers, so we\n // go with a single (array of elements) parameter, because\n // `setElements(elements)` and `setElements([a, b, c, d, e, f])`\n // calls give us roughly the same performance, versus\n // `setElements(...elements)` and `setElements(a, b, c, d, e, f)`,\n // where the spread operator causes a 20-30x performance drop\n // (30x when compiled to ES5's `.apply(this, elements)`\n // 20x when used natively).\n e[0] = elements[0];\n e[1] = elements[1];\n e[2] = elements[2];\n e[3] = elements[3];\n e[4] = elements[4];\n e[5] = elements[5];\n return this;\n };\n Matrix.prototype.setIdentityElements = function () {\n var e = this.elements;\n e[0] = 1;\n e[1] = 0;\n e[2] = 0;\n e[3] = 1;\n e[4] = 0;\n e[5] = 0;\n return this;\n };\n Object.defineProperty(Matrix.prototype, \"identity\", {\n get: function () {\n var e = this.elements;\n return e[0] === 1 && e[1] === 0 && e[2] === 0 && e[3] === 1 && e[4] === 0 && e[5] === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"a\", {\n get: function () {\n return this.elements[0];\n },\n set: function (value) {\n this.elements[0] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"b\", {\n get: function () {\n return this.elements[1];\n },\n set: function (value) {\n this.elements[1] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"c\", {\n get: function () {\n return this.elements[2];\n },\n set: function (value) {\n this.elements[2] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"d\", {\n get: function () {\n return this.elements[3];\n },\n set: function (value) {\n this.elements[3] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"e\", {\n get: function () {\n return this.elements[4];\n },\n set: function (value) {\n this.elements[4] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"f\", {\n get: function () {\n return this.elements[5];\n },\n set: function (value) {\n this.elements[5] = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Performs the AxB matrix multiplication and saves the result\n * to `C`, if given, or to `A` otherwise.\n */\n Matrix.prototype.AxB = function (A, B, C) {\n var a = A[0] * B[0] + A[2] * B[1], b = A[1] * B[0] + A[3] * B[1], c = A[0] * B[2] + A[2] * B[3], d = A[1] * B[2] + A[3] * B[3], e = A[0] * B[4] + A[2] * B[5] + A[4], f = A[1] * B[4] + A[3] * B[5] + A[5];\n C = C || A;\n C[0] = a;\n C[1] = b;\n C[2] = c;\n C[3] = d;\n C[4] = e;\n C[5] = f;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns the current matrix.\n * @param other\n */\n Matrix.prototype.multiplySelf = function (other) {\n this.AxB(this.elements, other.elements);\n return this;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns a new matrix.\n * @param other\n */\n Matrix.prototype.multiply = function (other) {\n var elements = new Array(6);\n this.AxB(this.elements, other.elements, elements);\n return new Matrix(elements);\n };\n Matrix.prototype.preMultiplySelf = function (other) {\n this.AxB(other.elements, this.elements, this.elements);\n return this;\n };\n /**\n * Returns the inverse of this matrix as a new matrix.\n */\n Matrix.prototype.inverse = function () {\n var _a = __read$L(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n return new Matrix([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n };\n /**\n * Save the inverse of this matrix to the given matrix.\n */\n Matrix.prototype.inverseTo = function (other) {\n var _a = __read$L(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n other.setElements([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n return this;\n };\n Matrix.prototype.invertSelf = function () {\n var el = this.elements;\n var a = el[0], b = el[1], c = el[2], d = el[3], e = el[4], f = el[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n el[0] = d;\n el[1] = -b;\n el[2] = -c;\n el[3] = a;\n el[4] = c * f - d * e;\n el[5] = b * e - a * f;\n return this;\n };\n Matrix.prototype.clone = function () {\n return new Matrix(this.elements.slice());\n };\n Matrix.prototype.transformPoint = function (x, y) {\n var e = this.elements;\n return {\n x: x * e[0] + y * e[2] + e[4],\n y: x * e[1] + y * e[3] + e[5],\n };\n };\n Matrix.prototype.transformBBox = function (bbox, radius, target) {\n if (radius === void 0) { radius = 0; }\n var elements = this.elements;\n var xx = elements[0];\n var xy = elements[1];\n var yx = elements[2];\n var yy = elements[3];\n var h_w = bbox.width * 0.5;\n var h_h = bbox.height * 0.5;\n var cx = bbox.x + h_w;\n var cy = bbox.y + h_h;\n var w, h;\n if (radius) {\n h_w -= radius;\n h_h -= radius;\n var sx = Math.sqrt(xx * xx + yx * yx);\n var sy = Math.sqrt(xy * xy + yy * yy);\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx) + Math.abs(sx * radius);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy) + Math.abs(sy * radius);\n }\n else {\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy);\n }\n if (!target) {\n target = new BBox$1(0, 0, 0, 0);\n }\n target.x = cx * xx + cy * yx + elements[4] - w;\n target.y = cx * xy + cy * yy + elements[5] - h;\n target.width = w + w;\n target.height = h + h;\n return target;\n };\n Matrix.prototype.toContext = function (ctx) {\n // It's fair to say that matrix multiplications are not cheap.\n // However, updating path definitions on every frame isn't either, so\n // it may be cheaper to just translate paths. It's also fair to\n // say, that most paths will have to be re-rendered anyway, say\n // rectangle paths in a bar chart, where an animation would happen when\n // the data set changes and existing bars are morphed into new ones.\n // Or a pie chart, where old sectors are also morphed into new ones.\n // Same for the line chart. The only plausible case where translating\n // existing paths would be enough, is the scatter chart, where marker\n // icons, typically circles, stay the same size. But if circle radii\n // are bound to some data points, even circle paths would have to be\n // updated. And thus it makes sense to optimize for fewer matrix\n // transforms, where transform matrices of paths are mostly identity\n // matrices and `x`/`y`, `centerX`/`centerY` and similar properties\n // are used to define a path at specific coordinates. And only groups\n // are used to collectively apply a transform to a set of nodes.\n // If the matrix is mostly identity (95% of the time),\n // the `if (this.isIdentity)` check can make this call 3-4 times\n // faster on average: https://jsperf.com/matrix-check-first-vs-always-set\n if (this.identity) {\n return;\n }\n var e = this.elements;\n ctx.transform(e[0], e[1], e[2], e[3], e[4], e[5]);\n };\n Matrix.flyweight = function (elements) {\n if (elements) {\n if (elements instanceof Matrix) {\n Matrix.matrix.setElements(elements.elements);\n }\n else {\n Matrix.matrix.setElements(elements);\n }\n }\n else {\n Matrix.matrix.setIdentityElements();\n }\n return Matrix.matrix;\n };\n Matrix.updateTransformMatrix = function (matrix, scalingX, scalingY, rotation, translationX, translationY, opts) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n // Assume that centers of scaling and rotation are at the origin.\n var _j = __read$L([0, 0], 2), bbcx = _j[0], bbcy = _j[1];\n var sx = scalingX;\n var sy = scalingY;\n var scx;\n var scy;\n if (sx === 1 && sy === 1) {\n scx = 0;\n scy = 0;\n }\n else {\n scx = ((_a = opts) === null || _a === void 0 ? void 0 : _a.scalingCenterX) == null ? bbcx : (_b = opts) === null || _b === void 0 ? void 0 : _b.scalingCenterX;\n scy = ((_c = opts) === null || _c === void 0 ? void 0 : _c.scalingCenterY) == null ? bbcy : (_d = opts) === null || _d === void 0 ? void 0 : _d.scalingCenterY;\n }\n var r = rotation;\n var cos = Math.cos(r);\n var sin = Math.sin(r);\n var rcx;\n var rcy;\n if (r === 0) {\n rcx = 0;\n rcy = 0;\n }\n else {\n rcx = ((_e = opts) === null || _e === void 0 ? void 0 : _e.rotationCenterX) == null ? bbcx : (_f = opts) === null || _f === void 0 ? void 0 : _f.rotationCenterX;\n rcy = ((_g = opts) === null || _g === void 0 ? void 0 : _g.rotationCenterY) == null ? bbcy : (_h = opts) === null || _h === void 0 ? void 0 : _h.rotationCenterY;\n }\n var tx = translationX;\n var ty = translationY;\n // The transform matrix `M` is a result of the following transformations:\n // 1) translate the center of scaling to the origin\n // 2) scale\n // 3) translate back\n // 4) translate the center of rotation to the origin\n // 5) rotate\n // 6) translate back\n // 7) translate\n // (7) (6) (5) (4) (3) (2) (1)\n // | 1 0 tx | | 1 0 rcx | | cos -sin 0 | | 1 0 -rcx | | 1 0 scx | | sx 0 0 | | 1 0 -scx |\n // M = | 0 1 ty | * | 0 1 rcy | * | sin cos 0 | * | 0 1 -rcy | * | 0 1 scy | * | 0 sy 0 | * | 0 1 -scy |\n // | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 0 | | 0 0 1 |\n // Translation after steps 1-4 above:\n var tx4 = scx * (1 - sx) - rcx;\n var ty4 = scy * (1 - sy) - rcy;\n matrix.setElements([\n cos * sx,\n sin * sx,\n -sin * sy,\n cos * sy,\n cos * tx4 - sin * ty4 + rcx + tx,\n sin * tx4 + cos * ty4 + rcy + ty,\n ]);\n return matrix;\n };\n Matrix.matrix = new Matrix();\n return Matrix;\n}());\n\nvar ID_MAP = {};\nfunction createId$1(instance) {\n var _a;\n var constructor = instance.constructor;\n var className = constructor.hasOwnProperty('className') ? constructor.className : constructor.name;\n if (!className) {\n throw new Error(\"The \" + constructor + \" is missing the 'className' property.\");\n }\n var nextId = (_a = ID_MAP[className], (_a !== null && _a !== void 0 ? _a : 0)) + 1;\n ID_MAP[className] = nextId;\n return className + '-' + nextId;\n}\n\nfunction windowValue(name) {\n var _a;\n /**\n * Redeclaration of window that is safe for use with Gatsby server-side (webpack) compilation.\n */\n var WINDOW = typeof window !== 'undefined'\n ? window\n : // typeof global !== 'undefined' ? (global as any) :\n undefined;\n return (_a = WINDOW) === null || _a === void 0 ? void 0 : _a[name];\n}\n\nvar RedrawType;\n(function (RedrawType) {\n RedrawType[RedrawType[\"NONE\"] = 0] = \"NONE\";\n // Canvas doesn't need clearing, an incremental re-rerender is sufficient.\n RedrawType[RedrawType[\"TRIVIAL\"] = 1] = \"TRIVIAL\";\n // Group needs clearing, a semi-incremental re-render is sufficient.\n RedrawType[RedrawType[\"MINOR\"] = 2] = \"MINOR\";\n // Canvas needs to be cleared for these redraw types.\n RedrawType[RedrawType[\"MAJOR\"] = 3] = \"MAJOR\";\n})(RedrawType || (RedrawType = {}));\n/** @returns true if eval() is disabled in the current execution context. */\nfunction evalAvailable() {\n try {\n eval('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\nvar EVAL_USEABLE = evalAvailable();\nfunction SceneChangeDetection(opts) {\n var _a = opts || {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.TRIVIAL : _b, _c = _a.type, type = _c === void 0 ? 'normal' : _c, changeCb = _a.changeCb, convertor = _a.convertor, _d = _a.checkDirtyOnAssignment, checkDirtyOnAssignment = _d === void 0 ? false : _d;\n var debug = windowValue('agChartsSceneChangeDetectionDebug') != null;\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = \"__\" + key;\n if (target[key]) {\n return;\n }\n if (EVAL_USEABLE) {\n // Optimised code-path.\n // Remove all conditional logic from runtime - generate a setter with the exact necessary\n // steps, as these setters are called a LOT during update cycles.\n var setterJs = \"\\n \" + (debug ? 'var setCount = 0;' : '') + \"\\n function set_\" + key + \"(value) {\\n const oldValue = this.\" + privateKey + \";\\n \" + (convertor ? 'value = convertor(value);' : '') + \"\\n if (value !== oldValue) {\\n this.\" + privateKey + \" = value;\\n \" + (debug\n ? \"console.log({ t: this, property: '\" + key + \"', oldValue, value, stack: new Error().stack });\"\n : '') + \"\\n \" + (type === 'normal' ? \"this.markDirty(this, \" + redraw + \");\" : '') + \"\\n \" + (type === 'transform' ? \"this.markDirtyTransform(\" + redraw + \");\" : '') + \"\\n \" + (type === 'path'\n ? \"if (!this._dirtyPath) { this._dirtyPath = true; this.markDirty(this, \" + redraw + \"); }\"\n : '') + \"\\n \" + (type === 'font'\n ? \"if (!this._dirtyFont) { this._dirtyFont = true; this.markDirty(this, \" + redraw + \"); }\"\n : '') + \"\\n \" + (changeCb ? 'changeCb(this);' : '') + \"\\n }\\n \" + (checkDirtyOnAssignment\n ? \"if (value != null && value._dirty > \" + RedrawType.NONE + \") { this.markDirty(value, value._dirty); }\"\n : '') + \"\\n };\\n set_\" + key + \";\\n \";\n var getterJs = \"\\n function get_\" + key + \"() {\\n return this.\" + privateKey + \";\\n };\\n get_\" + key + \";\\n \";\n Object.defineProperty(target, key, {\n set: eval(setterJs),\n get: eval(getterJs),\n enumerable: true,\n configurable: true,\n });\n }\n else {\n // Unoptimised but 'safe' code-path, for environments with CSP headers and no 'unsafe-eval'.\n // We deliberately do not support debug branches found in the optimised path above, since\n // for large data-set series performance deteriorates with every extra branch here.\n var setter = function (value) {\n var oldValue = this[privateKey];\n value = convertor ? convertor(value) : value;\n if (value !== oldValue) {\n this[privateKey] = value;\n if (type === 'normal')\n this.markDirty(this, redraw);\n if (type === 'transform')\n this.markDirtyTransform(redraw);\n if (type === 'path' && !this._dirtyPath) {\n this._dirtyPath = true;\n this.markDirty(this, redraw);\n }\n if (type === 'font' && !this._dirtyFont) {\n this._dirtyFont = true;\n this.markDirty(this, redraw);\n }\n if (changeCb)\n changeCb(this);\n }\n if (checkDirtyOnAssignment && value != null && value._dirty > RedrawType.NONE)\n this.markDirty(value, value._dirty);\n };\n var getter = function () {\n return this[privateKey];\n };\n Object.defineProperty(target, key, {\n set: setter,\n get: getter,\n enumerable: true,\n configurable: true,\n });\n }\n };\n}\nvar ChangeDetectable = /** @class */ (function () {\n function ChangeDetectable() {\n this._dirty = RedrawType.MAJOR;\n }\n ChangeDetectable.prototype.markDirty = function (_source, type) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n if (this._dirty > type) {\n return;\n }\n this._dirty = type;\n };\n ChangeDetectable.prototype.markClean = function (_opts) {\n this._dirty = RedrawType.NONE;\n };\n ChangeDetectable.prototype.isDirty = function () {\n return this._dirty > RedrawType.NONE;\n };\n return ChangeDetectable;\n}());\n\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$w = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar PointerEvents$1;\n(function (PointerEvents) {\n PointerEvents[PointerEvents[\"All\"] = 0] = \"All\";\n PointerEvents[PointerEvents[\"None\"] = 1] = \"None\";\n})(PointerEvents$1 || (PointerEvents$1 = {}));\nvar zIndexChangedCallback = function (o) {\n if (o.parent) {\n o.parent.dirtyZIndex = true;\n }\n o.zIndexChanged();\n};\n/**\n * Abstract scene graph node.\n * Each node can have zero or one parent and belong to zero or one scene.\n */\nvar Node$1 = /** @class */ (function (_super) {\n __extends$2P(Node, _super);\n function Node() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Unique number to allow creation order to be easily determined. */\n _this.serialNumber = Node._nextSerialNumber++;\n /**\n * Unique node ID in the form `ClassName-NaturalNumber`.\n */\n _this.id = createId$1(_this);\n /**\n * Some number to identify this node, typically within a `Group` node.\n * Usually this will be some enum value used as a selector.\n */\n _this.tag = NaN;\n /**\n * To simplify the type system (especially in Selections) we don't have the `Parent` node\n * (one that has children). Instead, we mimic HTML DOM, where any node can have children.\n * But we still need to distinguish regular leaf nodes from container leafs somehow.\n */\n _this.isContainerNode = false;\n _this._children = [];\n // Used to check for duplicate nodes.\n _this.childSet = {}; // new Set()\n // These matrices may need to have package level visibility\n // for performance optimization purposes.\n _this.matrix = new Matrix$1();\n _this.inverseMatrix = new Matrix$1();\n _this._dirtyTransform = false;\n _this.scalingX = 1;\n _this.scalingY = 1;\n /**\n * The center of scaling.\n * The default value of `null` means the scaling center will be\n * determined automatically, as the center of the bounding box\n * of a node.\n */\n _this.scalingCenterX = null;\n _this.scalingCenterY = null;\n _this.rotationCenterX = null;\n _this.rotationCenterY = null;\n /**\n * Rotation angle in radians.\n * The value is set as is. No normalization to the [-180, 180) or [0, 360)\n * interval is performed.\n */\n _this.rotation = 0;\n _this.translationX = 0;\n _this.translationY = 0;\n _this.visible = true;\n _this.dirtyZIndex = false;\n _this.zIndex = 0;\n /** Discriminators for render order within a zIndex. */\n _this.zIndexSubOrder = undefined;\n _this.pointerEvents = PointerEvents$1.All;\n return _this;\n }\n /**\n * This is meaningfully faster than `instanceof` and should be the preferred way\n * of checking inside loops.\n * @param node\n */\n Node.isNode = function (node) {\n return node ? node.matrix !== undefined : false;\n };\n Node.prototype._setScene = function (value) {\n var e_1, _a;\n var _b;\n this._scene = value;\n this._debug = (_b = value) === null || _b === void 0 ? void 0 : _b.debug;\n try {\n for (var _c = __values$w(this.children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n child._setScene(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Object.defineProperty(Node.prototype, \"scene\", {\n get: function () {\n return this._scene;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"children\", {\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.countChildren = function (depth) {\n if (depth === void 0) { depth = Node.MAX_SAFE_INTEGER; }\n if (depth <= 0) {\n return 0;\n }\n var children = this.children;\n var n = children.length;\n var size = n;\n for (var i = 0; i < n; i++) {\n size += children[i].countChildren(depth - 1);\n }\n return size;\n };\n /**\n * Appends one or more new node instances to this parent.\n * If one needs to:\n * - move a child to the end of the list of children\n * - move a child from one parent to another (including parents in other scenes)\n * one should use the {@link insertBefore} method instead.\n * @param nodes A node or nodes to append.\n */\n Node.prototype.append = function (nodes) {\n var e_2, _a;\n // Passing a single parameter to an open-ended version of `append`\n // would be 30-35% slower than this.\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n try {\n for (var nodes_1 = __values$w(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs to a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._parent = this;\n node._setScene(this.scene);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.dirtyZIndex = true;\n this.markDirty(this, RedrawType.MAJOR);\n };\n Node.prototype.appendChild = function (node) {\n this.append(node);\n return node;\n };\n Node.prototype.removeChild = function (node) {\n if (node.parent === this) {\n var i = this.children.indexOf(node);\n if (i >= 0) {\n this._children.splice(i, 1);\n delete this.childSet[node.id];\n node._parent = undefined;\n node._setScene();\n this.dirtyZIndex = true;\n this.markDirty(node, RedrawType.MAJOR);\n return node;\n }\n }\n throw new Error(\"The node to be removed is not a child of this node.\");\n };\n /**\n * Inserts the node `node` before the existing child node `nextNode`.\n * If `nextNode` is null, insert `node` at the end of the list of children.\n * If the `node` belongs to another parent, it is first removed.\n * Returns the `node`.\n * @param node\n * @param nextNode\n */\n Node.prototype.insertBefore = function (node, nextNode) {\n var parent = node.parent;\n if (node.parent) {\n node.parent.removeChild(node);\n }\n if (nextNode && nextNode.parent === this) {\n var i = this.children.indexOf(nextNode);\n if (i >= 0) {\n this._children.splice(i, 0, node);\n this.childSet[node.id] = true;\n node._parent = this;\n node._setScene(this.scene);\n }\n else {\n throw new Error(nextNode + \" has \" + parent + \" as the parent, \" + \"but is not in its list of children.\");\n }\n this.dirtyZIndex = true;\n this.markDirty(node, RedrawType.MAJOR);\n }\n else {\n this.append(node);\n }\n return node;\n };\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n get: function () {\n var parent = this.parent;\n if (parent) {\n var children = parent.children;\n var index = children.indexOf(this);\n if (index >= 0 && index <= children.length - 1) {\n return children[index + 1];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.transformPoint = function (x, y) {\n var matrix = Matrix$1.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.invertSelf().transformPoint(x, y);\n };\n Node.prototype.inverseTransformPoint = function (x, y) {\n var matrix = Matrix$1.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.transformPoint(x, y);\n };\n Node.prototype.markDirtyTransform = function () {\n this._dirtyTransform = true;\n this.markDirty(this, RedrawType.MAJOR);\n };\n Object.defineProperty(Node.prototype, \"rotationDeg\", {\n get: function () {\n return (this.rotation / Math.PI) * 180;\n },\n /**\n * For performance reasons the rotation angle's internal representation\n * is in radians. Therefore, don't expect to get the same number you set.\n * Even with integer angles about a quarter of them from 0 to 359 cannot\n * be converted to radians and back without precision loss.\n * For example:\n *\n * node.rotationDeg = 11;\n * console.log(node.rotationDeg); // 10.999999999999998\n *\n * @param value Rotation angle in degrees.\n */\n set: function (value) {\n this.rotation = (value / 180) * Math.PI;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.containsPoint = function (_x, _y) {\n return false;\n };\n /**\n * Hit testing method.\n * Recursively checks if the given point is inside this node or any of its children.\n * Returns the first matching node or `undefined`.\n * Nodes that render later (show on top) are hit tested first.\n */\n Node.prototype.pickNode = function (x, y) {\n var _a;\n if (!this.visible || this.pointerEvents === PointerEvents$1.None || !this.containsPoint(x, y)) {\n return;\n }\n var children = this.children;\n if (children.length > 1000) {\n // Try to optimise which children to interrogate; BBox calculation is an approximation\n // for more complex shapes, so discarding items based on this will save a lot of\n // processing when the point is nowhere near the child.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = ((_a = children[i].computeBBox()) === null || _a === void 0 ? void 0 : _a.containsPoint(x, y)) ? children[i].pickNode(x, y) : undefined;\n if (hit) {\n return hit;\n }\n }\n }\n else if (children.length) {\n // Nodes added later should be hit-tested first,\n // as they are rendered on top of the previously added nodes.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = children[i].pickNode(x, y);\n if (hit) {\n return hit;\n }\n }\n }\n else if (!this.isContainerNode) {\n // a leaf node, but not a container leaf\n return this;\n }\n };\n Node.prototype.computeBBox = function () {\n return;\n };\n Node.prototype.computeTransformedBBox = function () {\n var bbox = this.computeBBox();\n if (!bbox) {\n return undefined;\n }\n this.computeTransformMatrix();\n var matrix = Matrix$1.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n parent.computeTransformMatrix();\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n matrix.transformBBox(bbox, 0, bbox);\n return bbox;\n };\n Node.prototype.computeBBoxCenter = function () {\n var bbox = this.computeBBox && this.computeBBox();\n if (bbox) {\n return [bbox.x + bbox.width * 0.5, bbox.y + bbox.height * 0.5];\n }\n return [0, 0];\n };\n Node.prototype.computeTransformMatrix = function () {\n if (!this._dirtyTransform) {\n return;\n }\n var _a = this, matrix = _a.matrix, scalingX = _a.scalingX, scalingY = _a.scalingY, rotation = _a.rotation, translationX = _a.translationX, translationY = _a.translationY, scalingCenterX = _a.scalingCenterX, scalingCenterY = _a.scalingCenterY, rotationCenterX = _a.rotationCenterX, rotationCenterY = _a.rotationCenterY;\n Matrix$1.updateTransformMatrix(matrix, scalingX, scalingY, rotation, translationX, translationY, {\n scalingCenterX: scalingCenterX,\n scalingCenterY: scalingCenterY,\n rotationCenterX: rotationCenterX,\n rotationCenterY: rotationCenterY,\n });\n matrix.inverseTo(this.inverseMatrix);\n this._dirtyTransform = false;\n };\n Node.prototype.render = function (renderCtx) {\n var stats = renderCtx.stats;\n this._dirty = RedrawType.NONE;\n if (stats)\n stats.nodesRendered++;\n };\n Node.prototype.clearBBox = function (ctx) {\n var bbox = this.computeBBox();\n if (bbox == null) {\n return;\n }\n var x = bbox.x, y = bbox.y, width = bbox.width, height = bbox.height;\n var topLeft = this.transformPoint(x, y);\n var bottomRight = this.transformPoint(x + width, y + height);\n ctx.clearRect(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);\n };\n Node.prototype.markDirty = function (_source, type, parentType) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n if (parentType === void 0) { parentType = type; }\n if (this._dirty > type) {\n return;\n }\n if (this._dirty === type && type === parentType) {\n return;\n }\n this._dirty = type;\n if (this.parent) {\n this.parent.markDirty(this, parentType);\n }\n else if (this.scene) {\n this.scene.markDirty();\n }\n };\n Object.defineProperty(Node.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.markClean = function (opts) {\n var e_3, _a;\n var _b = opts || {}, _c = _b.force, force = _c === void 0 ? false : _c, _d = _b.recursive, recursive = _d === void 0 ? true : _d;\n if (this._dirty === RedrawType.NONE && !force) {\n return;\n }\n this._dirty = RedrawType.NONE;\n if (recursive) {\n try {\n for (var _e = __values$w(this.children), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n child.markClean();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n };\n Node.prototype.visibilityChanged = function () {\n // Override point for sub-classes to react to visibility changes.\n };\n Object.defineProperty(Node.prototype, \"nodeCount\", {\n get: function () {\n var e_4, _a;\n var count = 1;\n var dirtyCount = this._dirty >= RedrawType.NONE || this._dirtyTransform ? 1 : 0;\n var visibleCount = this.visible ? 1 : 0;\n try {\n for (var _b = __values$w(this._children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var _d = child.nodeCount, childCount = _d.count, childVisibleCount = _d.visibleCount, childDirtyCount = _d.dirtyCount;\n count += childCount;\n visibleCount += childVisibleCount;\n dirtyCount += childDirtyCount;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return { count: count, visibleCount: visibleCount, dirtyCount: dirtyCount };\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.zIndexChanged = function () {\n // Override point for sub-classes.\n };\n Node._nextSerialNumber = 0;\n Node.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; // Number.MAX_SAFE_INTEGER\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingX\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingY\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingCenterX\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingCenterY\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotationCenterX\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotationCenterY\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotation\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"translationX\", void 0);\n __decorate$1J([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"translationY\", void 0);\n __decorate$1J([\n SceneChangeDetection({ redraw: RedrawType.MAJOR, changeCb: function (o) { return o.visibilityChanged(); } })\n ], Node.prototype, \"visible\", void 0);\n __decorate$1J([\n SceneChangeDetection({\n redraw: RedrawType.TRIVIAL,\n changeCb: zIndexChangedCallback,\n })\n ], Node.prototype, \"zIndex\", void 0);\n __decorate$1J([\n SceneChangeDetection({\n redraw: RedrawType.TRIVIAL,\n changeCb: zIndexChangedCallback,\n })\n ], Node.prototype, \"zIndexSubOrder\", void 0);\n return Node;\n}(ChangeDetectable));\n\n/**\n * Creates a new object with a `parent` as its prototype\n * and copies properties from the `child` into it.\n * @param parent\n * @param child\n */\nfunction chainObjects$1(parent, child) {\n var obj = Object.create(parent);\n for (var prop in child) {\n if (child.hasOwnProperty(prop)) {\n obj[prop] = child[prop];\n }\n }\n return obj;\n}\nfunction getValue(object, path, defaultValue) {\n var parts = Array.isArray(path) ? path : path.split('.');\n var value = object;\n try {\n parts.forEach(function (part) {\n value = value[part];\n });\n }\n catch (e) {\n if (arguments.length === 3) {\n value = defaultValue;\n }\n else {\n throw e;\n }\n }\n return value;\n}\nfunction emptyTarget$1(value) {\n return Array.isArray(value) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified$1(value, options) {\n return options.clone !== false && options.isMergeableObject(value)\n ? deepMerge$1(emptyTarget$1(value), value, options)\n : value;\n}\nfunction defaultArrayMerge$1(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified$1(element, options);\n });\n}\nfunction getMergeFunction$1(key, options) {\n if (!options.customMerge) {\n return deepMerge$1;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepMerge$1;\n}\nfunction getEnumerableOwnPropertySymbols$1(target) {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n })\n : [];\n}\nfunction getKeys$1(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols$1(target));\n}\nfunction propertyIsOnObject$1(object, property) {\n try {\n return property in object;\n }\n catch (_) {\n return false;\n }\n}\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe$1(target, key) {\n return (propertyIsOnObject$1(target, key) && // Properties are safe to merge if they don't exist in the target yet,\n !(Object.hasOwnProperty.call(target, key) && // unsafe if they exist up the prototype chain,\n Object.propertyIsEnumerable.call(target, key))); // and also unsafe if they're nonenumerable.\n}\nfunction mergeObject$1(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys$1(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified$1(target[key], options);\n });\n }\n getKeys$1(source).forEach(function (key) {\n if (propertyIsUnsafe$1(target, key)) {\n return;\n }\n if (propertyIsOnObject$1(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction$1(key, options)(target[key], source[key], options);\n }\n else {\n destination[key] = cloneUnlessOtherwiseSpecified$1(source[key], options);\n }\n });\n return destination;\n}\nfunction defaultIsMergeableObject$1(value) {\n return isNonNullObject$1(value) && !isSpecial$1(value);\n}\nfunction isNonNullObject$1(value) {\n return !!value && typeof value === 'object';\n}\nfunction isSpecial$1(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]';\n}\nfunction deepMerge$1(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge$1;\n options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject$1;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified$1;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified$1(source, options);\n }\n else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n }\n else {\n return mergeObject$1(target, source, options);\n }\n}\n// Be careful, typeof null === 'object'!\nfunction isObject(value) {\n return value && typeof value === 'object';\n}\n\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Shape$1 = /** @class */ (function (_super) {\n __extends$2O(Shape, _super);\n function Shape() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastInstanceId = 0;\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.fill = Shape.defaultStyles.fill;\n /**\n * Note that `strokeStyle = null` means invisible stroke,\n * while `lineWidth = 0` means no stroke, and sometimes this can mean different things.\n * For example, a rect shape with an invisible stroke may not align to the pixel grid\n * properly because the stroke affects the rules of alignment, and arc shapes forming\n * a pie chart will have a gap between them if they have an invisible stroke, whereas\n * there would be not gap if there was no stroke at all.\n * The preferred way of making the stroke invisible is setting the `lineWidth` to zero,\n * unless specific looks that is achieved by having an invisible stroke is desired.\n */\n _this.stroke = Shape.defaultStyles.stroke;\n _this.strokeWidth = Shape.defaultStyles.strokeWidth;\n _this.lineDash = Shape.defaultStyles.lineDash;\n _this.lineDashOffset = Shape.defaultStyles.lineDashOffset;\n _this.lineCap = Shape.defaultStyles.lineCap;\n _this.lineJoin = Shape.defaultStyles.lineJoin;\n _this.opacity = Shape.defaultStyles.opacity;\n _this.fillShadow = Shape.defaultStyles.fillShadow;\n return _this;\n }\n /**\n * Creates a light-weight instance of the given shape (that serves as a template).\n * The created instance only stores the properites set on the instance itself\n * and the rest of the properties come via the prototype chain from the template.\n * This can greatly reduce memory usage in cases where one has many simular shapes,\n * for example, circles of different size, position and color. The exact memory usage\n * reduction will depend on the size of the template and the number of own properties\n * set on its lightweight instances, but will typically be around an order of magnitude\n * or more.\n *\n * Note: template shapes are not supposed to be part of the scene graph (they should not\n * have a parent).\n *\n * @param template\n */\n Shape.createInstance = function (template) {\n var shape = Object.create(template);\n shape._setParent(undefined);\n shape.id = template.id + '-Instance-' + String(++template.lastInstanceId);\n return shape;\n };\n /**\n * Restores the default styles introduced by this subclass.\n */\n Shape.prototype.restoreOwnStyles = function () {\n var styles = this.constructor.defaultStyles;\n var keys = Object.getOwnPropertyNames(styles);\n // getOwnPropertyNames is about 2.5 times faster than\n // for..in with the hasOwnProperty check and in this\n // case, where most properties are inherited, can be\n // more then an order of magnitude faster.\n for (var i = 0, n = keys.length; i < n; i++) {\n var key = keys[i];\n this[key] = styles[key];\n }\n };\n Shape.prototype.restoreAllStyles = function () {\n var styles = this.constructor.defaultStyles;\n for (var property in styles) {\n this[property] = styles[property];\n }\n };\n /**\n * Restores the base class default styles that have been overridden by this subclass.\n */\n Shape.prototype.restoreOverriddenStyles = function () {\n var styles = this.constructor.defaultStyles;\n var protoStyles = Object.getPrototypeOf(styles);\n for (var property in styles) {\n if (styles.hasOwnProperty(property) && protoStyles.hasOwnProperty(property)) {\n this[property] = styles[property];\n }\n }\n };\n /**\n * Returns a device-pixel aligned coordinate (or length if length is supplied).\n *\n * NOTE: Not suitable for strokes, since the stroke needs to be offset to the middle\n * of a device pixel.\n */\n Shape.prototype.align = function (start, length) {\n var _a, _b, _c;\n var pixelRatio = (_c = (_b = (_a = this.scene) === null || _a === void 0 ? void 0 : _a.canvas) === null || _b === void 0 ? void 0 : _b.pixelRatio, (_c !== null && _c !== void 0 ? _c : 1));\n var alignedStart = Math.round(start * pixelRatio) / pixelRatio;\n if (length == undefined) {\n return alignedStart;\n }\n if (length === 0) {\n return 0;\n }\n if (length < 1) {\n // Avoid hiding crisp shapes\n return Math.ceil(length * pixelRatio) / pixelRatio;\n }\n // Account for the rounding of alignedStart by increasing length to compensate before\n // alignment.\n return Math.round((length + start) * pixelRatio) / pixelRatio - alignedStart;\n };\n Shape.prototype.fillStroke = function (ctx) {\n if (!this.scene) {\n return;\n }\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (this.fill) {\n ctx.fillStyle = this.fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var fillShadow = this.fillShadow;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fill();\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n if (this.stroke && this.strokeWidth) {\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.strokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n ctx.stroke();\n }\n };\n Shape.prototype.containsPoint = function (x, y) {\n return this.isPointInPath(x, y);\n };\n /**\n * Defaults for style properties. Note that properties that affect the position\n * and shape of the node are not considered style properties, for example:\n * `x`, `y`, `width`, `height`, `radius`, `rotation`, etc.\n * Can be used to reset to the original styling after some custom styling\n * has been applied (using the `restoreOwnStyles` and `restoreAllStyles` methods).\n * These static defaults are meant to be inherited by subclasses.\n */\n Shape.defaultStyles = chainObjects$1({}, {\n fill: 'black',\n stroke: undefined,\n strokeWidth: 0,\n lineDash: undefined,\n lineDashOffset: 0,\n lineCap: undefined,\n lineJoin: undefined,\n opacity: 1,\n fillShadow: undefined,\n });\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"fillOpacity\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"strokeOpacity\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"fill\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"stroke\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"strokeWidth\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineDash\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineDashOffset\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineCap\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineJoin\", void 0);\n __decorate$1I([\n SceneChangeDetection({\n redraw: RedrawType.MINOR,\n convertor: function (v) { return Math.min(1, Math.max(0, v)); },\n })\n ], Shape.prototype, \"opacity\", void 0);\n __decorate$1I([\n SceneChangeDetection({ redraw: RedrawType.MINOR, checkDirtyOnAssignment: true })\n ], Shape.prototype, \"fillShadow\", void 0);\n return Shape;\n}(Node$1));\n\n/**\n * Wraps the native Canvas element and overrides its CanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiCanvas$1 = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiCanvas(_a) {\n var _b = _a.document, document = _b === void 0 ? window.document : _b, _c = _a.width, width = _c === void 0 ? 600 : _c, _d = _a.height, height = _d === void 0 ? 300 : _d, _e = _a.domLayer, domLayer = _e === void 0 ? false : _e, _f = _a.zIndex, zIndex = _f === void 0 ? 0 : _f, _g = _a.name, name = _g === void 0 ? undefined : _g, _h = _a.overrideDevicePixelRatio, overrideDevicePixelRatio = _h === void 0 ? undefined : _h;\n this._container = undefined;\n this._enabled = true;\n this._opacity = 1;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 0;\n this._height = 0;\n this.document = document;\n this.element = document.createElement('canvas');\n this.context = this.element.getContext('2d');\n this.imageSource = this.context.canvas;\n var style = this.element.style;\n style.userSelect = 'none';\n style.display = 'block';\n if (domLayer) {\n style.position = 'absolute';\n style.zIndex = String(zIndex);\n style.top = '0';\n style.left = '0';\n style.pointerEvents = 'none';\n style.opacity = \"1\";\n if (name) {\n this.element.id = name;\n }\n }\n this.setPixelRatio(overrideDevicePixelRatio);\n this.resize(width, height);\n }\n Object.defineProperty(HdpiCanvas.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n this.remove();\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this.element.style.display = value ? 'block' : 'none';\n this._enabled = !!value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n this.element.style.opacity = \"\" + value;\n this._opacity = value;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.remove = function () {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n };\n HdpiCanvas.prototype.destroy = function () {\n this.element.remove();\n this._canvas = undefined;\n Object.freeze(this);\n };\n HdpiCanvas.prototype.snapshot = function () {\n // No-op for compatibility with HdpiOffscreenCanvas.\n };\n HdpiCanvas.prototype.clear = function () {\n this.context.save();\n this.context.resetTransform();\n this.context.clearRect(0, 0, this.width, this.height);\n this.context.restore();\n };\n HdpiCanvas.prototype.toImage = function () {\n var img = this.document.createElement('img');\n img.src = this.getDataURL();\n return img;\n };\n HdpiCanvas.prototype.getDataURL = function (type) {\n return this.element.toDataURL(type);\n };\n /**\n * @param fileName The name of the downloaded file.\n * @param fileFormat The file format, the default is `image/png`\n */\n HdpiCanvas.prototype.download = function (fileName, fileFormat) {\n if (fileFormat === void 0) { fileFormat = 'image/png'; }\n fileName = (fileName || '').trim() || 'image';\n var dataUrl = this.getDataURL(fileFormat);\n var document = this.document;\n var a = document.createElement('a');\n a.href = dataUrl;\n a.download = fileName;\n a.style.display = 'none';\n document.body.appendChild(a); // required for the `click` to work in Firefox\n a.click();\n document.body.removeChild(a);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio || window.devicePixelRatio;\n if (pixelRatio === this.pixelRatio) {\n return;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n this.resize(this.width, this.height);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelated\", {\n get: function () {\n return this.element.style.imageRendering === 'pixelated';\n },\n set: function (value) {\n this.element.style.imageRendering = value ? 'pixelated' : 'auto';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, element = _a.element, context = _a.context, pixelRatio = _a.pixelRatio;\n element.width = Math.round(width * pixelRatio);\n element.height = Math.round(height * pixelRatio);\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n Object.defineProperty(HdpiCanvas, \"textMeasuringContext\", {\n get: function () {\n if (this._textMeasuringContext) {\n return this._textMeasuringContext;\n }\n var canvas = document.createElement('canvas');\n this._textMeasuringContext = canvas.getContext('2d');\n return this._textMeasuringContext;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"svgText\", {\n get: function () {\n if (this._svgText) {\n return this._svgText;\n }\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n svg.setAttribute('width', '100');\n svg.setAttribute('height', '100');\n // Add a descriptive class name in case someone sees this SVG element\n // in devtools and wonders about its purpose:\n if (svg.classList) {\n svg.classList.add('text-measuring-svg');\n }\n else {\n svg.setAttribute('class', 'text-measuring-svg');\n }\n svg.style.position = 'absolute';\n svg.style.top = '-1000px';\n svg.style.visibility = 'hidden';\n var svgText = document.createElementNS(xmlns, 'text');\n svgText.setAttribute('x', '0');\n svgText.setAttribute('y', '30');\n svgText.setAttribute('text', 'black');\n svg.appendChild(svgText);\n document.body.appendChild(svg);\n this._svgText = svgText;\n return svgText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"has\", {\n get: function () {\n if (this._has) {\n return this._has;\n }\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isSafari = !isChrome && navigator.userAgent.indexOf('Safari') > -1;\n this._has = Object.freeze({\n textMetrics: this.textMeasuringContext.measureText('test').actualBoundingBoxDescent !== undefined &&\n // Firefox implemented advanced TextMetrics object in v74:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1102584\n // but it's buggy, so we'll keed using the SVG for text measurement in Firefox for now.\n !isFirefox &&\n !isSafari,\n getTransform: this.textMeasuringContext.getTransform !== undefined,\n });\n return this._has;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.measureText = function (text, font, textBaseline, textAlign) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n ctx.textBaseline = textBaseline;\n ctx.textAlign = textAlign;\n return ctx.measureText(text);\n };\n /**\n * Returns the width and height of the measured text.\n * @param text The single-line text to measure.\n * @param font The font shorthand string.\n */\n HdpiCanvas.getTextSize = function (text, font) {\n if (this.has.textMetrics) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n var metrics = ctx.measureText(text);\n return {\n width: metrics.width,\n height: metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent,\n };\n }\n else {\n return this.measureSvgText(text, font);\n }\n };\n HdpiCanvas.measureSvgText = function (text, font) {\n var cache = this.textSizeCache;\n var fontCache = cache[font];\n // Note: consider not caching the size of numeric strings.\n // For example: if (isNaN(+text)) { // skip\n if (fontCache) {\n var size_1 = fontCache[text];\n if (size_1) {\n return size_1;\n }\n }\n else {\n cache[font] = {};\n }\n var svgText = this.svgText;\n svgText.style.font = font;\n svgText.textContent = text;\n // `getBBox` returns an instance of `SVGRect` with the same `width` and `height`\n // measurements as `DOMRect` instance returned by the `getBoundingClientRect`.\n // But the `SVGRect` instance has half the properties of the `DOMRect`,\n // so we use the `getBBox` method.\n var bbox = svgText.getBBox();\n var size = {\n width: bbox.width,\n height: bbox.height,\n };\n cache[font][text] = size;\n return size;\n };\n HdpiCanvas.overrideScale = function (ctx, scale) {\n var depth = 0;\n var overrides = {\n save: function () {\n this.$save();\n depth++;\n },\n restore: function () {\n if (depth > 0) {\n this.$restore();\n depth--;\n }\n else {\n throw new Error('Unable to restore() past depth 0');\n }\n },\n setTransform: function (a, b, c, d, e, f) {\n if (typeof a === 'object') {\n this.$setTransform(a);\n }\n else {\n this.$setTransform(a * scale, b * scale, c * scale, d * scale, e * scale, f * scale);\n }\n },\n resetTransform: function () {\n // As of Jan 8, 2019, `resetTransform` is still an \"experimental technology\",\n // and doesn't work in IE11 and Edge 44.\n this.$setTransform(scale, 0, 0, scale, 0, 0);\n },\n };\n for (var name_1 in overrides) {\n if (overrides.hasOwnProperty(name_1)) {\n // Save native methods under prefixed names,\n // if this hasn't been done by the previous overrides already.\n if (!ctx['$' + name_1]) {\n ctx['$' + name_1] = ctx[name_1];\n }\n // Replace native methods with overrides,\n // or previous overrides with the new ones.\n ctx[name_1] = overrides[name_1];\n }\n }\n };\n HdpiCanvas.textSizeCache = {};\n return HdpiCanvas;\n}());\n\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction SceneFontChangeDetection(opts) {\n var _a = opts || {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.MAJOR : _b, changeCb = _a.changeCb;\n return SceneChangeDetection({ redraw: redraw, type: 'font', changeCb: changeCb });\n}\nvar Text$1 = /** @class */ (function (_super) {\n __extends$2N(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.x = 0;\n _this.y = 0;\n _this.lines = [];\n _this.text = '';\n _this._dirtyFont = true;\n _this.fontSize = 10;\n _this.fontFamily = 'sans-serif';\n _this.textAlign = Text.defaultStyles.textAlign;\n _this.textBaseline = Text.defaultStyles.textBaseline;\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n _this.lineHeight = 14;\n return _this;\n }\n Text.prototype._splitText = function () {\n this.lines = typeof this.text === 'string' ? this.text.split(/\\r?\\n/g) : [];\n };\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this._dirtyFont) {\n this._dirtyFont = false;\n this._font = getFont$2(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas$1.has.textMetrics ? this.getPreciseBBox() : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas$1.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox$1(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas$1.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox$1(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.render = function (renderCtx) {\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n if (!this.lines.length || !this.scene) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n ctx.strokeText(text, x, y);\n }\n _super.prototype.render.call(this, renderCtx);\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic',\n });\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"x\", void 0);\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"y\", void 0);\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR, changeCb: function (o) { return o._splitText(); } })\n ], Text.prototype, \"text\", void 0);\n __decorate$1H([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontStyle\", void 0);\n __decorate$1H([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontWeight\", void 0);\n __decorate$1H([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontSize\", void 0);\n __decorate$1H([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontFamily\", void 0);\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"textAlign\", void 0);\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"textBaseline\", void 0);\n __decorate$1H([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"lineHeight\", void 0);\n return Text;\n}(Shape$1));\nfunction getFont$2(fontSize, fontFamily, fontStyle, fontWeight) {\n return [fontStyle || '', fontWeight || '', fontSize + 'px', fontFamily].join(' ').trim();\n}\n\nvar Observable$1 = /** @class */ (function () {\n function Observable() {\n // Note that these maps can't be specified generically, so they are kept untyped.\n // Some methods in this class only need generics in their signatures, the generics inside the methods\n // are just for clarity. The generics in signatures allow for static type checking of user provided\n // listeners and for type inference, so that the users wouldn't have to specify the type of parameters\n // of their inline lambdas.\n this.allPropertyListeners = new Map(); // property name => property change listener => scopes\n this.allEventListeners = new Map(); // event type => event listener => scopes\n }\n Observable.prototype.addPropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (!propertyListeners) {\n propertyListeners = new Map();\n allPropertyListeners.set(name, propertyListeners);\n }\n if (!propertyListeners.has(listener)) {\n var scopes_1 = new Set();\n propertyListeners.set(listener, scopes_1);\n }\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removePropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n if (listener) {\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n propertyListeners.delete(listener);\n }\n }\n }\n else {\n propertyListeners.clear();\n }\n }\n };\n Observable.prototype.notifyPropertyListeners = function (name, oldValue, value) {\n var _this = this;\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n propertyListeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: name, source: _this, value: value, oldValue: oldValue }); });\n });\n }\n };\n Observable.prototype.addEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n eventListeners = new Map();\n allEventListeners.set(type, eventListeners);\n }\n if (!eventListeners.has(listener)) {\n var scopes_2 = new Set();\n eventListeners.set(listener, scopes_2);\n }\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removeEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (eventListeners) {\n if (listener) {\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n eventListeners.delete(listener);\n }\n }\n }\n else {\n eventListeners.clear();\n }\n }\n };\n Observable.prototype.clearEventListeners = function () {\n this.allEventListeners = new Map();\n };\n Observable.prototype.notifyEventListeners = function (types) {\n var _this = this;\n var allEventListeners = this.allEventListeners;\n types.forEach(function (type) {\n var listeners = allEventListeners.get(type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: type, source: _this }); });\n });\n }\n });\n };\n // 'source' is added automatically and is always the object this method belongs to.\n Observable.prototype.fireEvent = function (event) {\n var listeners = this.allEventListeners.get(event.type);\n if (listeners) {\n var eventWithSource_1 = Object.assign(event, { source: this });\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, eventWithSource_1); });\n });\n }\n };\n Observable.privateKeyPrefix = '_';\n return Observable;\n}());\n\nvar __read$K = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color$1 = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * A color string can be in one of the following formats to be valid:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n */\n Color.validColorString = function (str) {\n if (str.indexOf('#') >= 0) {\n return !!Color.parseHex(str);\n }\n if (str.indexOf('rgb') >= 0) {\n return !!Color.stringToRgba(str);\n }\n return !!Color.nameToHex[str.toLowerCase()];\n };\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) {\n // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str.toLowerCase()];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n var _a;\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input\n .split('')\n .map(function (p) { return parseInt(p, 16); })\n .map(function (p) { return p + p * 16; });\n break;\n }\n if (((_a = parts) === null || _a === void 0 ? void 0 : _a.length) >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$K(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$K([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) {\n // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) {\n // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else {\n // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#' +\n Color.padHex(Math.round(this.r * 255).toString(16)) +\n Color.padHex(Math.round(this.g * 255).toString(16)) +\n Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [Math.round(this.r * 255), Math.round(this.g * 255), Math.round(this.b * 255)];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - S * (1 - f));\n switch (h >> 0 // discard the floating point part of the number\n ) {\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n transparent: '#00000000',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n });\n return Color;\n}());\n\nfunction Validate(predicate) {\n return function (target, key) {\n var _a;\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = \"__\" + key;\n var prevSet;\n var descriptor = Object.getOwnPropertyDescriptor(target, key);\n prevSet = (_a = descriptor) === null || _a === void 0 ? void 0 : _a.set;\n var setter = function (v) {\n var _a, _b, _c, _d;\n if (predicate(v, { target: this })) {\n if (prevSet) {\n prevSet.call(this, v);\n }\n else {\n this[privateKey] = v;\n }\n return;\n }\n var cleanKey = key.replace(/^_*/, '');\n var targetClass = (_b = (_a = target.constructor) === null || _a === void 0 ? void 0 : _a.className, (_b !== null && _b !== void 0 ? _b : (_c = target.constructor) === null || _c === void 0 ? void 0 : _c.name));\n if (((_d = targetClass) === null || _d === void 0 ? void 0 : _d.length) < 3) {\n targetClass = null;\n }\n if (predicate.message) {\n console.warn(\"AG Charts - Property [\" + cleanKey + \"] \" + (targetClass ? \"of [\" + targetClass + \"] \" : '') + \"cannot be set to [\" + JSON.stringify(v) + \"]; \" + predicate.message + \", ignoring.\");\n }\n else {\n console.warn(\"AG Charts - Property [\" + cleanKey + \"] \" + (targetClass ? \"of [\" + targetClass + \"] \" : '') + \"cannot be set to [\" + JSON.stringify(v) + \"], ignoring.\");\n }\n };\n var getter = function () {\n return this[privateKey];\n };\n Object.defineProperty(target, key, {\n set: setter,\n get: getter,\n enumerable: true,\n configurable: false,\n });\n };\n}\nfunction predicateWithMessage(predicate, message) {\n predicate.message = message;\n return predicate;\n}\nvar OPTIONAL = function (v, ctx, predicate) {\n return v === undefined || predicate(v, ctx);\n};\nvar ARRAY = function (length, predicate) {\n return predicateWithMessage(function (v, ctx) {\n return Array.isArray(v) &&\n (length ? v.length === length : true) &&\n (predicate ? v.every(function (e) { return predicate(e, ctx); }) : true);\n }, \"expecting an Array\");\n};\nvar OPT_ARRAY = function (length) {\n return predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, ARRAY(length)); }, 'expecting an optional Array');\n};\nvar AND = function () {\n var predicates = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n predicates[_i] = arguments[_i];\n }\n return predicateWithMessage(function (v, ctx) { return predicates.every(function (p) { return p(v, ctx); }); }, predicates\n .map(function (p) { return p.message; })\n .filter(function (m) { return m != null; })\n .join(' AND '));\n};\nvar OR = function () {\n var predicates = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n predicates[_i] = arguments[_i];\n }\n return predicateWithMessage(function (v, ctx) { return predicates.some(function (p) { return p(v, ctx); }); }, predicates\n .map(function (p) { return p.message; })\n .filter(function (m) { return m != null; })\n .join(' OR '));\n};\nvar isComparable = function (v) {\n return v != null && !isNaN(v);\n};\nvar LESS_THAN = function (otherField) {\n return predicateWithMessage(function (v, ctx) {\n return !isComparable(v) || !isComparable(ctx.target[otherField]) || v < ctx.target[otherField];\n }, \"expected to be less than \" + otherField);\n};\nvar GREATER_THAN = function (otherField) {\n return predicateWithMessage(function (v, ctx) {\n return !isComparable(v) || !isComparable(ctx.target[otherField]) || v > ctx.target[otherField];\n }, \"expected to be greater than \" + otherField);\n};\nvar FUNCTION = predicateWithMessage(function (v) { return typeof v === 'function'; }, 'expecting a Function');\nvar OPT_FUNCTION = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FUNCTION); }, \"expecting an optional Function\");\nvar BOOLEAN = predicateWithMessage(function (v) { return v === true || v === false; }, 'expecting a Boolean');\nvar OPT_BOOLEAN = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, BOOLEAN); }, 'expecting an optional Boolean');\nvar STRING = predicateWithMessage(function (v) { return typeof v === 'string'; }, 'expecting a String');\nvar OPT_STRING = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, STRING); }, 'expecting an optional String');\nvar DATE = predicateWithMessage(function (v) { return v instanceof Date && !isNaN(+v); }, 'expecting a Date object');\nvar OPT_DATE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, DATE); }, 'expecting an optional Date');\npredicateWithMessage(ARRAY(undefined, DATE), 'expecting an Array of Date objects');\nvar DATETIME_MS = NUMBER(0);\nvar OPT_DATETIME_MS = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, DATETIME_MS); }, 'expecting an optional number');\nvar OPT_DATE_OR_DATETIME_MS = OR(OPT_DATE, OPT_DATETIME_MS);\nvar colorMessage = \"A color string can be in one of the following formats to be valid: #rgb, #rrggbb, rgb(r, g, b), rgba(r, g, b, a) or a CSS color name such as 'white', 'orange', 'cyan', etc\";\nvar COLOR_STRING = predicateWithMessage(function (v) {\n if (typeof v !== 'string') {\n return false;\n }\n return Color$1.validColorString(v);\n}, \"expecting a color String. \" + colorMessage);\nvar OPT_COLOR_STRING = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, COLOR_STRING); }, \"expecting an optional color String. \" + colorMessage);\nvar COLOR_STRING_ARRAY = predicateWithMessage(ARRAY(undefined, COLOR_STRING), \"expecting an Array of color strings. \" + colorMessage);\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, COLOR_STRING_ARRAY); }, \"expecting an optional Array of color strings. \" + colorMessage);\nfunction NUMBER(min, max) {\n var message = \"expecting a finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v) {\n return typeof v === 'number' &&\n Number.isFinite(v) &&\n (min !== undefined ? v >= min : true) &&\n (max !== undefined ? v <= max : true);\n }, message);\n}\nfunction OPT_NUMBER(min, max) {\n var message = \"expecting an optional finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, NUMBER(min, max)); }, message);\n}\nvar NUMBER_ARRAY = predicateWithMessage(ARRAY(undefined, NUMBER()), 'expecting an Array of numbers');\nvar OPT_NUMBER_ARRAY = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, NUMBER_ARRAY); }, 'expecting an optional Array of numbers');\nvar STRING_ARRAY = predicateWithMessage(ARRAY(undefined, STRING), 'expecting an Array of strings');\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, STRING_ARRAY); }, 'expecting an optional Array of strings');\nvar BOOLEAN_ARRAY = predicateWithMessage(ARRAY(undefined, BOOLEAN), 'expecting an Array of boolean values');\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, BOOLEAN_ARRAY); }, 'expecting an optional Array of boolean values');\nvar FONT_WEIGHTS = [\n 'normal',\n 'bold',\n 'bolder',\n 'lighter',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n];\nvar FONT_STYLE = predicateWithMessage(function (v) { return v === 'normal' || v === 'italic' || v === 'oblique'; }, \"expecting a font style keyword such as 'normal', 'italic' or 'oblique'\");\nvar OPT_FONT_STYLE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FONT_STYLE); }, \"expecting an optional font style keyword such as 'normal', 'italic' or 'oblique'\");\nvar FONT_WEIGHT = predicateWithMessage(function (v) { return FONT_WEIGHTS.includes(v); }, \"expecting a font weight keyword such as 'normal', 'bold' or 'bolder' or a numeric value such as 100, 300 or 600\");\nvar OPT_FONT_WEIGHT = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FONT_WEIGHT); }, \"expecting an optional font weight keyword such as 'normal', 'bold' or 'bolder' or a numeric value such as 100, 300 or 600\");\nvar LINE_DASH = predicateWithMessage(ARRAY(undefined, NUMBER(0)), 'expecting an Array of numbers specifying the length in pixels of alternating dashes and gaps, for example, [6, 3] means dashes with a length of 6 pixels with gaps between of 3 pixels.');\nvar OPT_LINE_DASH = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_DASH); }, 'expecting an optional Array of numbers specifying the length in pixels of alternating dashes and gaps, for example, [6, 3] means dashes with a length of 6 pixels with gaps between of 3 pixels.');\nvar LINE_CAPS = ['butt', 'round', 'square'];\nvar LINE_CAP = predicateWithMessage(function (v) { return LINE_CAPS.includes(v); }, \"expecting a line cap keyword such as 'butt', 'round' or 'square'\");\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_CAP); }, \"expecting an optional line cap keyword such as 'butt', 'round' or 'square'\");\nvar LINE_JOINS = ['round', 'bevel', 'miter'];\nvar LINE_JOIN = predicateWithMessage(function (v) { return LINE_JOINS.includes(v); }, \"expecting a line join keyword such as 'round', 'bevel' or 'miter'\");\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_JOIN); }, \"expecting an optional line join keyword such as 'round', 'bevel' or 'miter'\");\nvar POSITIONS = ['top', 'right', 'bottom', 'left'];\nvar POSITION = predicateWithMessage(function (v) { return POSITIONS.includes(v); }, \"expecting a position keyword such as 'top', 'right', 'bottom' or 'left\");\nvar ValidateAndChangeDetection = function (opts) {\n var sceneChangeDetectionOpts = opts.sceneChangeDetectionOpts, validatePredicate = opts.validatePredicate;\n var sceneChangeDetectionFn = SceneChangeDetection(sceneChangeDetectionOpts);\n var validateFn = Validate(validatePredicate);\n return function (target, key) {\n sceneChangeDetectionFn(target, key);\n validateFn(target, key);\n };\n};\n\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Caption = /** @class */ (function (_super) {\n __extends$2M(Caption, _super);\n function Caption() {\n var _this = _super.call(this) || this;\n _this.node = new Text$1();\n _this.enabled = false;\n _this._text = '';\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n var node = _this.node;\n node.textAlign = 'center';\n node.textBaseline = 'top';\n node.pointerEvents = PointerEvents$1.None;\n return _this;\n }\n Object.defineProperty(Caption.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n this._text = value;\n this.node.text = this._text;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n this._fontStyle = value;\n this.node.fontStyle = this._fontStyle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n this._fontWeight = value;\n this.node.fontWeight = this._fontWeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n this._fontSize = value;\n this.node.fontSize = this._fontSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n this._fontFamily = value;\n this.node.fontFamily = this._fontFamily;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value) {\n this._color = value;\n this.node.fill = this._color;\n },\n enumerable: true,\n configurable: true\n });\n Caption.PADDING = 10;\n __decorate$1G([\n Validate(BOOLEAN)\n ], Caption.prototype, \"enabled\", void 0);\n __decorate$1G([\n Validate(STRING)\n ], Caption.prototype, \"_text\", void 0);\n __decorate$1G([\n Validate(OPT_FONT_STYLE)\n ], Caption.prototype, \"_fontStyle\", void 0);\n __decorate$1G([\n Validate(OPT_FONT_WEIGHT)\n ], Caption.prototype, \"_fontWeight\", void 0);\n __decorate$1G([\n Validate(NUMBER(0))\n ], Caption.prototype, \"_fontSize\", void 0);\n __decorate$1G([\n Validate(STRING)\n ], Caption.prototype, \"_fontFamily\", void 0);\n __decorate$1G([\n Validate(OPT_COLOR_STRING)\n ], Caption.prototype, \"_color\", void 0);\n return Caption;\n}(Observable$1));\n\nvar constant$3 = (function (x) { return function () { return x; }; });\n\nfunction interpolateNumber$1 (a, b) {\n a = +a;\n b = +b;\n return function (t) { return a * (1 - t) + b * t; };\n}\n\nfunction date$1 (a, b) {\n var date = new Date();\n var msA = +a;\n var msB = +b;\n return function (t) {\n date.setTime(msA * (1 - t) + msB * t);\n return date;\n };\n}\n\nfunction array$1 (a, b) {\n var nb = b ? b.length : 0;\n var na = a ? Math.min(nb, a.length) : 0;\n var x = new Array(na);\n var c = new Array(nb);\n var i;\n for (i = 0; i < na; ++i) {\n x[i] = interpolateValue$1(a[i], b[i]);\n }\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n return c;\n };\n}\n\nfunction object$1 (a, b) {\n var i = {};\n var c = {};\n var k;\n if (a === null || typeof a !== 'object') {\n a = {};\n }\n if (b === null || typeof b !== 'object') {\n b = {};\n }\n for (k in b) {\n if (k in a) {\n i[k] = interpolateValue$1(a[k], b[k]);\n }\n else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n return c;\n };\n}\n\nfunction color$1 (a, b) {\n if (typeof a === 'string') {\n try {\n a = Color$1.fromString(a);\n }\n catch (e) {\n a = Color$1.fromArray([0, 0, 0]);\n }\n }\n if (typeof b === 'string') {\n try {\n b = Color$1.fromString(b);\n }\n catch (e) {\n b = Color$1.fromArray([0, 0, 0]);\n }\n }\n var red = interpolateNumber$1(a.r, b.r);\n var green = interpolateNumber$1(a.g, b.g);\n var blue = interpolateNumber$1(a.b, b.b);\n var alpha = interpolateNumber$1(a.a, b.a);\n return function (t) {\n return Color$1.fromArray([red(t), green(t), blue(t), alpha(t)]).toRgbaString();\n };\n}\n\nfunction interpolateValue$1 (a, b) {\n var t = typeof b;\n var c;\n if (b == null || t === 'boolean') {\n return constant$3(b);\n }\n if (t === 'number') {\n return interpolateNumber$1(a, b);\n }\n if (t === 'string') {\n try {\n c = Color$1.fromString(b);\n b = c;\n return color$1(a, b);\n }\n catch (e) { }\n }\n if (b instanceof Color$1) {\n return color$1(a, b);\n }\n if (b instanceof Date) {\n return date$1(a, b);\n }\n if (Array.isArray(b)) {\n return array$1(a, b);\n }\n if ((typeof b.valueOf !== 'function' && typeof b.toString !== 'function') || isNaN(b)) {\n return object$1(a, b);\n }\n return interpolateNumber$1(a, b);\n}\n\nfunction ascending$1(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\nfunction ascendingStringNumberUndefined(a, b) {\n var diff = 0;\n if (typeof a === 'number' && typeof b === 'number') {\n diff = a - b;\n }\n else if (typeof a === 'string' && typeof b === 'string') {\n diff = a.localeCompare(b);\n }\n else if (a == null && b == null) ;\n else if (a == null) {\n diff = -1;\n }\n else if (b == null) {\n diff = 1;\n }\n else {\n diff = String(a).localeCompare(String(b));\n }\n return diff;\n}\nfunction compoundAscending(a, b, comparator) {\n for (var idx in a) {\n var diff = comparator(a[idx], b[idx]);\n if (diff !== 0) {\n return diff;\n }\n }\n return 0;\n}\n\n/**\n * Returns the insertion point for `x` in array to maintain sorted order.\n * The arguments `lo` and `hi` may be used to specify a subset of the array which should be considered;\n * by default the entire array is used. If `x` is already present in array, the insertion point will be before\n * (to the left of) any existing entries. The return value is suitable for use as the first argument to `splice`\n * assuming that array is already sorted. The returned insertion point `i` partitions the array into two halves\n * so that all `v < x` for `v` in `array.slice(lo, i)` for the left side and all `v >= x` for `v` in `array.slice(i, hi)`\n * for the right side.\n * @param list\n * @param x\n * @param comparator\n * @param lo\n * @param hi\n */\nfunction bisectRight(list, x, comparator, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) > 0) {\n // list[mid] > x\n hi = mid;\n }\n else {\n lo = mid + 1;\n }\n }\n return lo;\n}\n/**\n * A specialized version of `bisectRight` that works with the arrays whose elements cannot be compared directly.\n * The map function is used instead to produce a comparable value for a given array element, then the values\n * returned by the map are compared using the `ascendingComparator`.\n * @param list\n * @param x\n * @param map\n * @param lo\n * @param hi\n */\nfunction complexBisectRight$1(list, x, map, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n var comparator = ascendingComparator$1(map);\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) < 0) {\n lo = mid + 1;\n }\n else {\n hi = mid;\n }\n }\n return lo;\n}\nfunction ascendingComparator$1(map) {\n return function (item, x) {\n return ascending$1(map(item), x);\n };\n}\n\nvar __read$J = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar constant$2 = function (x) { return function () { return x; }; };\nvar identity$6 = function (x) { return x; };\nfunction clamper$1(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$J([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return Math.max(a, Math.min(b, x)); };\n}\n// Instead of clamping the values outside of domain to the range,\n// return NaNs to indicate invalid input.\nfunction filter(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$J([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return (x >= a && x <= b ? x : NaN); };\n}\nvar ContinuousScale$1 = /** @class */ (function () {\n function ContinuousScale() {\n /**\n * The output value of the scale for `undefined` or `NaN` input values.\n */\n this.unknown = undefined;\n this.clamper = clamper$1;\n this._clamp = identity$6;\n this._domain = [0, 1];\n this._range = [0, 1];\n this.transform = identity$6; // transforms domain value\n this.untransform = identity$6; // untransforms domain value\n this._interpolate = interpolateValue$1;\n this.rescale();\n }\n Object.defineProperty(ContinuousScale.prototype, \"clamp\", {\n get: function () {\n return this._clamp !== identity$6;\n },\n set: function (value) {\n this._clamp = value ? this.clamper(this.domain) : identity$6;\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.setDomain = function (values) {\n this._domain = values.map(function (v) { return +v; });\n if (this._clamp !== identity$6) {\n this._clamp = this.clamper(this.domain);\n }\n this.rescale();\n };\n ContinuousScale.prototype.getDomain = function () {\n return this._domain.slice();\n };\n Object.defineProperty(ContinuousScale.prototype, \"domain\", {\n get: function () {\n return this.getDomain();\n },\n set: function (values) {\n this.setDomain(values);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"range\", {\n get: function () {\n return this._range.slice();\n },\n set: function (values) {\n this._range = values.slice();\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"interpolate\", {\n get: function () {\n return this._interpolate;\n },\n set: function (value) {\n this._interpolate = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.rescale = function () {\n if (Math.min(this.domain.length, this.range.length) > 2) {\n this.piecewise = this.polymap;\n }\n else {\n this.piecewise = this.bimap;\n }\n this.output = undefined;\n this.input = undefined;\n };\n /**\n * Returns a function that converts `x` in `[a, b]` to `t` in `[0, 1]`. Non-clamping.\n * @param a\n * @param b\n */\n ContinuousScale.prototype.normalize = function (a, b) {\n a = +a;\n b -= a;\n return b ? function (x) { return (x - a) / b; } : constant$2(isNaN(b) ? NaN : 0.5);\n };\n ContinuousScale.prototype.bimap = function (domain, range, interpolate) {\n var x0 = domain[0];\n var x1 = domain[1];\n var y0 = range[0];\n var y1 = range[1];\n var xt;\n var ty;\n if (x1 < x0) {\n xt = this.normalize(x1, x0);\n ty = interpolate(y1, y0);\n }\n else {\n xt = this.normalize(x0, x1);\n ty = interpolate(y0, y1);\n }\n return function (x) { return ty(xt(x)); }; // domain value x --> t in [0, 1] --> range value y\n };\n ContinuousScale.prototype.polymap = function (domain, range, interpolate) {\n var _this = this;\n // number of segments in the polylinear scale\n var n = Math.min(domain.length, range.length) - 1;\n if (domain[n] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n // deinterpolators from domain segment value to t\n var dt = Array.from({ length: n }, function (_, i) { return _this.normalize(domain[i], domain[i + 1]); });\n // reinterpolators from t to range segment value\n var tr = Array.from({ length: n }, function (_, i) { return interpolate(range[i], range[i + 1]); });\n return function (x) {\n var i = bisectRight(domain, x, ascending$1, 1, n) - 1; // Find the domain segment that `x` belongs to.\n // This also tells us which deinterpolator/reinterpolator pair to use.\n return tr[i](dt[i](x));\n };\n };\n ContinuousScale.prototype.convert = function (x, clamper) {\n x = +x;\n if (isNaN(x)) {\n return this.unknown;\n }\n if (!this.output) {\n this.output = this.piecewise(this.domain.map(this.transform), this.range, this.interpolate);\n }\n var clamp = clamper ? clamper(this.domain) : this._clamp;\n return this.output(this.transform(clamp(x)));\n };\n ContinuousScale.prototype.invert = function (y) {\n if (!this.input) {\n this.input = this.piecewise(this.range, this.domain.map(this.transform), interpolateNumber$1);\n }\n return this._clamp(this.untransform(this.input(y)));\n };\n return ContinuousScale;\n}());\n\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction ticks$1 (a, b, count) {\n var step = tickStep$1(a, b, count);\n a = Math.ceil(a / step) * step;\n b = Math.floor(b / step) * step + step / 2;\n // Add half a step here so that the array returned by `range` includes the last tick.\n return range$1(a, b, step);\n}\nvar e10$1 = Math.sqrt(50);\nvar e5$1 = Math.sqrt(10);\nvar e2$1 = Math.sqrt(2);\nfunction tickStep$1(a, b, count) {\n var rawStep = Math.abs(b - a) / Math.max(0, count);\n var step = Math.pow(10, Math.floor(Math.log(rawStep) / Math.LN10)); // = Math.log10(rawStep)\n var error = rawStep / step;\n if (error >= e10$1) {\n step *= 10;\n }\n else if (error >= e5$1) {\n step *= 5;\n }\n else if (error >= e2$1) {\n step *= 2;\n }\n return b < a ? -step : step;\n}\nfunction tickIncrement$1(a, b, count) {\n var rawStep = (b - a) / Math.max(0, count);\n var power = Math.floor(Math.log(rawStep) / Math.LN10);\n var error = rawStep / Math.pow(10, power);\n return power >= 0\n ? (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1);\n}\nvar NumericTicks$1 = /** @class */ (function (_super) {\n __extends$2L(NumericTicks, _super);\n function NumericTicks(fractionDigits, elements) {\n var _this = _super.call(this) || this;\n if (elements) {\n for (var i = 0, n = elements.length; i < n; i++) {\n _this[i] = elements[i];\n }\n }\n _this.fractionDigits = fractionDigits;\n return _this;\n }\n return NumericTicks;\n}(Array));\nfunction range$1(a, b, step) {\n if (step === void 0) { step = 1; }\n var absStep = Math.abs(step);\n var fractionDigits = absStep > 0 && absStep < 1 ? Math.abs(Math.floor(Math.log(absStep) / Math.LN10)) : 0;\n var f = Math.pow(10, fractionDigits);\n var n = Math.max(0, Math.ceil((b - a) / step)) || 0;\n var values = new NumericTicks$1(fractionDigits);\n for (var i = 0; i < n; i++) {\n var value = a + step * i;\n values[i] = Math.round(value * f) / f;\n }\n return values;\n}\n\nfunction formatDefault$1(x, p) {\n var xs = x.toPrecision(p);\n var i0 = -1;\n var i1 = 0;\n var exit = false;\n for (var n = xs.length, i = 1; !exit && i < n; ++i) {\n switch (xs[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0)\n i0 = i;\n i1 = i;\n break;\n case 'e':\n exit = true;\n break;\n default:\n if (i0 > 0)\n i0 = 0;\n break;\n }\n }\n return i0 > 0 ? xs.slice(0, i0) + xs.slice(i1 + 1) : xs;\n}\nvar formatTypes$1 = {\n '': formatDefault$1,\n // Multiply by 100, and then decimal notation with a percent sign.\n '%': function (x, p) { return (x * 100).toFixed(p); },\n // Binary notation, rounded to integer.\n b: function (x) { return Math.round(x).toString(2); },\n // Converts the integer to the corresponding unicode character before printing.\n c: function (x) { return String(x); },\n // Decimal notation, rounded to integer.\n d: formatDecimal$1,\n // Exponent notation.\n e: function (x, p) { return x.toExponential(p); },\n // Fixed point notation.\n f: function (x, p) { return x.toFixed(p); },\n // Either decimal or exponent notation, rounded to significant digits.\n g: function (x, p) { return x.toPrecision(p); },\n // Octal notation, rounded to integer.\n o: function (x) { return Math.round(x).toString(8); },\n // Multiply by 100, round to significant digits, and then decimal notation with a percent sign.\n p: function (x, p) { return formatRounded$1(x * 100, p); },\n // Decimal notation, rounded to significant digits.\n r: formatRounded$1,\n // Decimal notation with a SI prefix, rounded to significant digits.\n s: formatPrefixAuto$1,\n // Hexadecimal notation, using upper-case letters, rounded to integer.\n X: function (x) { return Math.round(x).toString(16).toUpperCase(); },\n // Hexadecimal notation, using lower-case letters, rounded to integer.\n x: function (x) { return Math.round(x).toString(16); },\n};\nvar prefixes$1 = ['y', 'z', 'a', 'f', 'p', 'n', '\\xB5', 'm', '', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n/**\n * [[fill]align][sign][#][0][width][grouping_option][.precision][type]\n */\nvar FormatSpecifier$1 = /** @class */ (function () {\n function FormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n this.fill = specifier.fill;\n this.align = specifier.align;\n this.sign = specifier.sign;\n this.symbol = specifier.symbol;\n this.zero = specifier.zero;\n this.width = specifier.width;\n this.comma = specifier.comma;\n this.precision = specifier.precision;\n this.trim = specifier.trim;\n this.type = specifier.type;\n this.string = specifier.string;\n }\n else {\n this.fill = specifier.fill === undefined ? ' ' : String(specifier.fill);\n this.align = specifier.align === undefined ? '>' : String(specifier.align);\n this.sign = specifier.sign === undefined ? '-' : String(specifier.sign);\n this.symbol = specifier.symbol === undefined ? '' : String(specifier.symbol);\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? '' : String(specifier.type);\n this.string = specifier.string;\n }\n }\n return FormatSpecifier;\n}());\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar formatRegEx$1 = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nvar interpolateRegEx$1 = /(#\\{(.*?)\\})/g;\nfunction makeFormatSpecifier$1(specifier) {\n if (specifier instanceof FormatSpecifier$1) {\n return new FormatSpecifier$1(specifier);\n }\n var found = false;\n var string = specifier.replace(interpolateRegEx$1, function () {\n if (!found) {\n specifier = arguments[2];\n found = true;\n }\n return '#{}';\n });\n var match = formatRegEx$1.exec(specifier);\n if (!match) {\n throw new Error(\"Invalid format: \" + specifier);\n }\n return new FormatSpecifier$1({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10],\n string: found ? string : undefined,\n });\n}\nfunction tickFormat$1(start, stop, count, specifier) {\n var step = tickStep$1(start, stop, count);\n var formatSpecifier = makeFormatSpecifier$1(specifier == undefined ? ',f' : specifier);\n var precision;\n switch (formatSpecifier.type) {\n case 's': {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (formatSpecifier.precision == null) {\n precision = precisionPrefix$1(step, value);\n if (!isNaN(precision)) {\n formatSpecifier.precision = precision;\n }\n }\n return formatPrefix$1(formatSpecifier, value);\n }\n case '':\n case 'e':\n case 'g':\n case 'p':\n case 'r': {\n if (formatSpecifier.precision == null) {\n precision = precisionRound$1(step, Math.max(Math.abs(start), Math.abs(stop)));\n if (!isNaN(precision)) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === 'e');\n }\n }\n break;\n }\n case 'f':\n case '%': {\n if (formatSpecifier.precision == null) {\n precision = precisionFixed$1(step);\n if (!isNaN(precision)) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === '%') * 2;\n }\n }\n break;\n }\n }\n return format$1(formatSpecifier);\n}\nvar prefixExponent$1;\nfunction formatPrefixAuto$1(x, p) {\n if (p === void 0) { p = 0; }\n var d = formatDecimalParts$1(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n prefixExponent$1 = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3;\n var i = exponent - prefixExponent$1 + 1;\n var n = coefficient.length;\n if (i === n) {\n return coefficient;\n }\n else if (i > n) {\n return coefficient + new Array(i - n + 1).join('0');\n }\n else if (i > 0) {\n return coefficient.slice(0, i) + '.' + coefficient.slice(i);\n }\n else {\n var parts = formatDecimalParts$1(x, Math.max(0, p + i - 1));\n return '0.' + new Array(1 - i).join('0') + parts[0]; // less than 1y!\n }\n}\nfunction formatDecimal$1(x) {\n x = Math.round(x);\n return Math.abs(x) >= 1e21 ? x.toLocaleString('en').replace(/,/g, '') : x.toString(10);\n}\nfunction formatGroup$1(grouping, thousands) {\n return function (value, width) {\n var t = [];\n var i = value.length;\n var j = 0;\n var g = grouping[0];\n var length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) {\n g = Math.max(1, width - length);\n }\n i -= g;\n t.push(value.substring(i, i + g));\n if ((length += g + 1) > width) {\n break;\n }\n j = (j + 1) % grouping.length;\n g = grouping[j];\n }\n t.reverse();\n return t.join(thousands);\n };\n}\nfunction formatNumerals$1(numerals) {\n return function (value) { return value.replace(/\\d/g, function (i) { return numerals[+i]; }); };\n}\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim$1(s) {\n var i0 = -1, i1 = 0;\n var exit = false;\n for (var n = s.length, i = 1; !exit && i < n; ++i) {\n switch (s[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0)\n i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i]) {\n exit = true;\n break;\n }\n if (i0 > 0)\n i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\nfunction formatRounded$1(x, p) {\n var d = formatDecimalParts$1(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n if (exponent < 0) {\n return '0.' + new Array(-exponent).join('0') + coefficient;\n }\n else {\n if (coefficient.length > exponent + 1) {\n return coefficient.slice(0, exponent + 1) + '.' + coefficient.slice(exponent + 1);\n }\n else {\n return coefficient + new Array(exponent - coefficient.length + 2).join('0');\n }\n }\n}\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns ['123', 0].\nfunction formatDecimalParts$1(x, p) {\n var sx = p ? x.toExponential(p - 1) : x.toExponential();\n var i = sx.indexOf('e');\n if (i < 0) {\n // NaN, ±Infinity\n return undefined;\n }\n var coefficient = sx.slice(0, i);\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +sx.slice(i + 1)];\n}\nfunction identity$5(x) {\n return x;\n}\nvar formatDefaultLocale$1;\nvar format$1;\nvar formatPrefix$1;\ndefaultLocale$1({\n thousands: ',',\n grouping: [3],\n currency: ['$', ''],\n});\nfunction defaultLocale$1(definition) {\n formatDefaultLocale$1 = formatLocale$3(definition);\n format$1 = formatDefaultLocale$1.format;\n formatPrefix$1 = formatDefaultLocale$1.formatPrefix;\n}\nfunction exponent$1(x) {\n var parts = formatDecimalParts$1(Math.abs(x));\n if (parts) {\n return parts[1];\n }\n return NaN;\n}\nfunction precisionFixed$1(step) {\n return Math.max(0, -exponent$1(Math.abs(step)));\n}\nfunction precisionPrefix$1(step, value) {\n var x = Math.floor(exponent$1(value) / 3);\n x = Math.min(8, x);\n x = Math.max(-8, x);\n return Math.max(0, x * 3 - exponent$1(Math.abs(step)));\n}\nfunction precisionRound$1(step, max) {\n step = Math.abs(step);\n max = Math.abs(max) - step;\n return Math.max(0, exponent$1(max) - exponent$1(step)) + 1;\n}\nfunction formatLocale$3(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined\n ? identity$5\n : formatGroup$1(locale.grouping.map(Number), String(locale.thousands));\n var currencyPrefix = locale.currency === undefined ? '' : String(locale.currency[0]);\n var currencySuffix = locale.currency === undefined ? '' : String(locale.currency[1]);\n var decimal = locale.decimal === undefined ? '.' : String(locale.decimal);\n var numerals = locale.numerals === undefined ? identity$5 : formatNumerals$1(locale.numerals.map(String));\n var percent = locale.percent === undefined ? '%' : String(locale.percent);\n var minus = locale.minus === undefined ? '\\u2212' : String(locale.minus);\n var nan = locale.nan === undefined ? 'NaN' : String(locale.nan);\n function newFormat(specifier) {\n var formatSpecifier = makeFormatSpecifier$1(specifier);\n var fill = formatSpecifier.fill;\n var align = formatSpecifier.align;\n var sign = formatSpecifier.sign;\n var symbol = formatSpecifier.symbol;\n var zero = formatSpecifier.zero;\n var width = formatSpecifier.width;\n var comma = formatSpecifier.comma;\n var precision = formatSpecifier.precision;\n var trim = formatSpecifier.trim;\n var type = formatSpecifier.type;\n // The 'n' type is an alias for ',g'.\n if (type === 'n') {\n comma = true;\n type = 'g';\n }\n else if (!formatTypes$1[type]) {\n // The '' type, and any invalid type, is an alias for '.12~g'.\n if (precision === undefined) {\n precision = 12;\n }\n trim = true;\n type = 'g';\n }\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === '0' && align === '=')) {\n zero = true;\n fill = '0';\n align = '=';\n }\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === '$' ? currencyPrefix : symbol === '#' && /[boxX]/.test(type) ? '0' + type.toLowerCase() : '';\n var suffix = symbol === '$' ? currencySuffix : /[%p]/.test(type) ? percent : '';\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes$1[type];\n var maybeSuffix = /[defgprs%]/.test(type);\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n if (precision === undefined) {\n precision = 6;\n }\n else if (/[gprs]/.test(type)) {\n precision = Math.max(1, Math.min(21, precision));\n }\n else {\n precision = Math.max(0, Math.min(20, precision));\n }\n function format(x) {\n var valuePrefix = prefix;\n var valueSuffix = suffix;\n var value;\n if (type === 'c') {\n valueSuffix = formatType(+x) + valueSuffix;\n value = '';\n }\n else {\n var nx = +x;\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = x < 0 || 1 / nx < 0;\n // Perform the initial formatting.\n value = isNaN(nx) ? nan : formatType(Math.abs(nx), precision);\n // Trim insignificant zeros.\n if (trim) {\n value = formatTrim$1(value);\n }\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== '+') {\n valueNegative = false;\n }\n // Compute the prefix and suffix.\n var signPrefix = valueNegative\n ? sign === '('\n ? sign\n : minus\n : sign === '-' || sign === '('\n ? ''\n : sign;\n var signSuffix = valueNegative && sign === '(' ? ')' : '';\n valuePrefix = signPrefix + valuePrefix;\n valueSuffix = (type === 's' ? prefixes$1[8 + prefixExponent$1 / 3] : '') + valueSuffix + signSuffix;\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n for (var i = 0, n = value.length; i < n; i++) {\n var c = value.charCodeAt(i);\n if (48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n // If the fill character is not '0', grouping is applied before padding.\n if (comma && !zero)\n value = group(value, Infinity);\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length;\n var padding = length < width ? new Array(width - length + 1).join(fill) : '';\n // If the fill character is '0', grouping is applied after padding.\n if (comma && zero) {\n value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity);\n padding = '';\n }\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case '<':\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case '=':\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case '^':\n value =\n padding.slice(0, (length = padding.length >> 1)) +\n valuePrefix +\n value +\n valueSuffix +\n padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n var string = formatSpecifier.string;\n if (string) {\n return string.replace(interpolateRegEx$1, function () { return numerals(value); });\n }\n return numerals(value);\n }\n return format;\n }\n function formatPrefix(specifier, value) {\n var formatSpecifier = makeFormatSpecifier$1(specifier);\n formatSpecifier.type = 'f';\n var f = newFormat(formatSpecifier);\n var e = Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3;\n var k = Math.pow(10, -e);\n var prefix = prefixes$1[8 + e / 3];\n return function (value) {\n return f(k * +value) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix,\n };\n}\n\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Maps continuous domain to a continuous range.\n */\nvar LinearScale$1 = /** @class */ (function (_super) {\n __extends$2K(LinearScale, _super);\n function LinearScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'linear';\n return _this;\n }\n LinearScale.prototype.ticks = function (count, offset) {\n if (count === void 0) { count = 10; }\n var d = this._domain;\n count = Math.max(0, count - ((offset !== null && offset !== void 0 ? offset : 0)));\n return ticks$1(d[0], d[d.length - 1], count);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * @param count Tick count.\n */\n LinearScale.prototype.nice = function (count) {\n if (count === void 0) { count = 10; }\n var d = this.domain;\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var step;\n if (stop < start) {\n step = start;\n start = stop;\n stop = step;\n step = i0;\n i0 = i1;\n i1 = step;\n }\n step = tickIncrement$1(start, stop, count);\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement$1(start, stop, count);\n }\n else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement$1(start, stop, count);\n }\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n this.domain = d;\n }\n else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n this.domain = d;\n }\n };\n LinearScale.prototype.tickFormat = function (_a) {\n var count = _a.count, specifier = _a.specifier;\n var d = this.domain;\n return tickFormat$1(d[0], d[d.length - 1], count == undefined ? 10 : count, specifier);\n };\n return LinearScale;\n}(ContinuousScale$1));\n\nvar __values$v = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// Custom `Array.find` implementation for legacy browsers.\nfunction find(arr, predicate) {\n for (var i = 0; i < arr.length; i++) {\n var value = arr[i];\n if (predicate(value, i, arr)) {\n return value;\n }\n }\n}\nfunction identity$4(value) {\n return value;\n}\nfunction extent$1(values, predicate, map) {\n var transform = map || identity$4;\n var n = values.length;\n var i = -1;\n var value;\n var min;\n var max;\n while (++i < n) {\n // Find the first value.\n value = values[i];\n if (predicate(value)) {\n min = max = value;\n while (++i < n) {\n // Compare the remaining values.\n value = values[i];\n if (predicate(value)) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n }\n }\n }\n }\n return min === undefined || max === undefined ? undefined : [transform(min), transform(max)];\n}\n/**\n * finds the min and max using a process appropriate for stacked values. Ie,\n * summing up the positive and negative numbers, and returning the totals of each\n */\nfunction findMinMax(values) {\n var e_1, _a;\n var min = undefined;\n var max = undefined;\n try {\n for (var values_1 = __values$v(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (value < 0) {\n min = ((min !== null && min !== void 0 ? min : 0)) + value;\n }\n else if (value >= 0) {\n max = ((max !== null && max !== void 0 ? max : 0)) + value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { min: min, max: max };\n}\n\n// Simplified version of https://github.com/plotly/fast-isnumeric\n// that doesn't treat number strings with leading/trailing whitespace as numbers.\nfunction isNumber$1(value) {\n if (typeof value !== 'number') {\n return false;\n }\n return Number.isFinite(value);\n}\nfunction isNumberObject$1(value) {\n return !!value && value.hasOwnProperty('valueOf') && isNumber$1(value.valueOf());\n}\nfunction isNumeric$1(value) {\n return isNumber$1(value) || isNumberObject$1(value);\n}\nfunction isDate$1(value) {\n return value instanceof Date && !isNaN(+value);\n}\nfunction isString$1(value) {\n return typeof value === 'string';\n}\nfunction isStringObject$1(value) {\n return !!value && value.hasOwnProperty('toString') && isString$1(value.toString());\n}\nfunction isDiscrete(value) {\n return isString$1(value) || isStringObject$1(value);\n}\nfunction isContinuous$1(value) {\n return isNumeric$1(value) || isDate$1(value);\n}\nfunction checkDatum(value, isContinuousScale) {\n if (isContinuousScale && isContinuous$1(value)) {\n return value;\n }\n else if (!isContinuousScale) {\n if (!isDiscrete(value)) {\n return String(value);\n }\n return value;\n }\n return undefined;\n}\n\n// @ts-ignore Suppress tsc error: Property 'sign' does not exist on type 'Math'\nvar sign$1 = Math.sign\n ? Math.sign\n : function (x) {\n x = +x;\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n };\n/**\n * Finds the roots of a parametric linear equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction linearRoot$1(a, b) {\n var t = -b / a;\n return a !== 0 && t >= 0 && t <= 1 ? [t] : [];\n}\n/**\n * Finds the roots of a parametric quadratic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction quadraticRoots$1(a, b, c) {\n if (a === 0) {\n return linearRoot$1(b, c);\n }\n var D = b * b - 4 * a * c; // The polynomial's discriminant.\n var roots = [];\n if (D === 0) {\n // A single real root.\n var t = -b / (2 * a);\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n }\n else if (D > 0) {\n // A pair of distinct real roots.\n var rD = Math.sqrt(D);\n var t1 = (-b - rD) / (2 * a);\n var t2 = (-b + rD) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n }\n // else -> Complex roots.\n return roots;\n}\n/**\n * Finds the roots of a parametric cubic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n * Returns an array of parametric intersection locations along the cubic,\n * excluding out-of-bounds intersections (before or after the end point\n * or in the imaginary plane).\n * An adaptation of http://www.particleincell.com/blog/2013/cubic-line-intersection/\n */\nfunction cubicRoots$1(a, b, c, d) {\n if (a === 0) {\n return quadraticRoots$1(b, c, d);\n }\n var A = b / a;\n var B = c / a;\n var C = d / a;\n var Q = (3 * B - A * A) / 9;\n var R = (9 * A * B - 27 * C - 2 * A * A * A) / 54;\n var D = Q * Q * Q + R * R; // The polynomial's discriminant.\n var third = 1 / 3;\n var roots = [];\n if (D >= 0) {\n // Complex or duplicate roots.\n var rD = Math.sqrt(D);\n var S = sign$1(R + rD) * Math.pow(Math.abs(R + rD), third);\n var T = sign$1(R - rD) * Math.pow(Math.abs(R - rD), third);\n var Im = Math.abs((Math.sqrt(3) * (S - T)) / 2); // Complex part of the root pair.\n var t = -third * A + (S + T); // A real root.\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n if (Im === 0) {\n var t_1 = -third * A - (S + T) / 2; // The real part of a complex root.\n if (t_1 >= 0 && t_1 <= 1) {\n roots.push(t_1);\n }\n }\n }\n else {\n // Distinct real roots.\n var theta = Math.acos(R / Math.sqrt(-Q * Q * Q));\n var thirdA = third * A;\n var twoSqrtQ = 2 * Math.sqrt(-Q);\n var t1 = twoSqrtQ * Math.cos(third * theta) - thirdA;\n var t2 = twoSqrtQ * Math.cos(third * (theta + 2 * Math.PI)) - thirdA;\n var t3 = twoSqrtQ * Math.cos(third * (theta + 4 * Math.PI)) - thirdA;\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n if (t3 >= 0 && t3 <= 1) {\n roots.push(t3);\n }\n }\n return roots;\n}\n\nvar __values$u = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Returns the intersection point for the given pair of line segments, or null,\n * if the segments are parallel or don't intersect.\n * Based on http://paulbourke.net/geometry/pointlineplane/\n */\nfunction segmentIntersection$1(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2) {\n var d = (ax2 - ax1) * (by2 - by1) - (ay2 - ay1) * (bx2 - bx1);\n if (d === 0) {\n // The lines are parallel.\n return null;\n }\n var ua = ((bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1)) / d;\n var ub = ((ax2 - ax1) * (ay1 - by1) - (ay2 - ay1) * (ax1 - bx1)) / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return {\n x: ax1 + ua * (ax2 - ax1),\n y: ay1 + ua * (ay2 - ay1),\n };\n }\n return null; // The intersection point is outside either or both segments.\n}\n/**\n * Returns intersection points of the given cubic curve and the line segment.\n * Takes in x/y components of cubic control points and line segment start/end points\n * as parameters.\n */\nfunction cubicSegmentIntersections$1(px1, py1, px2, py2, px3, py3, px4, py4, x1, y1, x2, y2) {\n var e_1, _a;\n var intersections = [];\n // Find line equation coefficients.\n var A = y1 - y2;\n var B = x2 - x1;\n var C = x1 * (y2 - y1) - y1 * (x2 - x1);\n // Find cubic Bezier curve equation coefficients from control points.\n var bx = bezierCoefficients$1(px1, px2, px3, px4);\n var by = bezierCoefficients$1(py1, py2, py3, py4);\n var a = A * bx[0] + B * by[0]; // t^3\n var b = A * bx[1] + B * by[1]; // t^2\n var c = A * bx[2] + B * by[2]; // t\n var d = A * bx[3] + B * by[3] + C; // 1\n var roots = cubicRoots$1(a, b, c, d);\n try {\n // Verify that the roots are within bounds of the linear segment.\n for (var roots_1 = __values$u(roots), roots_1_1 = roots_1.next(); !roots_1_1.done; roots_1_1 = roots_1.next()) {\n var t = roots_1_1.value;\n var tt = t * t;\n var ttt = t * tt;\n // Find the cartesian plane coordinates for the parametric root `t`.\n var x = bx[0] * ttt + bx[1] * tt + bx[2] * t + bx[3];\n var y = by[0] * ttt + by[1] * tt + by[2] * t + by[3];\n // The parametric cubic roots we found are intersection points\n // with an infinite line, and so the x/y coordinates above are as well.\n // Make sure the x/y is also within the bounds of the given segment.\n var s = void 0;\n if (x1 !== x2) {\n s = (x - x1) / (x2 - x1);\n }\n else {\n // the line is vertical\n s = (y - y1) / (y2 - y1);\n }\n if (s >= 0 && s <= 1) {\n intersections.push({ x: x, y: y });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (roots_1_1 && !roots_1_1.done && (_a = roots_1.return)) _a.call(roots_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return intersections;\n}\n/**\n * Returns the given coordinates vector multiplied by the coefficient matrix\n * of the parametric cubic Bézier equation.\n */\nfunction bezierCoefficients$1(P1, P2, P3, P4) {\n return [\n // Bézier expressed as matrix operations:\n -P1 + 3 * P2 - 3 * P3 + P4,\n 3 * P1 - 6 * P2 + 3 * P3,\n -3 * P1 + 3 * P2,\n P1,\n ];\n}\n\nvar __values$t = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Path2D$1 = /** @class */ (function () {\n function Path2D() {\n // The methods of this class will likely be called many times per animation frame,\n // and any allocation can trigger a GC cycle during animation, so we attempt\n // to minimize the number of allocations.\n this.previousCommands = [];\n this.previousParams = [];\n this.previousClosedPath = false;\n this.commands = [];\n this.params = [];\n this._closedPath = false;\n }\n Path2D.prototype.isDirty = function () {\n if (this._closedPath !== this.previousClosedPath) {\n return true;\n }\n if (this.previousCommands.length !== this.commands.length) {\n return true;\n }\n if (this.previousParams.length !== this.params.length) {\n return true;\n }\n for (var i = 0; i < this.commands.length; i++) {\n if (this.commands[i] !== this.previousCommands[i]) {\n return true;\n }\n }\n for (var i = 0; i < this.params.length; i++) {\n if (this.params[i] !== this.previousParams[i]) {\n return true;\n }\n }\n return false;\n };\n Path2D.prototype.draw = function (ctx) {\n var e_1, _a;\n var commands = this.commands;\n var params = this.params;\n var j = 0;\n ctx.beginPath();\n try {\n for (var commands_1 = __values$t(commands), commands_1_1 = commands_1.next(); !commands_1_1.done; commands_1_1 = commands_1.next()) {\n var command = commands_1_1.value;\n switch (command) {\n case 'M':\n ctx.moveTo(params[j++], params[j++]);\n break;\n case 'L':\n ctx.lineTo(params[j++], params[j++]);\n break;\n case 'C':\n ctx.bezierCurveTo(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++]);\n break;\n case 'Z':\n ctx.closePath();\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (commands_1_1 && !commands_1_1.done && (_a = commands_1.return)) _a.call(commands_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (commands.length === 0) {\n ctx.closePath();\n }\n };\n Path2D.prototype.moveTo = function (x, y) {\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n this.commands.push('M');\n this.params.push(x, y);\n };\n Path2D.prototype.lineTo = function (x, y) {\n if (this.xy) {\n this.commands.push('L');\n this.params.push(x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.moveTo(x, y);\n }\n };\n Path2D.prototype.rect = function (x, y, width, height) {\n this.moveTo(x, y);\n this.lineTo(x + width, y);\n this.lineTo(x + width, y + height);\n this.lineTo(x, y + height);\n this.closePath();\n };\n /**\n * Adds an arc segment to the path definition.\n * https://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands\n * @param rx The major-axis radius.\n * @param ry The minor-axis radius.\n * @param rotation The x-axis rotation, expressed in radians.\n * @param fA The large arc flag. `1` to use angle > π.\n * @param fS The sweep flag. `1` for the arc that goes to `x`/`y` clockwise.\n * @param x2 The x coordinate to arc to.\n * @param y2 The y coordinate to arc to.\n */\n Path2D.prototype.arcTo = function (rx, ry, rotation, fA, fS, x2, y2) {\n // Convert from endpoint to center parametrization:\n // https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes\n var xy = this.xy;\n if (!xy) {\n return;\n }\n if (rx < 0) {\n rx = -rx;\n }\n if (ry < 0) {\n ry = -ry;\n }\n var x1 = xy[0];\n var y1 = xy[1];\n var hdx = (x1 - x2) / 2;\n var hdy = (y1 - y2) / 2;\n var sinPhi = Math.sin(rotation);\n var cosPhi = Math.cos(rotation);\n var xp = cosPhi * hdx + sinPhi * hdy;\n var yp = -sinPhi * hdx + cosPhi * hdy;\n var ratX = xp / rx;\n var ratY = yp / ry;\n var lambda = ratX * ratX + ratY * ratY;\n var cx = (x1 + x2) / 2;\n var cy = (y1 + y2) / 2;\n var cpx = 0;\n var cpy = 0;\n if (lambda >= 1) {\n lambda = Math.sqrt(lambda);\n rx *= lambda;\n ry *= lambda;\n // me gives lambda == cpx == cpy == 0;\n }\n else {\n lambda = Math.sqrt(1 / lambda - 1);\n if (fA === fS) {\n lambda = -lambda;\n }\n cpx = lambda * rx * ratY;\n cpy = -lambda * ry * ratX;\n cx += cosPhi * cpx - sinPhi * cpy;\n cy += sinPhi * cpx + cosPhi * cpy;\n }\n var theta1 = Math.atan2((yp - cpy) / ry, (xp - cpx) / rx);\n var deltaTheta = Math.atan2((-yp - cpy) / ry, (-xp - cpx) / rx) - theta1;\n this.cubicArc(cx, cy, rx, ry, rotation, theta1, theta1 + deltaTheta, 1 - fS);\n };\n /**\n * Approximates an elliptical arc with up to four cubic Bézier curves.\n * @param commands The string array to write SVG command letters to.\n * @param params The number array to write SVG command parameters (cubic control points) to.\n * @param cx The x-axis coordinate for the ellipse's center.\n * @param cy The y-axis coordinate for the ellipse's center.\n * @param rx The ellipse's major-axis radius.\n * @param ry The ellipse's minor-axis radius.\n * @param phi The rotation for this ellipse, expressed in radians.\n * @param theta1 The starting angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param theta2 The ending angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param anticlockwise The arc control points are always placed clockwise from `theta1` to `theta2`,\n * even when `theta1 > theta2`, unless this flag is set to `1`.\n */\n Path2D.cubicArc = function (commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n if (anticlockwise) {\n var temp = theta1;\n theta1 = theta2;\n theta2 = temp;\n }\n var start = params.length;\n // See https://pomax.github.io/bezierinfo/#circles_cubic\n // Arc of unit circle (start angle = 0, end angle <= π/2) in cubic Bézier coordinates:\n // S = [1, 0]\n // C1 = [1, f]\n // C2 = [cos(θ) + f * sin(θ), sin(θ) - f * cos(θ)]\n // E = [cos(θ), sin(θ)]\n // f = 4/3 * tan(θ/4)\n var f90 = 0.5522847498307935; // f for θ = π/2 is 4/3 * (Math.sqrt(2) - 1)\n var sinTheta1 = Math.sin(theta1);\n var cosTheta1 = Math.cos(theta1);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var rightAngle = Math.PI / 2;\n // Since we know how to draw an arc of a unit circle with a cubic Bézier,\n // to draw an elliptical arc with arbitrary rotation and radii we:\n // 1) rotate the Bézier coordinates that represent a circular arc by θ\n // 2) scale the circular arc separately along the x/y axes, making it elliptical\n // 3) rotate elliptical arc by φ\n // |cos(φ) -sin(φ)| |sx 0| |cos(θ) -sin(θ)| -> |xx xy|\n // |sin(φ) cos(φ)| | 0 sy| |sin(θ) cos(θ)| -> |yx yy|\n var xx = cosPhi * cosTheta1 * rx - sinPhi * sinTheta1 * ry;\n var yx = sinPhi * cosTheta1 * rx + cosPhi * sinTheta1 * ry;\n var xy = -cosPhi * sinTheta1 * rx - sinPhi * cosTheta1 * ry;\n var yy = -sinPhi * sinTheta1 * rx + cosPhi * cosTheta1 * ry;\n // Always draw clockwise from θ1 to θ2.\n theta2 -= theta1;\n if (theta2 < 0) {\n theta2 += Math.PI * 2;\n }\n // Multiplying each point [x, y] by:\n // |xx xy cx| |x|\n // |yx yy cy| |y|\n // | 0 0 1| |1|\n commands.push('M');\n params.push(xx + cx, yx + cy);\n while (theta2 >= rightAngle) {\n theta2 -= rightAngle;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xy + cx;\n params.push(xx + xy * f90 + cx, yx + yy * f90 + cy, xx * f90 + xy + cx, yx * f90 + yy + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yy + cy);\n // Prepend π/2 rotation matrix.\n // |xx xy| | 0 1| -> | xy -xx|\n // |yx yy| |-1 0| -> | yy -yx|\n // [xx, yx, xy, yy] = [xy, yy, -xx, -yx];\n // Compared to swapping with a temp variable, destructuring is:\n // - 10% faster in Chrome 70\n // - 99% slower in Firefox 63\n // Temp variable solution is 45% faster in FF than Chrome.\n // https://jsperf.com/multi-swap\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1165569\n var temp = xx;\n xx = xy;\n xy = -temp;\n temp = yx;\n yx = yy;\n yy = -temp;\n }\n if (theta2) {\n var f = (4 / 3) * Math.tan(theta2 / 4);\n var sinPhi2 = Math.sin(theta2);\n var cosPhi2 = Math.cos(theta2);\n var C2x = cosPhi2 + f * sinPhi2;\n var C2y = sinPhi2 - f * cosPhi2;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xx * cosPhi2 + xy * sinPhi2 + cx;\n params.push(xx + xy * f + cx, yx + yy * f + cy, xx * C2x + xy * C2y + cx, yx * C2x + yy * C2y + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yx * cosPhi2 + yy * sinPhi2 + cy);\n }\n if (anticlockwise) {\n for (var i = start, j = params.length - 2; i < j; i += 2, j -= 2) {\n var temp = params[i];\n params[i] = params[j];\n params[j] = temp;\n temp = params[i + 1];\n params[i + 1] = params[j + 1];\n params[j + 1] = temp;\n }\n }\n };\n Path2D.prototype.cubicArc = function (cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n var commands = this.commands;\n var params = this.params;\n var start = commands.length;\n Path2D.cubicArc(commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise);\n var x = params[params.length - 2];\n var y = params[params.length - 1];\n if (this.xy) {\n commands[start] = 'L';\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n };\n /**\n * Returns the `[x, y]` coordinates of the curve at `t`.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param t\n */\n Path2D.prototype.deCasteljau = function (points, t) {\n var n = points.length;\n if (n < 2 || n % 2 === 1) {\n throw new Error('Fewer than two points or not an even count.');\n }\n else if (n === 2 || t === 0) {\n return points.slice(0, 2);\n }\n else if (t === 1) {\n return points.slice(-2);\n }\n else {\n var newPoints = [];\n var last = n - 2;\n for (var i = 0; i < last; i += 2) {\n newPoints.push((1 - t) * points[i] + t * points[i + 2], // x\n (1 - t) * points[i + 1] + t * points[i + 3] // y\n );\n }\n return this.deCasteljau(newPoints, t);\n }\n };\n /**\n * Approximates the given curve using `n` line segments.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param n\n */\n Path2D.prototype.approximateCurve = function (points, n) {\n var xy = this.deCasteljau(points, 0);\n this.moveTo(xy[0], xy[1]);\n var step = 1 / n;\n for (var t = step; t <= 1; t += step) {\n var xy_1 = this.deCasteljau(points, t);\n this.lineTo(xy_1[0], xy_1[1]);\n }\n };\n /**\n * Adds a quadratic curve segment to the path definition.\n * Note: the given quadratic segment is converted and stored as a cubic one.\n * @param cx x-component of the curve's control point\n * @param cy y-component of the curve's control point\n * @param x x-component of the end point\n * @param y y-component of the end point\n */\n Path2D.prototype.quadraticCurveTo = function (cx, cy, x, y) {\n if (!this.xy) {\n this.moveTo(cx, cy);\n }\n // See https://pomax.github.io/bezierinfo/#reordering\n this.cubicCurveTo((this.xy[0] + 2 * cx) / 3, (this.xy[1] + 2 * cy) / 3, // 1/3 start + 2/3 control\n (2 * cx + x) / 3, (2 * cy + y) / 3, // 2/3 control + 1/3 end\n x, y);\n };\n Path2D.prototype.cubicCurveTo = function (cx1, cy1, cx2, cy2, x, y) {\n if (!this.xy) {\n this.moveTo(cx1, cy1);\n }\n this.commands.push('C');\n this.params.push(cx1, cy1, cx2, cy2, x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n };\n Object.defineProperty(Path2D.prototype, \"closedPath\", {\n get: function () {\n return this._closedPath;\n },\n enumerable: true,\n configurable: true\n });\n Path2D.prototype.closePath = function () {\n if (this.xy) {\n this.xy = undefined;\n this.commands.push('Z');\n this._closedPath = true;\n }\n };\n Path2D.prototype.clear = function (_a) {\n var trackChanges = (_a === void 0 ? { trackChanges: false } : _a).trackChanges;\n if (trackChanges) {\n this.previousCommands = this.commands;\n this.previousParams = this.params;\n this.previousClosedPath = this._closedPath;\n this.commands = [];\n this.params = [];\n }\n else {\n this.commands.length = 0;\n this.params.length = 0;\n }\n this.xy = undefined;\n this._closedPath = false;\n };\n Path2D.prototype.isPointInPath = function (x, y) {\n var commands = this.commands;\n var params = this.params;\n var cn = commands.length;\n // Hit testing using ray casting method, where the ray's origin is some point\n // outside the path. In this case, an offscreen point that is remote enough, so that\n // even if the path itself is large and is partially offscreen, the ray's origin\n // will likely be outside the path anyway. To test if the given point is inside the\n // path or not, we cast a ray from the origin to the given point and check the number\n // of intersections of this segment with the path. If the number of intersections is\n // even, then the ray both entered and exited the path an equal number of times,\n // therefore the point is outside the path, and inside the path, if the number of\n // intersections is odd. Since the path is compound, we check if the ray segment\n // intersects with each of the path's segments, which can be either a line segment\n // (one or no intersection points) or a Bézier curve segment (up to 3 intersection\n // points).\n var ox = -10000;\n var oy = -10000;\n // the starting point of the current path\n var sx = NaN;\n var sy = NaN;\n // the previous point of the current path\n var px = 0;\n var py = 0;\n var intersectionCount = 0;\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (commands[ci]) {\n case 'M':\n if (!isNaN(sx)) {\n if (segmentIntersection$1(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n px = params[pi++];\n sx = px;\n py = params[pi++];\n sy = py;\n break;\n case 'L':\n if (segmentIntersection$1(px, py, params[pi++], params[pi++], ox, oy, x, y)) {\n intersectionCount++;\n }\n px = params[pi - 2];\n py = params[pi - 1];\n break;\n case 'C':\n intersectionCount += cubicSegmentIntersections$1(px, py, params[pi++], params[pi++], params[pi++], params[pi++], params[pi++], params[pi++], ox, oy, x, y).length;\n px = params[pi - 2];\n py = params[pi - 1];\n break;\n case 'Z':\n if (!isNaN(sx)) {\n if (segmentIntersection$1(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n break;\n }\n }\n return intersectionCount % 2 === 1;\n };\n /**\n * Returns an array of sub-paths of this Path,\n * where each sub-path is represented exclusively by cubic segments.\n */\n Path2D.prototype.toCubicPaths = function () {\n // Each sub-path is an array of `(n * 3 + 1) * 2` numbers,\n // where `n` is the number of segments.\n var paths = [];\n var params = this.params;\n // current path\n var path;\n // the starting point of the current path\n var sx;\n var sy;\n // the previous point of the current path\n var px;\n var py;\n var i = 0; // current parameter\n this.commands.forEach(function (command) {\n switch (command) {\n case 'M':\n px = params[i++];\n py = params[i++];\n sx = px;\n sy = py;\n paths.push([sx, sy]);\n break;\n case 'L':\n var x = params[i++];\n var y = params[i++];\n // Place control points along the line `a + (b - a) * t`\n // at t = 1/3 and 2/3:\n path.push((px + px + x) / 3, (py + py + y) / 3, (px + x + x) / 3, (py + y + y) / 3, x, y);\n px = x;\n py = y;\n break;\n case 'C':\n path.push(params[i++], params[i++], params[i++], params[i++], params[i++], params[i++]);\n px = params[i - 2];\n py = params[i - 1];\n break;\n case 'Z':\n path.push((px + px + sx) / 3, (py + py + sy) / 3, (px + sx + sx) / 3, (py + sy + sy) / 3, sx, sy);\n px = sx;\n py = sy;\n break;\n }\n });\n return paths;\n };\n Path2D.cubicPathToString = function (path) {\n var n = path.length;\n if (!(n % 2 === 0 && (n / 2 - 1) / 2 >= 1)) {\n throw new Error('Invalid path.');\n }\n return 'M' + path.slice(0, 2).join(',') + 'C' + path.slice(2).join(',');\n };\n return Path2D;\n}());\n\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$B = (undefined && undefined.__assign) || function () {\n __assign$B = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$B.apply(this, arguments);\n};\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$s = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$I = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$p = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$I(arguments[i]));\n return ar;\n};\nvar Group$1 = /** @class */ (function (_super) {\n __extends$2J(Group, _super);\n function Group(opts) {\n var _a, _b;\n var _this = _super.call(this) || this;\n _this.opts = opts;\n _this.clipPath = new Path2D$1();\n _this.opacity = 1;\n _this.lastBBox = undefined;\n var _c = opts || {}, zIndex = _c.zIndex, zIndexSubOrder = _c.zIndexSubOrder;\n _this.isContainerNode = true;\n if (zIndex !== undefined) {\n _this.zIndex = zIndex;\n }\n if (zIndexSubOrder !== undefined) {\n _this.zIndexSubOrder = zIndexSubOrder;\n }\n if ((_a = _this.opts) === null || _a === void 0 ? void 0 : _a.optimiseDirtyTracking) {\n _this.visibleChildren = {};\n _this.dirtyChildren = {};\n }\n _this.name = (_b = _this.opts) === null || _b === void 0 ? void 0 : _b.name;\n return _this;\n }\n Group.prototype.opacityChanged = function () {\n if (this.layer) {\n this.layer.opacity = this.opacity;\n }\n };\n Group.prototype.zIndexChanged = function () {\n var _a;\n if (this.layer) {\n (_a = this._scene) === null || _a === void 0 ? void 0 : _a.moveLayer(this.layer, this.zIndex, this.zIndexSubOrder);\n }\n };\n Group.prototype.isLayer = function () {\n return this.layer != null;\n };\n Group.prototype.append = function (nodes) {\n var e_1, _a;\n _super.prototype.append.call(this, nodes);\n if (this.dirtyChildren) {\n nodes = nodes instanceof Array ? nodes : [nodes];\n try {\n for (var nodes_1 = __values$s(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n this.dirtyChildren[node.id] = node;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n };\n Group.prototype._setScene = function (scene) {\n var _a;\n if (this._scene && this.layer) {\n this._scene.removeLayer(this.layer);\n this.layer = undefined;\n }\n if (this.layer) {\n throw new Error('AG Charts - unable to deregister scene rendering layer!');\n }\n _super.prototype._setScene.call(this, scene);\n if (scene && ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.layer)) {\n var _b = this.opts || {}, zIndex = _b.zIndex, zIndexSubOrder = _b.zIndexSubOrder, name_1 = _b.name;\n this.layer = scene.addLayer({ zIndex: zIndex, zIndexSubOrder: zIndexSubOrder, name: name_1 });\n }\n };\n Group.prototype.visibilityChanged = function () {\n if (this.layer) {\n this.layer.enabled = this.visible;\n }\n };\n Group.prototype.removeChild = function (node) {\n _super.prototype.removeChild.call(this, node);\n if (this.dirtyChildren && this.visibleChildren) {\n delete this.dirtyChildren[node.id];\n delete this.visibleChildren[node.id];\n }\n return node;\n };\n Group.prototype.markDirty = function (source, type) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n var parentType = type <= RedrawType.MINOR ? RedrawType.TRIVIAL : type;\n _super.prototype.markDirty.call(this, source, type, parentType);\n if (source !== this && this.dirtyChildren) {\n this.dirtyChildren[source.id] = source;\n }\n };\n Group.prototype.markClean = function (opts) {\n var e_2, _a;\n // Ensure we update visibility tracking before blowing away dirty flags.\n this.syncChildVisibility();\n var _b = this.dirtyChildren, dirtyChildren = _b === void 0 ? {} : _b;\n try {\n for (var _c = __values$s(Object.keys(dirtyChildren)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var key = _d.value;\n delete dirtyChildren[key];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n _super.prototype.markClean.call(this, opts);\n };\n // We consider a group to be boundless, thus any point belongs to it.\n Group.prototype.containsPoint = function (_x, _y) {\n return true;\n };\n Group.prototype.computeBBox = function () {\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n this.computeTransformMatrix();\n this.children.forEach(function (child) {\n if (!child.visible) {\n return;\n }\n var bbox = child.computeTransformedBBox();\n if (!bbox) {\n return;\n }\n var x = bbox.x;\n var y = bbox.y;\n if (x < left) {\n left = x;\n }\n if (y < top) {\n top = y;\n }\n if (x + bbox.width > right) {\n right = x + bbox.width;\n }\n if (y + bbox.height > bottom) {\n bottom = y + bbox.height;\n }\n });\n return new BBox$1(left, top, right - left, bottom - top);\n };\n Group.prototype.computeTransformedBBox = function () {\n return this.computeBBox();\n };\n Group.prototype.render = function (renderCtx) {\n var _a;\n if (this.layer && ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.optimiseDirtyTracking)) {\n this.optimisedRender(renderCtx);\n return;\n }\n this.basicRender(renderCtx);\n };\n Group.prototype.basicRender = function (renderCtx) {\n var e_3, _a;\n var _b = this.opts, _c = (_b === void 0 ? {} : _b).name, name = _c === void 0 ? undefined : _c;\n var _d = this._debug, _e = (_d === void 0 ? {} : _d).consoleLog, consoleLog = _e === void 0 ? false : _e;\n var _f = this, dirty = _f.dirty, dirtyZIndex = _f.dirtyZIndex, clipPath = _f.clipPath, layer = _f.layer, children = _f.children;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, clipBBox = renderCtx.clipBBox, resized = renderCtx.resized, stats = renderCtx.stats;\n var isDirty = dirty >= RedrawType.MINOR || dirtyZIndex || resized;\n var isChildDirty = isDirty || children.some(function (n) { return n.dirty >= RedrawType.TRIVIAL; });\n if (name && consoleLog) {\n console.log({ name: name, group: this, isDirty: isDirty, isChildDirty: isChildDirty, renderCtx: renderCtx, forceRender: forceRender });\n }\n if (layer) {\n // By default there is no need to force redraw a group which has it's own canvas layer\n // as the layer is independent of any other layer.\n forceRender = false;\n // If bounding-box of a layer changes, force re-render.\n var currentBBox = this.computeBBox();\n if (this.lastBBox === undefined || !this.lastBBox.equals(currentBBox)) {\n forceRender = true;\n this.lastBBox = currentBBox;\n }\n }\n if (!isDirty && !isChildDirty && !forceRender) {\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n console.log({ name: name, result: 'skipping', renderCtx: renderCtx, counts: counts, group: this });\n }\n if (layer && stats) {\n stats.layersSkipped++;\n stats.nodesSkipped += this.nodeCount.count;\n }\n _super.prototype.markClean.call(this, { recursive: false });\n // Nothing to do.\n return;\n }\n var groupVisible = this.visible;\n if (layer) {\n // Switch context to the canvas layer we use for this group.\n ctx = layer.context;\n ctx.save();\n ctx.setTransform(renderCtx.ctx.getTransform());\n forceRender = true;\n layer.clear();\n if (clipBBox) {\n var width = clipBBox.width, height = clipBBox.height, x = clipBBox.x, y = clipBBox.y;\n if (consoleLog) {\n console.log({ name: name, clipBBox: clipBBox, ctxTransform: ctx.getTransform(), renderCtx: renderCtx, group: this });\n }\n clipPath.clear();\n clipPath.rect(x, y, width, height);\n clipPath.draw(ctx);\n ctx.clip();\n }\n }\n else {\n // Only apply opacity if this isn't a distinct layer - opacity will be applied\n // at composition time.\n ctx.globalAlpha *= this.opacity;\n }\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n clipBBox = clipBBox ? this.matrix.inverse().transformBBox(clipBBox) : undefined;\n if (dirtyZIndex) {\n this.sortChildren();\n forceRender = true;\n }\n // Reduce churn if renderCtx is identical.\n var renderContextChanged = forceRender !== renderCtx.forceRender || clipBBox !== renderCtx.clipBBox || ctx !== renderCtx.ctx;\n var childRenderContext = renderContextChanged ? __assign$B(__assign$B({}, renderCtx), { ctx: ctx, forceRender: forceRender, clipBBox: clipBBox }) : renderCtx;\n // Render visible children.\n var skipped = 0;\n try {\n for (var children_1 = __values$s(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n if (!child.visible || !groupVisible) {\n // Skip invisible children, but make sure their dirty flag is reset.\n child.markClean();\n if (stats)\n skipped += child.nodeCount.count;\n continue;\n }\n if (!forceRender && child.dirty === RedrawType.NONE) {\n // Skip children that don't need to be redrawn.\n if (stats)\n skipped += child.nodeCount.count;\n continue;\n }\n // Render marks this node (and children) as clean - no need to explicitly markClean().\n ctx.save();\n child.render(childRenderContext);\n ctx.restore();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (stats)\n stats.nodesSkipped += skipped;\n // Render marks this node as clean - no need to explicitly markClean().\n _super.prototype.render.call(this, renderCtx);\n if (layer) {\n if (stats)\n stats.layersRendered++;\n ctx.restore();\n layer.snapshot();\n }\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n console.log({ name: name, result: 'rendered', skipped: skipped, renderCtx: renderCtx, counts: counts, group: this });\n }\n };\n Group.prototype.optimisedRender = function (renderCtx) {\n var e_4, _a, e_5, _b;\n var _c = this._debug, _d = (_c === void 0 ? {} : _c).consoleLog, consoleLog = _d === void 0 ? false : _d;\n var _e = this, name = _e.name, dirty = _e.dirty, dirtyZIndex = _e.dirtyZIndex, clipPath = _e.clipPath, layer = _e.layer, _f = _e.dirtyChildren, dirtyChildren = _f === void 0 ? {} : _f, _g = _e.visibleChildren, visibleChildren = _g === void 0 ? {} : _g, groupVisible = _e.visible;\n var ctx = renderCtx.ctx, clipBBox = renderCtx.clipBBox, resized = renderCtx.resized, stats = renderCtx.stats;\n if (!layer) {\n return;\n }\n var isDirty = dirty >= RedrawType.MINOR || dirtyZIndex || resized;\n var isChildDirty = Object.keys(dirtyChildren).length > 0;\n if (name && consoleLog) {\n console.log({ name: name, group: this, isDirty: isDirty, isChildDirty: isChildDirty, renderCtx: renderCtx });\n }\n if (!isDirty && !isChildDirty) {\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n console.log({ name: name, result: 'skipping', renderCtx: renderCtx, counts: counts, group: this });\n }\n if (stats) {\n stats.layersSkipped++;\n stats.nodesSkipped += this.nodeCount.count;\n }\n _super.prototype.markClean.call(this, { recursive: false });\n // Nothing to do.\n return;\n }\n // Switch context to the canvas layer we use for this group.\n ctx = layer.context;\n ctx.save();\n ctx.setTransform(renderCtx.ctx.getTransform());\n layer.clear();\n if (clipBBox) {\n var width = clipBBox.width, height = clipBBox.height, x = clipBBox.x, y = clipBBox.y;\n if (consoleLog) {\n console.log({ name: name, clipBBox: clipBBox, ctxTransform: ctx.getTransform(), renderCtx: renderCtx, group: this });\n }\n clipPath.clear();\n clipPath.rect(x, y, width, height);\n clipPath.draw(ctx);\n ctx.clip();\n }\n this.syncChildVisibility();\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n clipBBox = clipBBox ? this.matrix.inverse().transformBBox(clipBBox) : undefined;\n if (dirtyZIndex) {\n this.sortChildren();\n }\n // Reduce churn if renderCtx is identical.\n var renderContextChanged = renderCtx.forceRender !== true || clipBBox !== renderCtx.clipBBox || ctx !== renderCtx.ctx;\n var childRenderContext = renderContextChanged\n ? __assign$B(__assign$B({}, renderCtx), { ctx: ctx, forceRender: true, clipBBox: clipBBox }) : renderCtx;\n if (consoleLog) {\n console.log({ name: name, visibleChildren: visibleChildren, dirtyChildren: dirtyChildren });\n }\n var skipped = 0;\n if (groupVisible) {\n try {\n for (var _h = __values$s(Object.values(visibleChildren)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var child = _j.value;\n ctx.save();\n child.render(childRenderContext);\n ctx.restore();\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_a = _h.return)) _a.call(_h);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n this.markClean({ recursive: false });\n try {\n for (var _k = __values$s(Object.values(dirtyChildren)), _l = _k.next(); !_l.done; _l = _k.next()) {\n var child = _l.value;\n child.markClean();\n delete dirtyChildren[child.id];\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_b = _k.return)) _b.call(_k);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (stats)\n stats.nodesSkipped += skipped;\n if (stats)\n stats.layersRendered++;\n ctx.restore();\n layer.snapshot();\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n console.log({ name: name, result: 'rendered', skipped: skipped, renderCtx: renderCtx, counts: counts, group: this });\n }\n };\n Group.prototype.syncChildVisibility = function () {\n var e_6, _a;\n var _b = this, dirtyChildren = _b.dirtyChildren, visibleChildren = _b.visibleChildren;\n if (!dirtyChildren || !visibleChildren) {\n return;\n }\n try {\n for (var _c = __values$s(Object.values(dirtyChildren)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (!child.visible && visibleChildren[child.id]) {\n delete visibleChildren[child.id];\n }\n else if (child.visible && !visibleChildren[child.id]) {\n visibleChildren[child.id] = child;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n Group.prototype.sortChildren = function () {\n this.dirtyZIndex = false;\n this.children.sort(function (a, b) {\n var _a, _b;\n return compoundAscending(__spread$p([a.zIndex], (_a = a.zIndexSubOrder, (_a !== null && _a !== void 0 ? _a : [undefined, undefined])), [a.serialNumber]), __spread$p([b.zIndex], (_b = b.zIndexSubOrder, (_b !== null && _b !== void 0 ? _b : [undefined, undefined])), [b.serialNumber]), ascendingStringNumberUndefined);\n });\n };\n Group.className = 'Group';\n __decorate$1F([\n SceneChangeDetection({\n convertor: function (v) { return Math.min(1, Math.max(0, v)); },\n changeCb: function (o) { return o.opacityChanged(); },\n })\n ], Group.prototype, \"opacity\", void 0);\n return Group;\n}(Node$1));\n\nvar __values$r = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar EnterNode$1 = /** @class */ (function () {\n function EnterNode(parent, datum) {\n this.next = null;\n this.scene = parent.scene;\n this.parent = parent;\n this.datum = datum;\n }\n EnterNode.prototype.appendChild = function (node) {\n // This doesn't work without the `strict: true` in the `tsconfig.json`,\n // so we must have two `if` checks below, instead of this single one.\n // if (this.next && !Node.isNode(this.next)) {\n // throw new Error(`${this.next} is not a Node.`);\n // }\n if (this.next === null) {\n return this.parent.insertBefore(node, null);\n }\n if (!Node$1.isNode(this.next)) {\n throw new Error(this.next + \" is not a Node.\");\n }\n return this.parent.insertBefore(node, this.next);\n };\n EnterNode.prototype.insertBefore = function (node, nextNode) {\n return this.parent.insertBefore(node, nextNode);\n };\n return EnterNode;\n}());\n/**\n * G - type of the selected node(s).\n * GDatum - type of the datum of the selected node(s).\n * P - type of the parent node(s).\n * PDatum - type of the datum of the parent node(s).\n */\nvar Selection$1 = /** @class */ (function () {\n function Selection(groups, parents) {\n this.groups = groups;\n this.parents = parents;\n }\n Selection.select = function (node) {\n return new Selection([[typeof node === 'function' ? node() : node]], [undefined]);\n };\n Selection.selectAll = function (nodes) {\n return new Selection([nodes == null ? [] : nodes], [undefined]);\n };\n /**\n * Creates new nodes, appends them to the nodes of this selection and returns them\n * as a new selection. The created nodes inherit the datums and the parents of the nodes\n * they replace.\n * @param Class The constructor function to use to create the new nodes.\n */\n Selection.prototype.append = function (Class) {\n return this.select(function (node) {\n return node.appendChild(new Class());\n });\n };\n /**\n * Runs the given selector that returns a single node for every node in each group.\n * The original nodes are then replaced by the nodes returned by the selector\n * and returned as a new selection.\n * The selected nodes inherit the datums and the parents of the original nodes.\n */\n Selection.prototype.select = function (selector) {\n var groups = this.groups;\n var numGroups = groups.length;\n var subgroups = [];\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n var subgroup = (subgroups[j] = new Array(groupSize));\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var subnode = selector(node, node.datum, i, group);\n if (subnode) {\n subnode.datum = node.datum;\n }\n subgroup[i] = subnode;\n }\n // else this can be a group of the `enter` selection,\n // for example, with no nodes at the i-th position,\n // only nodes at the end of the group\n }\n }\n return new Selection(subgroups, this.parents);\n };\n /**\n * Same as {@link select}, but uses the given {@param Class} (constructor) as a selector.\n * @param Class The constructor function to use to find matching nodes.\n */\n Selection.prototype.selectByClass = function (Class) {\n return this.select(function (node) {\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectByTag = function (tag) {\n return this.select(function (node) {\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectAllByClass = function (Class) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectAllByTag = function (tag) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectNone = function () {\n return [];\n };\n /**\n * Runs the given selector that returns a group of nodes for every node in each group.\n * The original nodes are then replaced by the groups of nodes returned by the selector\n * and returned as a new selection. The original nodes become the parent nodes for each\n * group in the new selection. The selected nodes do not inherit the datums of the original nodes.\n * If called without any parameters, creates a new selection with an empty group for each\n * node in this selection.\n */\n Selection.prototype.selectAll = function (selectorAll) {\n if (!selectorAll) {\n selectorAll = this.selectNone;\n }\n // Each subgroup is populated with the selector (run on each group node) results.\n var subgroups = [];\n // In the new selection that we return, subgroups become groups,\n // and group nodes become parents.\n var parents = [];\n var groups = this.groups;\n var groupCount = groups.length;\n for (var j = 0; j < groupCount; j++) {\n var group = groups[j];\n var groupLength = group.length;\n for (var i = 0; i < groupLength; i++) {\n var node = group[i];\n if (node) {\n subgroups.push(selectorAll(node, node.datum, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n };\n /**\n * Runs the given callback for every node in this selection and returns this selection.\n * @param cb\n */\n Selection.prototype.each = function (cb) {\n var e_1, _a, e_2, _b;\n try {\n for (var _c = __values$r(this.groups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var group = _d.value;\n var i = 0;\n try {\n for (var group_1 = (e_2 = void 0, __values$r(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {\n var node = group_1_1.value;\n if (node) {\n cb(node, node.datum, i, group);\n }\n i++;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (group_1_1 && !group_1_1.done && (_b = group_1.return)) _b.call(group_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Selection.prototype.remove = function () {\n return this.each(function (node) {\n if (Node$1.isNode(node)) {\n var parent_1 = node.parent;\n if (parent_1) {\n parent_1.removeChild(node);\n }\n }\n });\n };\n Selection.prototype.merge = function (other) {\n var groups0 = this.groups;\n var groups1 = other.groups;\n var m0 = groups0.length;\n var m1 = groups1.length;\n var m = Math.min(m0, m1);\n var merges = new Array(m0);\n var j = 0;\n for (; j < m; j++) {\n var group0 = groups0[j];\n var group1 = groups1[j];\n var n = group0.length;\n var merge = (merges[j] = new Array(n));\n for (var i = 0; i < n; i++) {\n var node = group0[i] || group1[i];\n merge[i] = node || undefined;\n }\n }\n for (; j < m0; j++) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this.parents);\n };\n /**\n * Return the first non-null element in this selection.\n * If the selection is empty, returns null.\n */\n Selection.prototype.node = function () {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n return node;\n }\n }\n }\n return null;\n };\n Selection.prototype.attr = function (name, value) {\n this.each(function (node) {\n node[name] = value;\n });\n return this;\n };\n Selection.prototype.attrFn = function (name, value) {\n this.each(function (node, datum, index, group) {\n node[name] = value(node, datum, index, group);\n });\n return this;\n };\n /**\n * Invokes the given function once, passing in this selection.\n * Returns this selection. Facilitates method chaining.\n * @param cb\n */\n Selection.prototype.call = function (cb) {\n cb(this);\n return this;\n };\n Object.defineProperty(Selection.prototype, \"size\", {\n /**\n * Returns the total number of nodes in this selection.\n */\n get: function () {\n var e_3, _a, e_4, _b;\n var size = 0;\n try {\n for (var _c = __values$r(this.groups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var group = _d.value;\n try {\n for (var group_2 = (e_4 = void 0, __values$r(group)), group_2_1 = group_2.next(); !group_2_1.done; group_2_1 = group_2.next()) {\n var node = group_2_1.value;\n if (node) {\n size++;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (group_2_1 && !group_2_1.done && (_b = group_2.return)) _b.call(group_2);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"data\", {\n /**\n * Returns the array of data for the selected elements.\n */\n get: function () {\n var e_5, _a, e_6, _b;\n var data = new Array(this.size);\n var i = 0;\n try {\n for (var _c = __values$r(this.groups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var group = _d.value;\n try {\n for (var group_3 = (e_6 = void 0, __values$r(group)), group_3_1 = group_3.next(); !group_3_1.done; group_3_1 = group_3.next()) {\n var node = group_3_1.value;\n if (node) {\n data[i++] = node.datum;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (group_3_1 && !group_3_1.done && (_b = group_3.return)) _b.call(group_3);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return data;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"enter\", {\n get: function () {\n return new Selection(this.enterGroups ? this.enterGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"exit\", {\n get: function () {\n return new Selection(this.exitGroups ? this.exitGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the given value to each selected node and returns this selection\n * with its {@link GDatum} type changed to the type of the given value.\n * This method doesn't compute a join and doesn't affect indexes or the enter and exit selections.\n * This method can also be used to clear bound data.\n * @param value\n */\n Selection.prototype.setDatum = function (value) {\n return this.each(function (node) {\n node.datum = value;\n });\n };\n Object.defineProperty(Selection.prototype, \"datum\", {\n /**\n * Returns the bound datum for the first non-null element in the selection.\n * This is generally useful only if you know the selection contains exactly one element.\n */\n get: function () {\n var node = this.node();\n return node ? node.datum : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the specified array of values with the selected nodes, returning a new selection\n * that represents the _update_ selection: the nodes successfully bound to the values.\n * Also defines the {@link enter} and {@link exit} selections on the returned selection,\n * which can be used to add or remove the nodes to correspond to the new data.\n * The `values` is an array of values of a particular type, or a function that returns\n * an array of values for each group.\n * When values are assigned to the nodes, they are stored in the {@link Node.datum} property.\n * @param values\n * @param key\n */\n Selection.prototype.setData = function (values, key) {\n if (typeof values !== 'function') {\n var data_1 = values;\n values = function () { return data_1; };\n }\n var groups = this.groups;\n var parents = this.parents;\n var numGroups = groups.length;\n var updateGroups = new Array(numGroups);\n var enterGroups = new Array(numGroups);\n var exitGroups = new Array(numGroups);\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var parent_2 = parents[j];\n if (!parent_2) {\n throw new Error(\"Group #\" + j + \" has no parent: \" + group);\n }\n var groupSize = group.length;\n var data = values(parent_2, parent_2.datum, j, parents);\n var dataSize = data.length;\n var enterGroup = (enterGroups[j] = new Array(dataSize));\n var updateGroup = (updateGroups[j] = new Array(dataSize));\n var exitGroup = (exitGroups[j] = new Array(groupSize));\n if (key) {\n this.bindKey(parent_2, group, enterGroup, updateGroup, exitGroup, data, key);\n }\n else {\n this.bindIndex(parent_2, group, enterGroup, updateGroup, exitGroup, data);\n }\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0; i0 < dataSize; i0++) {\n var previous = enterGroup[i0];\n if (previous) {\n if (i0 >= i1) {\n i1 = i0 + 1;\n }\n var next = updateGroup[i1];\n while (!next && i1 < dataSize) {\n i1++;\n next = updateGroup[i1];\n }\n previous.next = next || null;\n }\n }\n }\n var result = new Selection(updateGroups, parents);\n result.enterGroups = enterGroups;\n result.exitGroups = exitGroups;\n return result;\n };\n Selection.prototype.bindIndex = function (parent, group, enter, update, exit, data) {\n var groupSize = group.length;\n var dataSize = data.length;\n var i = 0;\n for (; i < dataSize; i++) {\n var node = group[i];\n if (node) {\n node.datum = data[i];\n update[i] = node;\n }\n else {\n // more datums than group nodes\n enter[i] = new EnterNode$1(parent, data[i]);\n }\n }\n // more group nodes than datums\n for (; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n exit[i] = node;\n }\n }\n };\n Selection.prototype.bindKey = function (parent, group, enter, update, exit, data, key) {\n var groupSize = group.length;\n var dataSize = data.length;\n var keyValues = new Array(groupSize);\n var nodeByKeyValue = {};\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var keyValue = (keyValues[i] = Selection.keyPrefix + key(node, node.datum, i, group));\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n }\n else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n // Compute the key for each datum.\n // If there is a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (var i = 0; i < dataSize; i++) {\n var keyValue = Selection.keyPrefix + key(parent, data[i], i, data);\n var node = nodeByKeyValue[keyValue];\n if (node) {\n update[i] = node;\n node.datum = data[i];\n nodeByKeyValue[keyValue] = undefined;\n }\n else {\n enter[i] = new EnterNode$1(parent, data[i]);\n }\n }\n // Add any remaining nodes that were not bound to data to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n };\n Selection.keyPrefix = '$'; // Protect against keys like '__proto__'.\n return Selection;\n}());\n\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Line$1 = /** @class */ (function (_super) {\n __extends$2I(Line, _super);\n function Line() {\n var _this = _super.call(this) || this;\n _this.x1 = 0;\n _this.y1 = 0;\n _this.x2 = 0;\n _this.y2 = 0;\n _this.restoreOwnStyles();\n return _this;\n }\n Line.prototype.computeBBox = function () {\n return new BBox$1(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Line.prototype.isPointInPath = function (_x, _y) {\n return false;\n };\n Line.prototype.render = function (renderCtx) {\n var _a;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var x1 = this.x1;\n var y1 = this.y1;\n var x2 = this.x2;\n var y2 = this.y2;\n // Align to the pixel grid if the line is strictly vertical\n // or horizontal (but not both, i.e. a dot).\n if (x1 === x2) {\n var x = Math.round(x1) + (Math.floor(this.strokeWidth) % 2) / 2;\n x1 = x;\n x2 = x;\n }\n else if (y1 === y2) {\n var y = Math.round(y1) + (Math.floor(this.strokeWidth) % 2) / 2;\n y1 = y;\n y2 = y;\n }\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n this.fillStroke(ctx);\n (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Line.className = 'Line';\n Line.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n fill: undefined,\n strokeWidth: 1,\n });\n __decorate$1E([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"x1\", void 0);\n __decorate$1E([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"y1\", void 0);\n __decorate$1E([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"x2\", void 0);\n __decorate$1E([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"y2\", void 0);\n return Line;\n}(Shape$1));\n\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction ScenePathChangeDetection(opts) {\n var _a = opts || {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.MAJOR : _b, changeCb = _a.changeCb, convertor = _a.convertor;\n return SceneChangeDetection({ redraw: redraw, type: 'path', convertor: convertor, changeCb: changeCb });\n}\nvar Path$1 = /** @class */ (function (_super) {\n __extends$2H(Path, _super);\n function Path(renderOverride) {\n var _this = _super.call(this) || this;\n _this.renderOverride = renderOverride;\n /**\n * Declare a path to retain for later rendering and hit testing\n * using custom Path2D class. Think of it as a TypeScript version\n * of the native Path2D (with some differences) that works in all browsers.\n */\n _this.path = new Path2D$1();\n /**\n * The path only has to be updated when certain attributes change.\n * For example, if transform attributes (such as `translationX`)\n * are changed, we don't have to update the path. The `dirtyPath` flag\n * is how we keep track if the path has to be updated or not.\n */\n _this._dirtyPath = true;\n return _this;\n }\n Object.defineProperty(Path.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.markDirty(this, RedrawType.MAJOR);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Path.prototype.checkPathDirty = function () {\n var _a, _b;\n if (this._dirtyPath) {\n return;\n }\n this.dirtyPath = this.path.isDirty() || (_b = (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.isDirty(), (_b !== null && _b !== void 0 ? _b : false));\n };\n Path.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n return this.path.closedPath && this.path.isPointInPath(point.x, point.y);\n };\n Path.prototype.isDirtyPath = function () {\n // Override point for more expensive dirty checks.\n };\n Path.prototype.updatePath = function () {\n // Override point for subclasses.\n };\n Path.prototype.render = function (renderCtx) {\n var _a, _b;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n if (this.dirtyPath || this.isDirtyPath()) {\n this.updatePath();\n this.dirtyPath = false;\n }\n if (this.clipPath) {\n ctx.save();\n if (this.clipMode === 'normal') {\n // Bound the shape rendered to the clipping path.\n this.clipPath.draw(ctx);\n ctx.clip();\n }\n if (this.renderOverride) {\n this.renderOverride(ctx);\n }\n else {\n this.path.draw(ctx);\n this.fillStroke(ctx);\n }\n if (this.clipMode === 'punch-out') {\n // Bound the shape rendered to outside the clipping path.\n this.clipPath.draw(ctx);\n ctx.clip();\n // Fallback values, but practically these should never be used.\n var _c = (_a = this.computeBBox(), (_a !== null && _a !== void 0 ? _a : {})), _d = _c.x, x = _d === void 0 ? -10000 : _d, _e = _c.y, y = _e === void 0 ? -10000 : _e, _f = _c.width, width = _f === void 0 ? 20000 : _f, _g = _c.height, height = _g === void 0 ? 20000 : _g;\n ctx.clearRect(x, y, width, height);\n }\n ctx.restore();\n }\n else if (this.renderOverride) {\n this.renderOverride(ctx);\n }\n else {\n this.path.draw(ctx);\n this.fillStroke(ctx);\n }\n (_b = this.fillShadow) === null || _b === void 0 ? void 0 : _b.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Path.className = 'Path';\n __decorate$1D([\n ScenePathChangeDetection()\n ], Path.prototype, \"clipPath\", void 0);\n __decorate$1D([\n ScenePathChangeDetection()\n ], Path.prototype, \"clipMode\", void 0);\n return Path;\n}(Shape$1));\n\nvar twoPi = Math.PI * 2;\n/**\n * Normalize the given angle to be in the [0, 2π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle360(radians) {\n radians %= twoPi;\n radians += twoPi;\n radians %= twoPi;\n return radians;\n}\nfunction normalizeAngle360Inclusive(radians) {\n radians %= twoPi;\n radians += twoPi;\n if (radians !== twoPi) {\n radians %= twoPi;\n }\n return radians;\n}\n/**\n * Normalize the given angle to be in the [-π, π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle180(radians) {\n radians %= twoPi;\n if (radians < -Math.PI) {\n radians += twoPi;\n }\n else if (radians >= Math.PI) {\n radians -= twoPi;\n }\n return radians;\n}\nfunction toRadians(degrees) {\n return (degrees / 180) * Math.PI;\n}\n\nfunction isEqual(a, b, epsilon) {\n if (epsilon === void 0) { epsilon = 1e-10; }\n return Math.abs(a - b) < epsilon;\n}\n/**\n * `Number.toFixed(n)` always formats a number so that it has `n` digits after the decimal point.\n * For example, `Number(0.00003427).toFixed(2)` returns `0.00`.\n * That's not very helpful, because all the meaningful information is lost.\n * In this case we would want the formatted value to have at least two significant digits: `0.000034`,\n * not two fraction digits.\n * @param value\n * @param fractionOrSignificantDigits\n */\nfunction toFixed(value, fractionOrSignificantDigits) {\n if (fractionOrSignificantDigits === void 0) { fractionOrSignificantDigits = 2; }\n var power = Math.floor(Math.log(Math.abs(value)) / Math.LN10);\n if (power >= 0 || !isFinite(power)) {\n return value.toFixed(fractionOrSignificantDigits); // fraction digits\n }\n return value.toFixed(Math.abs(power) - 1 + fractionOrSignificantDigits); // significant digits\n}\n/**\n * Returns the mathematically correct n modulus of m. For context, the JS % operator is remainder\n * NOT modulus, which is why this is needed.\n */\nfunction mod(n, m) {\n // https://stackoverflow.com/a/13163436\n var remain = n % m;\n return remain >= 0 ? remain : remain + m;\n}\n\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ArcType;\n(function (ArcType) {\n ArcType[ArcType[\"Open\"] = 0] = \"Open\";\n ArcType[ArcType[\"Chord\"] = 1] = \"Chord\";\n ArcType[ArcType[\"Round\"] = 2] = \"Round\";\n})(ArcType || (ArcType = {}));\n/**\n * Elliptical arc node.\n */\nvar Arc = /** @class */ (function (_super) {\n __extends$2G(Arc, _super);\n function Arc() {\n var _this = _super.call(this) || this;\n _this.centerX = 0;\n _this.centerY = 0;\n _this.radiusX = 10;\n _this.radiusY = 10;\n _this.startAngle = 0;\n _this.endAngle = Math.PI * 2;\n _this.counterClockwise = false;\n /**\n * The type of arc to render:\n * - {@link ArcType.Open} - end points of the arc segment are not connected (default)\n * - {@link ArcType.Chord} - end points of the arc segment are connected by a line segment\n * - {@link ArcType.Round} - each of the end points of the arc segment are connected\n * to the center of the arc\n * Arcs with {@link ArcType.Open} do not support hit testing, even if they have their\n * {@link Shape.fillStyle} set, because they are not closed paths. Hit testing support\n * would require using two paths - one for rendering, another for hit testing - and there\n * doesn't seem to be a compelling reason to do that, when one can just use {@link ArcType.Chord}\n * to create a closed path.\n */\n _this.type = ArcType.Open;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Arc.prototype, \"fullPie\", {\n get: function () {\n return isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n },\n enumerable: true,\n configurable: true\n });\n Arc.prototype.updatePath = function () {\n var path = this.path;\n path.clear(); // No need to recreate the Path, can simply clear the existing one.\n // This is much faster than the native Path2D implementation even though this `cubicArc`\n // method is pure TypeScript and actually produces the definition of an elliptical arc,\n // where you can specify two radii and rotation, while Path2D's `arc` method simply produces\n // a circular arc. Maybe it's due to the experimental nature of the Path2D class,\n // maybe it's because we have to create a new instance of it on each render, who knows...\n path.cubicArc(this.centerX, this.centerY, this.radiusX, this.radiusY, 0, this.startAngle, this.endAngle, this.counterClockwise ? 1 : 0);\n if (this.type === ArcType.Chord) {\n path.closePath();\n }\n else if (this.type === ArcType.Round && !this.fullPie) {\n path.lineTo(this.centerX, this.centerY);\n path.closePath();\n }\n };\n Arc.prototype.computeBBox = function () {\n // Only works with full arcs (circles) and untransformed ellipses.\n return new BBox$1(this.centerX - this.radiusX, this.centerY - this.radiusY, this.radiusX * 2, this.radiusY * 2);\n };\n Arc.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return (this.type !== ArcType.Open &&\n bbox.containsPoint(point.x, point.y) &&\n this.path.isPointInPath(point.x, point.y));\n };\n Arc.className = 'Arc';\n Arc.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n lineWidth: 1,\n fillStyle: null,\n });\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"centerX\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"centerY\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"radiusX\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"radiusY\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"startAngle\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"endAngle\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"counterClockwise\", void 0);\n __decorate$1C([\n ScenePathChangeDetection()\n ], Arc.prototype, \"type\", void 0);\n return Arc;\n}(Path$1));\n\nvar doOnceFlags$1 = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce$1(func, key) {\n if (doOnceFlags$1[key]) {\n return;\n }\n func();\n doOnceFlags$1[key] = true;\n}\n\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar t0$1 = new Date();\nvar t1$1 = new Date();\n/**\n * The interval methods don't mutate Date parameters.\n */\nvar TimeInterval$1 = /** @class */ (function () {\n function TimeInterval(floor, offset) {\n this._floor = floor;\n this._offset = offset;\n }\n /**\n * Returns a new date representing the latest interval boundary date before or equal to date.\n * For example, `day.floor(date)` typically returns 12:00 AM local time on the given date.\n * @param date\n */\n TimeInterval.prototype.floor = function (date) {\n date = new Date(+date);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the earliest interval boundary date after or equal to date.\n * @param date\n */\n TimeInterval.prototype.ceil = function (date) {\n date = new Date(+date - 1);\n this._floor(date);\n this._offset(date, 1);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the closest interval boundary date to date.\n * @param date\n */\n TimeInterval.prototype.round = function (date) {\n var d0 = this.floor(date);\n var d1 = this.ceil(date);\n var ms = +date;\n return ms - d0.getTime() < d1.getTime() - ms ? d0 : d1;\n };\n /**\n * Returns a new date equal to date plus step intervals.\n * @param date\n * @param step\n */\n TimeInterval.prototype.offset = function (date, step) {\n if (step === void 0) { step = 1; }\n date = new Date(+date);\n this._offset(date, Math.floor(step));\n return date;\n };\n /**\n * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).\n * @param start\n * @param stop\n * @param step\n */\n TimeInterval.prototype.range = function (start, stop, step) {\n if (step === void 0) { step = 1; }\n var range = [];\n start = this.ceil(start);\n step = Math.floor(step);\n if (start > stop || step <= 0) {\n return range;\n }\n var previous;\n do {\n previous = new Date(+start);\n range.push(previous);\n this._offset(start, step);\n this._floor(start);\n } while (previous < start && start < stop);\n return range;\n };\n // Returns an interval that is a subset of this interval.\n // For example, to create an interval that return 1st, 11th, 21st and 31st of each month:\n // day.filter(date => (date.getDate() - 1) % 10 === 0)\n TimeInterval.prototype.filter = function (test) {\n var _this = this;\n var floor = function (date) {\n if (date >= date) {\n _this._floor(date);\n while (!test(date)) {\n date.setTime(date.getTime() - 1);\n _this._floor(date);\n }\n }\n return date;\n };\n var offset = function (date, step) {\n if (date >= date) {\n if (step < 0) {\n while (++step <= 0) {\n do {\n _this._offset(date, -1);\n } while (!test(date));\n }\n }\n else {\n while (--step >= 0) {\n do {\n _this._offset(date, 1);\n } while (!test(date));\n }\n }\n }\n return date;\n };\n return new TimeInterval(floor, offset);\n };\n return TimeInterval;\n}());\nvar CountableTimeInterval$1 = /** @class */ (function (_super) {\n __extends$2F(CountableTimeInterval, _super);\n function CountableTimeInterval(floor, offset, count, field) {\n var _this = _super.call(this, floor, offset) || this;\n _this._count = count;\n _this._field = field;\n return _this;\n }\n /**\n * Returns the number of interval boundaries after start (exclusive) and before or equal to end (inclusive).\n * @param start\n * @param end\n */\n CountableTimeInterval.prototype.count = function (start, end) {\n t0$1.setTime(+start);\n t1$1.setTime(+end);\n this._floor(t0$1);\n this._floor(t1$1);\n return Math.floor(this._count(t0$1, t1$1));\n };\n /**\n * Returns a filtered view of this interval representing every step'th date.\n * The meaning of step is dependent on this interval’s parent interval as defined by the `field` function.\n * @param step\n */\n CountableTimeInterval.prototype.every = function (step) {\n var _this = this;\n var result;\n step = Math.floor(step);\n if (isFinite(step) && step > 0) {\n if (step > 1) {\n var field_1 = this._field;\n if (field_1) {\n result = this.filter(function (d) { return field_1(d) % step === 0; });\n }\n else {\n result = this.filter(function (d) { return _this.count(0, d) % step === 0; });\n }\n }\n else {\n result = this;\n }\n }\n return result;\n };\n return CountableTimeInterval;\n}(TimeInterval$1));\n\n/**\n * Constants to declare the expected nominal zIndex for all types of layer in chart rendering.\n */\nvar Layers;\n(function (Layers) {\n Layers[Layers[\"SERIES_BACKGROUND_ZINDEX\"] = -10] = \"SERIES_BACKGROUND_ZINDEX\";\n Layers[Layers[\"AXIS_GRIDLINES_ZINDEX\"] = 0] = \"AXIS_GRIDLINES_ZINDEX\";\n Layers[Layers[\"SERIES_CROSSLINE_RANGE_ZINDEX\"] = 10] = \"SERIES_CROSSLINE_RANGE_ZINDEX\";\n Layers[Layers[\"AXIS_ZINDEX\"] = 20] = \"AXIS_ZINDEX\";\n Layers[Layers[\"SERIES_LAYER_ZINDEX\"] = 500] = \"SERIES_LAYER_ZINDEX\";\n Layers[Layers[\"SERIES_LABEL_ZINDEX\"] = 1000] = \"SERIES_LABEL_ZINDEX\";\n Layers[Layers[\"SERIES_CROSSLINE_LINE_ZINDEX\"] = 2500] = \"SERIES_CROSSLINE_LINE_ZINDEX\";\n Layers[Layers[\"LEGEND_ZINDEX\"] = 3000] = \"LEGEND_ZINDEX\";\n})(Layers || (Layers = {}));\n\nfunction circleRectOverlap(c, x, y, w, h) {\n // Find closest horizontal and vertical edges.\n var edgeX = c.x < x ? x : c.x > x + w ? x + w : c.x;\n var edgeY = c.y < y ? y : c.y > y + h ? y + h : c.y;\n // Find distance to closest edges.\n var dx = c.x - edgeX;\n var dy = c.y - edgeY;\n var d = Math.sqrt(dx * dx + dy * dy);\n return d <= c.size * 0.5;\n}\nfunction rectRectOverlap(r1, x2, y2, w2, h2) {\n var xOverlap = r1.x + r1.width > x2 && r1.x < x2 + w2;\n var yOverlap = r1.y + r1.height > y2 && r1.y < y2 + h2;\n return xOverlap && yOverlap;\n}\nfunction rectContainsRect(r1, r2x, r2y, r2w, r2h) {\n return r2x + r2w < r1.x + r1.width && r2x > r1.x && r2y > r1.y && r2y + r2h < r1.y + r1.height;\n}\nfunction isPointLabelDatum(x) {\n return x != null && typeof x.point === 'object' && typeof x.label === 'object';\n}\n/**\n * @param data Points and labels for one or more series. The order of series determines label placement precedence.\n * @param bounds Bounds to fit the labels into. If a label can't be fully contained, it doesn't fit.\n * @returns Placed labels for the given series (in the given order).\n */\nfunction placeLabels(data, bounds, padding) {\n if (padding === void 0) { padding = 5; }\n var result = [];\n data = data.map(function (d) { return d.slice().sort(function (a, b) { return b.point.size - a.point.size; }); });\n for (var j = 0; j < data.length; j++) {\n var labels = (result[j] = []);\n var datum = data[j];\n if (!(datum && datum.length && datum[0].label)) {\n continue;\n }\n var _loop_1 = function (i, ln) {\n var d = datum[i];\n var l = d.label;\n var r = d.point.size * 0.5;\n var x = d.point.x - l.width * 0.5;\n var y = d.point.y - r - l.height - padding;\n var width = l.width, height = l.height;\n var withinBounds = !bounds || rectContainsRect(bounds, x, y, width, height);\n if (!withinBounds) {\n return \"continue\";\n }\n var overlapPoints = data.some(function (datum) {\n return datum.some(function (d) { return circleRectOverlap(d.point, x, y, width, height); });\n });\n if (overlapPoints) {\n return \"continue\";\n }\n var overlapLabels = result.some(function (labels) { return labels.some(function (l) { return rectRectOverlap(l, x, y, width, height); }); });\n if (overlapLabels) {\n return \"continue\";\n }\n labels.push({\n index: i,\n text: l.text,\n x: x,\n y: y,\n width: width,\n height: height,\n datum: d,\n });\n };\n for (var i = 0, ln = datum.length; i < ln; i++) {\n _loop_1(i, ln);\n }\n }\n return result;\n}\nfunction axisLabelsOverlap(data, padding) {\n var result = [];\n var _loop_2 = function (i) {\n var datum = data[i];\n var _a = datum.point, x = _a.x, y = _a.y, _b = datum.label, width = _b.width, height = _b.height, text = _b.text;\n width += (padding !== null && padding !== void 0 ? padding : 0);\n height += (padding !== null && padding !== void 0 ? padding : 0);\n var overlapLabels = result.some(function (l) {\n var overlap = rectRectOverlap(l, x, y, width, height);\n return overlap;\n });\n if (overlapLabels) {\n return { value: true };\n }\n result.push({\n index: i,\n text: text,\n x: x,\n y: y,\n width: width,\n height: height,\n datum: datum,\n });\n };\n for (var i = 0; i < data.length; i++) {\n var state_1 = _loop_2(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return false;\n}\n\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$H = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$o = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$H(arguments[i]));\n return ar;\n};\nvar __values$q = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar TICK_COUNT = predicateWithMessage(function (v, ctx) { return NUMBER(0)(v, ctx) || v instanceof TimeInterval$1; }, \"expecting a tick count Number value or, for a time axis, a Time Interval such as 'agCharts.time.month'\");\nvar OPT_TICK_COUNT = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, TICK_COUNT); }, \"expecting an optional tick count Number value or, for a time axis, a Time Interval such as 'agCharts.time.month'\");\nvar GRID_STYLE_KEYS = ['stroke', 'lineDash'];\nvar GRID_STYLE = predicateWithMessage(ARRAY(undefined, function (o) {\n for (var key in o) {\n if (!GRID_STYLE_KEYS.includes(key)) {\n return false;\n }\n }\n return true;\n}), \"expecting an Array of objects with gridline style properties such as 'stroke' and 'lineDash'\");\nvar Tags;\n(function (Tags) {\n Tags[Tags[\"Tick\"] = 0] = \"Tick\";\n Tags[Tags[\"GridLine\"] = 1] = \"GridLine\";\n})(Tags || (Tags = {}));\nvar AxisLine = /** @class */ (function () {\n function AxisLine() {\n this.width = 1;\n this.color = 'rgba(195, 195, 195, 1)';\n }\n __decorate$1B([\n Validate(NUMBER(0))\n ], AxisLine.prototype, \"width\", void 0);\n __decorate$1B([\n Validate(OPT_COLOR_STRING)\n ], AxisLine.prototype, \"color\", void 0);\n return AxisLine;\n}());\nvar AxisTick = /** @class */ (function () {\n function AxisTick() {\n /**\n * The line width to be used by axis ticks.\n */\n this.width = 1;\n /**\n * The line length to be used by axis ticks.\n */\n this.size = 6;\n /**\n * The color of the axis ticks.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make the ticks invisible.\n */\n this.color = 'rgba(195, 195, 195, 1)';\n /**\n * A hint of how many ticks to use (the exact number of ticks might differ),\n * a `TimeInterval` or a `CountableTimeInterval`.\n * For example:\n *\n * axis.tick.count = 5;\n * axis.tick.count = year;\n * axis.tick.count = month.every(6);\n */\n this.count = undefined;\n }\n __decorate$1B([\n Validate(NUMBER(0))\n ], AxisTick.prototype, \"width\", void 0);\n __decorate$1B([\n Validate(NUMBER(0))\n ], AxisTick.prototype, \"size\", void 0);\n __decorate$1B([\n Validate(OPT_COLOR_STRING)\n ], AxisTick.prototype, \"color\", void 0);\n __decorate$1B([\n Validate(OPT_TICK_COUNT)\n ], AxisTick.prototype, \"count\", void 0);\n return AxisTick;\n}());\nvar AxisLabel = /** @class */ (function () {\n function AxisLabel() {\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n /**\n * The padding between the labels and the ticks.\n */\n this.padding = 5;\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n this.color = 'rgba(87, 87, 87, 1)';\n /**\n * Custom label rotation in degrees.\n * Labels are rendered perpendicular to the axis line by default.\n * Or parallel to the axis line, if the {@link parallel} is set to `true`.\n * The value of this config is used as the angular offset/deflection\n * from the default rotation.\n */\n this.rotation = undefined;\n /**\n * If specified and axis labels may collide, they are rotated to reduce collisions. If the\n * `rotation` property is specified, it takes precedence.\n */\n this.autoRotate = undefined;\n /**\n * Rotation angle to use when autoRotate is applied.\n */\n this.autoRotateAngle = 335;\n /**\n * By default labels and ticks are positioned to the left of the axis line.\n * `true` positions the labels to the right of the axis line.\n * However, if the axis is rotated, it's easier to think in terms\n * of this side or the opposite side, rather than left and right.\n * We use the term `mirror` for conciseness, although it's not\n * true mirroring - for example, when a label is rotated, so that\n * it is inclined at the 45 degree angle, text flowing from north-west\n * to south-east, ending at the tick to the left of the axis line,\n * and then we set this config to `true`, the text will still be flowing\n * from north-west to south-east, _starting_ at the tick to the right\n * of the axis line.\n */\n this.mirrored = false;\n /**\n * Labels are rendered perpendicular to the axis line by default.\n * Setting this config to `true` makes labels render parallel to the axis line\n * and center aligns labels' text at the ticks.\n */\n this.parallel = false;\n /**\n * In case {@param value} is a number, the {@param fractionDigits} parameter will\n * be provided as well. The `fractionDigits` corresponds to the number of fraction\n * digits used by the tick step. For example, if the tick step is `0.0005`,\n * the `fractionDigits` is 4.\n */\n this.formatter = undefined;\n this.format = undefined;\n }\n __decorate$1B([\n Validate(OPT_FONT_STYLE)\n ], AxisLabel.prototype, \"fontStyle\", void 0);\n __decorate$1B([\n Validate(OPT_FONT_WEIGHT)\n ], AxisLabel.prototype, \"fontWeight\", void 0);\n __decorate$1B([\n Validate(NUMBER(1))\n ], AxisLabel.prototype, \"fontSize\", void 0);\n __decorate$1B([\n Validate(STRING)\n ], AxisLabel.prototype, \"fontFamily\", void 0);\n __decorate$1B([\n Validate(NUMBER(0))\n ], AxisLabel.prototype, \"padding\", void 0);\n __decorate$1B([\n Validate(OPT_COLOR_STRING)\n ], AxisLabel.prototype, \"color\", void 0);\n __decorate$1B([\n Validate(OPT_NUMBER(-360, 360))\n ], AxisLabel.prototype, \"rotation\", void 0);\n __decorate$1B([\n Validate(OPT_BOOLEAN)\n ], AxisLabel.prototype, \"autoRotate\", void 0);\n __decorate$1B([\n Validate(NUMBER(-360, 360))\n ], AxisLabel.prototype, \"autoRotateAngle\", void 0);\n __decorate$1B([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"mirrored\", void 0);\n __decorate$1B([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"parallel\", void 0);\n __decorate$1B([\n Validate(OPT_STRING)\n ], AxisLabel.prototype, \"format\", void 0);\n return AxisLabel;\n}());\n/**\n * A general purpose linear axis with no notion of orientation.\n * The axis is always rendered vertically, with horizontal labels positioned to the left\n * of the axis line by default. The axis can be {@link rotation | rotated} by an arbitrary angle,\n * so that it can be used as a top, right, bottom, left, radial or any other kind\n * of linear axis.\n * The generic `D` parameter is the type of the domain of the axis' scale.\n * The output range of the axis' scale is always numeric (screen coordinates).\n */\nvar Axis = /** @class */ (function () {\n function Axis(scale) {\n this.id = createId$1(this);\n this.nice = true;\n this.dataDomain = [];\n this.axisGroup = new Group$1({ name: this.id + \"-axis\", layer: true, zIndex: Layers.AXIS_ZINDEX });\n this.crossLineGroup = new Group$1({ name: this.id + \"-CrossLines\" });\n this.lineGroup = this.axisGroup.appendChild(new Group$1({ name: this.id + \"-Line\" }));\n this.tickGroup = this.axisGroup.appendChild(new Group$1({ name: this.id + \"-Tick\" }));\n this.titleGroup = this.axisGroup.appendChild(new Group$1({ name: this.id + \"-Title\" }));\n this.tickGroupSelection = Selection$1.select(this.tickGroup).selectAll();\n this.lineNode = this.lineGroup.appendChild(new Line$1());\n this.gridlineGroup = new Group$1({\n name: this.id + \"-gridline\",\n layer: true,\n zIndex: Layers.AXIS_GRIDLINES_ZINDEX,\n });\n this.gridlineGroupSelection = Selection$1.select(this.gridlineGroup).selectAll();\n this._crossLines = [];\n this.line = new AxisLine();\n this.tick = new AxisTick();\n this.label = new AxisLabel();\n this.translation = { x: 0, y: 0 };\n this.rotation = 0; // axis rotation angle in degrees\n this.requestedRange = [0, 1];\n this._visibleRange = [0, 1];\n this._title = undefined;\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n * In case {@link radialGrid} is `true`, the value is interpreted as an angle\n * (in degrees).\n */\n this._gridLength = 0;\n /**\n * The array of styles to cycle through when rendering grid lines.\n * For example, use two {@link GridStyle} objects for alternating styles.\n * Contains only one {@link GridStyle} object by default, meaning all grid lines\n * have the same style.\n */\n this.gridStyle = [\n {\n stroke: 'rgba(219, 219, 219, 1)',\n lineDash: [4, 2],\n },\n ];\n /**\n * `false` - render grid as lines of {@link gridLength} that extend the ticks\n * on the opposite side of the axis\n * `true` - render grid as concentric circles that go through the ticks\n */\n this._radialGrid = false;\n this.fractionDigits = 0;\n /**\n * The distance between the grid ticks and the axis ticks.\n */\n this.gridPadding = 0;\n this.thickness = 0;\n this._scale = scale;\n this.refreshScale();\n }\n Object.defineProperty(Axis.prototype, \"scale\", {\n get: function () {\n return this._scale;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"crossLines\", {\n get: function () {\n return this._crossLines;\n },\n set: function (value) {\n var _this = this;\n var _a, _b;\n (_a = this._crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) { return _this.detachCrossLine(crossLine); });\n this._crossLines = value;\n (_b = this._crossLines) === null || _b === void 0 ? void 0 : _b.forEach(function (crossLine) {\n _this.attachCrossLine(crossLine);\n _this.initCrossLine(crossLine);\n });\n },\n enumerable: true,\n configurable: true\n });\n Axis.prototype.attachCrossLine = function (crossLine) {\n this.crossLineGroup.appendChild(crossLine.group);\n };\n Axis.prototype.detachCrossLine = function (crossLine) {\n this.crossLineGroup.removeChild(crossLine.group);\n };\n /**\n * Meant to be overridden in subclasses to provide extra context the the label formatter.\n * The return value of this function will be passed to the laber.formatter as the `axis` parameter.\n */\n Axis.prototype.getMeta = function () {\n // Override point for subclasses.\n };\n Axis.prototype.refreshScale = function () {\n var _this = this;\n var _a;\n this.requestedRange = this.scale.range.slice();\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n _this.initCrossLine(crossLine);\n });\n };\n Axis.prototype.updateRange = function () {\n var _a;\n var _b = this, rr = _b.requestedRange, vr = _b.visibleRange, scale = _b.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n scale.range = [start, start + span];\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n crossLine.clippedRange = [rr[0], rr[1]];\n });\n };\n /**\n * Checks if a point or an object is in range.\n * @param x A point (or object's starting point).\n * @param width Object's width.\n * @param tolerance Expands the range on both ends by this amount.\n */\n Axis.prototype.inRange = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n return this.inRangeEx(x, width, tolerance) === 0;\n };\n Axis.prototype.inRangeEx = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n var range = this.range;\n // Account for inverted ranges, for example [500, 100] as well as [100, 500]\n var min = Math.min(range[0], range[1]);\n var max = Math.max(range[0], range[1]);\n if (x + width < min - tolerance) {\n return -1; // left of range\n }\n if (x > max + tolerance) {\n return 1; // right of range\n }\n return 0; // in range\n };\n Object.defineProperty(Axis.prototype, \"range\", {\n get: function () {\n return this.requestedRange;\n },\n set: function (value) {\n this.requestedRange = value.slice();\n this.updateRange();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"visibleRange\", {\n get: function () {\n return this._visibleRange.slice();\n },\n set: function (value) {\n if (value && value.length === 2) {\n var _a = __read$H(value, 2), min = _a[0], max = _a[1];\n min = Math.max(0, min);\n max = Math.min(1, max);\n min = Math.min(min, max);\n max = Math.max(min, max);\n this._visibleRange = [min, max];\n this.updateRange();\n }\n },\n enumerable: true,\n configurable: true\n });\n Axis.prototype.onLabelFormatChange = function (ticks, format) {\n var scale = this.scale;\n if (format && scale && scale.tickFormat) {\n try {\n this.labelFormatter = scale.tickFormat({\n ticks: ticks,\n count: ticks.length,\n specifier: format,\n });\n }\n catch (e) {\n this.labelFormatter = undefined;\n doOnce$1(function () {\n return console.warn(\"AG Charts - the axis label format string \" + format + \" is invalid. No formatting will be applied\");\n }, \"invalid axis label format string \" + format);\n }\n }\n else {\n this.labelFormatter = undefined;\n }\n };\n Object.defineProperty(Axis.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (value) {\n var oldTitle = this._title;\n if (oldTitle !== value) {\n if (oldTitle) {\n this.titleGroup.removeChild(oldTitle.node);\n }\n if (value) {\n value.node.rotation = -Math.PI / 2;\n this.titleGroup.appendChild(value.node);\n }\n this._title = value;\n // position title so that it doesn't briefly get rendered in the top left hand corner of the canvas before update is called.\n this.updateTitle({ ticks: this.scale.ticks(this.tick.count) });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n set: function (value) {\n var _this = this;\n var _a;\n // Was visible and now invisible, or was invisible and now visible.\n if ((this._gridLength && !value) || (!this._gridLength && value)) {\n this.gridlineGroupSelection = this.gridlineGroupSelection.remove().setData([]);\n }\n this._gridLength = value;\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n _this.initCrossLine(crossLine);\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"radialGrid\", {\n get: function () {\n return this._radialGrid;\n },\n set: function (value) {\n if (this._radialGrid !== value) {\n this._radialGrid = value;\n this.gridlineGroupSelection = this.gridlineGroupSelection.remove().setData([]);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n */\n Axis.prototype.update = function (primaryTickCount) {\n var _a, _b;\n this.calculateDomain();\n var _c = this, scale = _c.scale, gridLength = _c.gridLength, tick = _c.tick, label = _c.label, requestedRange = _c.requestedRange;\n var requestedRangeMin = Math.min.apply(Math, __spread$o(requestedRange));\n var requestedRangeMax = Math.max.apply(Math, __spread$o(requestedRange));\n var rotation = toRadians(this.rotation);\n var parallelLabels = label.parallel;\n var anySeriesActive = this.isAnySeriesActive();\n // The side of the axis line to position the labels on.\n // -1 = left (default)\n // 1 = right\n var sideFlag = label.mirrored ? 1 : -1;\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var parallelFlipRotation = normalizeAngle360(rotation);\n var regularFlipRotation = normalizeAngle360(rotation - Math.PI / 2);\n var halfBandwidth = (scale.bandwidth || 0) / 2;\n this.updatePosition();\n this.updateLine();\n var i = 0;\n var labelOverlap = true;\n var ticks = [];\n var defaultTickCount = 10;\n var tickCount = this.tick.count !== undefined;\n var nice = this.nice && scale.nice;\n var continuous = scale instanceof ContinuousScale$1;\n var secondaryAxis = primaryTickCount !== undefined;\n var calculatePrimaryDomain = !secondaryAxis && !tickCount && nice;\n scale.domain = this.dataDomain;\n if (nice) {\n scale.nice(this.tick.count);\n }\n while (labelOverlap) {\n var unchanged = true;\n var _loop_1 = function () {\n if (i >= defaultTickCount) {\n return \"break\";\n }\n if (calculatePrimaryDomain) {\n // `scale.nice` mutates `scale.domain` based on new tick count\n scale.domain = this_1.dataDomain;\n scale.nice(defaultTickCount - i);\n }\n var prevTicks = ticks;\n // filter generated ticks if this is a category axis or this.tick.count is specified\n var filteredTicks = (continuous && !tickCount) || i === 0 ? undefined : ticks.filter(function (_, i) { return i % 2 === 0; });\n var secondaryAxisTicks = void 0;\n if (secondaryAxis) {\n // `updateSecondaryAxisTicks` mutates `scale.domain` based on `primaryTickCount`\n secondaryAxisTicks = this_1.updateSecondaryAxisTicks(primaryTickCount);\n }\n ticks = (_a = (filteredTicks !== null && filteredTicks !== void 0 ? filteredTicks : secondaryAxisTicks), (_a !== null && _a !== void 0 ? _a : this_1.scale.ticks(this_1.tick.count, i)));\n this_1.updateSelections({\n halfBandwidth: halfBandwidth,\n gridLength: gridLength,\n ticks: ticks,\n });\n if (!secondaryAxis && ticks.length > 0) {\n primaryTickCount = ticks.length;\n }\n unchanged = ticks.every(function (t, i) { return t === prevTicks[i]; });\n i++;\n };\n var this_1 = this;\n while (unchanged) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n if (unchanged) {\n break;\n }\n // When the scale domain or the ticks change, the label format may change\n this.onLabelFormatChange(ticks, this.label.format);\n var _d = this.updateLabels({\n parallelFlipRotation: parallelFlipRotation,\n regularFlipRotation: regularFlipRotation,\n sideFlag: sideFlag,\n tickLineGroupSelection: this.tickGroupSelection,\n ticks: ticks,\n }), labelData = _d.labelData, rotated = _d.rotated;\n var labelPadding = rotated ? 0 : 10;\n labelOverlap = axisLabelsOverlap(labelData, labelPadding);\n }\n this.updateGridLines({\n gridLength: gridLength,\n halfBandwidth: halfBandwidth,\n sideFlag: sideFlag,\n });\n var anyTickVisible = false;\n var visibleFn = function (node) {\n var min = Math.floor(requestedRangeMin);\n var max = Math.ceil(requestedRangeMax);\n var visible = min !== max && node.translationY >= min && node.translationY <= max;\n anyTickVisible = visible || anyTickVisible;\n return visible;\n };\n var _e = this, gridlineGroupSelection = _e.gridlineGroupSelection, tickGroupSelection = _e.tickGroupSelection;\n gridlineGroupSelection.attrFn('visible', visibleFn);\n tickGroupSelection.attrFn('visible', visibleFn);\n this.tickGroup.visible = anyTickVisible;\n this.gridlineGroup.visible = anyTickVisible;\n (_b = this.crossLines) === null || _b === void 0 ? void 0 : _b.forEach(function (crossLine) {\n crossLine.sideFlag = -sideFlag;\n crossLine.direction = rotation === -Math.PI / 2 ? ChartAxisDirection.X : ChartAxisDirection.Y;\n crossLine.label.parallel =\n crossLine.label.parallel !== undefined ? crossLine.label.parallel : parallelLabels;\n crossLine.parallelFlipRotation = parallelFlipRotation;\n crossLine.regularFlipRotation = regularFlipRotation;\n crossLine.update(anySeriesActive);\n });\n this.updateTitle({ ticks: ticks });\n tickGroupSelection\n .selectByTag(Tags.Tick)\n .each(function (line) {\n line.strokeWidth = tick.width;\n line.stroke = tick.color;\n line.visible = anyTickVisible;\n })\n .attr('x1', sideFlag * tick.size)\n .attr('x2', 0)\n .attr('y1', 0)\n .attr('y2', 0);\n return primaryTickCount;\n };\n Axis.prototype.calculateDomain = function () {\n // Placeholder for subclasses to override.\n };\n Axis.prototype.updatePosition = function () {\n var _a = this, label = _a.label, axisGroup = _a.axisGroup, gridlineGroup = _a.gridlineGroup, crossLineGroup = _a.crossLineGroup, translation = _a.translation, gridlineGroupSelection = _a.gridlineGroupSelection, gridPadding = _a.gridPadding, gridLength = _a.gridLength;\n var rotation = toRadians(this.rotation);\n var sideFlag = label.mirrored ? 1 : -1;\n var translationX = Math.floor(translation.x);\n var translationY = Math.floor(translation.y);\n crossLineGroup.translationX = translationX;\n crossLineGroup.translationY = translationY;\n crossLineGroup.rotation = rotation;\n axisGroup.translationX = translationX;\n axisGroup.translationY = translationY;\n axisGroup.rotation = rotation;\n gridlineGroup.translationX = translationX;\n gridlineGroup.translationY = translationY;\n gridlineGroup.rotation = rotation;\n gridlineGroupSelection.selectByTag(Tags.GridLine).each(function (line) {\n line.x1 = gridPadding;\n line.x2 = -sideFlag * gridLength + gridPadding;\n line.y1 = 0;\n line.y2 = 0;\n });\n };\n Axis.prototype.updateSecondaryAxisTicks = function (_primaryTickCount) {\n throw new Error('AG Charts - unexpected call to updateSecondaryAxisTicks() - check axes configuration.');\n };\n Axis.prototype.updateTickGroupSelection = function (_a) {\n var data = _a.data;\n var updateAxis = this.tickGroupSelection.setData(data);\n updateAxis.exit.remove();\n var enterAxis = updateAxis.enter.append(Group$1);\n // Line auto-snaps to pixel grid if vertical or horizontal.\n enterAxis.append(Line$1).each(function (node) { return (node.tag = Tags.Tick); });\n enterAxis.append(Text$1);\n return updateAxis.merge(enterAxis);\n };\n Axis.prototype.updateGridLineGroupSelection = function (_a) {\n var gridLength = _a.gridLength, data = _a.data;\n var updateGridlines = this.gridlineGroupSelection.setData(gridLength ? data : []);\n updateGridlines.exit.remove();\n var gridlineGroupSelection = updateGridlines;\n if (gridLength) {\n var tagFn = function (node) { return (node.tag = Tags.GridLine); };\n var enterGridline = updateGridlines.enter.append(Group$1);\n if (this.radialGrid) {\n enterGridline.append(Arc).each(tagFn);\n }\n else {\n enterGridline.append(Line$1).each(tagFn);\n }\n gridlineGroupSelection = updateGridlines.merge(enterGridline);\n }\n return gridlineGroupSelection;\n };\n Axis.prototype.updateSelections = function (_a) {\n var ticks = _a.ticks, halfBandwidth = _a.halfBandwidth, gridLength = _a.gridLength;\n var scale = this.scale;\n var data = ticks.map(function (t) { return ({ tick: t, translationY: scale.convert(t) + halfBandwidth }); });\n var gridlineGroupSelection = this.updateGridLineGroupSelection({ gridLength: gridLength, data: data });\n var tickGroupSelection = this.updateTickGroupSelection({ data: data });\n // We need raw `translationY` values on `datum` for accurate label collision detection in axes.update()\n // But node `translationY` values must be rounded to get pixel grid alignment\n gridlineGroupSelection.attrFn('translationY', function (_, datum) { return Math.round(datum.translationY); });\n tickGroupSelection.attrFn('translationY', function (_, datum) { return Math.round(datum.translationY); });\n this.tickGroupSelection = tickGroupSelection;\n this.gridlineGroupSelection = gridlineGroupSelection;\n };\n Axis.prototype.updateGridLines = function (_a) {\n var gridLength = _a.gridLength, halfBandwidth = _a.halfBandwidth, sideFlag = _a.sideFlag;\n var _b = this, gridStyle = _b.gridStyle, scale = _b.scale, tick = _b.tick, gridPadding = _b.gridPadding;\n if (gridLength && gridStyle.length) {\n var styleCount_1 = gridStyle.length;\n var gridLines = void 0;\n if (this.radialGrid) {\n var angularGridLength_1 = normalizeAngle360Inclusive(toRadians(gridLength));\n gridLines = this.gridlineGroupSelection.selectByTag(Tags.GridLine).each(function (arc, datum) {\n var radius = Math.round(scale.convert(datum) + halfBandwidth);\n arc.centerX = 0;\n arc.centerY = scale.range[0] - radius;\n arc.endAngle = angularGridLength_1;\n arc.radiusX = radius;\n arc.radiusY = radius;\n });\n }\n else {\n gridLines = this.gridlineGroupSelection.selectByTag(Tags.GridLine).each(function (line) {\n line.x1 = gridPadding;\n line.x2 = -sideFlag * gridLength + gridPadding;\n line.y1 = 0;\n line.y2 = 0;\n line.visible = Math.abs(line.parent.translationY - scale.range[0]) > 1;\n });\n }\n gridLines.each(function (gridLine, _, index) {\n var style = gridStyle[index % styleCount_1];\n gridLine.stroke = style.stroke;\n gridLine.strokeWidth = tick.width;\n gridLine.lineDash = style.lineDash;\n gridLine.fill = undefined;\n });\n }\n };\n Axis.prototype.updateLabels = function (_a) {\n var _this = this;\n var ticks = _a.ticks, tickLineGroupSelection = _a.tickLineGroupSelection, sideFlag = _a.sideFlag, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation;\n var _b = this, label = _b.label, parallelLabels = _b.label.parallel, scale = _b.scale, tick = _b.tick, requestedRange = _b.requestedRange;\n var requestedRangeMin = Math.min.apply(Math, __spread$o(requestedRange));\n var requestedRangeMax = Math.max.apply(Math, __spread$o(requestedRange));\n var labelAutoRotation = 0;\n var labelRotation = label.rotation ? normalizeAngle360(toRadians(label.rotation)) : 0;\n var parallelFlipFlag = !labelRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI ? -1 : 1;\n // Flip if the axis rotation angle is in the top hemisphere.\n var regularFlipFlag = !labelRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI ? -1 : 1;\n // `ticks instanceof NumericTicks` doesn't work here, so we feature detect.\n this.fractionDigits = ticks.fractionDigits >= 0 ? ticks.fractionDigits : 0;\n // Update properties that affect the size of the axis labels and measure the labels\n var labelBboxes = new Map();\n var labelCount = 0;\n var halfFirstLabelLength = false;\n var halfLastLabelLength = false;\n var availableRange = requestedRangeMax - requestedRangeMin;\n var labelSelection = tickLineGroupSelection.selectByClass(Text$1).each(function (node, datum, index) {\n var tick = datum.tick;\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.text = _this.formatTickDatum(tick, index);\n var userHidden = node.text === '' || node.text == undefined;\n labelBboxes.set(index, userHidden ? null : node.computeBBox());\n if (userHidden) {\n return;\n }\n labelCount++;\n if (index === 0 && node.translationY === scale.range[0]) {\n halfFirstLabelLength = true; // first label protrudes axis line\n }\n else if (index === ticks.length - 1 && node.translationY === scale.range[1]) {\n halfLastLabelLength = true; // last label protrudes axis line\n }\n });\n var labelX = sideFlag * (tick.size + label.padding);\n var step = availableRange / labelCount;\n var rotateLabels = function (bboxes, parallelLabels) {\n var e_1, _a;\n var rotate = false;\n var lastIdx = bboxes.size - 1;\n var padding = 12;\n try {\n for (var _b = __values$q(bboxes.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$H(_c.value, 2), i = _d[0], bbox = _d[1];\n if (bbox == null) {\n continue;\n }\n var divideBy = (i === 0 && halfFirstLabelLength) || (i === lastIdx && halfLastLabelLength) ? 2 : 1;\n // When the labels are parallel to the axis line, use the width of the text to calculate the total length of all labels\n var length_1 = parallelLabels ? bbox.width / divideBy : bbox.height / divideBy;\n var lengthWithPadding = length_1 <= 0 ? 0 : length_1 + padding;\n if (lengthWithPadding > step) {\n rotate = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rotate;\n };\n var rotate = rotateLabels(labelBboxes, parallelLabels);\n if (label.rotation === undefined && label.autoRotate === true && rotate) {\n // When no user label rotation angle has been specified and the width of any label exceeds the average tick gap (`rotate` is `true`),\n // automatically rotate the labels\n labelAutoRotation = normalizeAngle360(toRadians(label.autoRotateAngle));\n }\n var autoRotation = parallelLabels ? (parallelFlipFlag * Math.PI) / 2 : regularFlipFlag === -1 ? Math.PI : 0;\n var labelTextBaseline = parallelLabels && !labelRotation ? (sideFlag * parallelFlipFlag === -1 ? 'hanging' : 'bottom') : 'middle';\n var alignFlag = (labelRotation > 0 && labelRotation <= Math.PI) || (labelAutoRotation > 0 && labelAutoRotation <= Math.PI)\n ? -1\n : 1;\n var labelTextAlign = parallelLabels\n ? labelRotation || labelAutoRotation\n ? sideFlag * alignFlag === -1\n ? 'end'\n : 'start'\n : 'center'\n : sideFlag * regularFlipFlag === -1\n ? 'end'\n : 'start';\n var labelData = [];\n var combinedRotation = autoRotation + labelRotation + labelAutoRotation;\n var labelRotationMatrix = new Matrix$1();\n if (combinedRotation) {\n Matrix$1.updateTransformMatrix(labelRotationMatrix, 1, 1, combinedRotation, 0, 0);\n }\n labelSelection.each(function (label, datum) {\n if (label.text === '' || label.text == undefined) {\n label.visible = false; // hide empty labels\n return;\n }\n label.textBaseline = labelTextBaseline;\n label.textAlign = labelTextAlign;\n label.x = labelX;\n label.rotationCenterX = labelX;\n label.rotation = combinedRotation;\n var userHidden = label.text === '' || label.text == undefined;\n if (userHidden) {\n return;\n }\n // Text.computeBBox() does not take into account any of the transformations that have been applied to the label nodes, only the width and height are useful.\n // Rather than taking into account all transformations including those of parent nodes which would be the result of `computeTransformedBBox()`, giving the x and y in the entire axis coordinate space,\n // take into account only the rotation and translation applied to individual label nodes to get the x y coordinates of the labels relative to each other\n // this makes label collision detection a lot simpler\n var bbox = label.computeBBox();\n var _a = bbox.width, width = _a === void 0 ? 0 : _a, _b = bbox.height, height = _b === void 0 ? 0 : _b;\n var translationY = datum.translationY;\n var translatedBBox = new BBox$1(labelX, translationY, 0, 0);\n labelRotationMatrix.transformBBox(translatedBBox, 0, bbox);\n var _c = bbox.x, x = _c === void 0 ? 0 : _c, _d = bbox.y, y = _d === void 0 ? 0 : _d;\n labelData.push({\n point: {\n x: x,\n y: y,\n size: 0,\n },\n label: {\n width: width,\n height: height,\n text: label.text,\n },\n });\n });\n return { labelData: labelData, rotated: !!(labelRotation || labelAutoRotation) };\n };\n Axis.prototype.updateLine = function () {\n // Render axis line.\n var _a = this, lineNode = _a.lineNode, requestedRange = _a.requestedRange;\n lineNode.x1 = 0;\n lineNode.x2 = 0;\n lineNode.y1 = requestedRange[0];\n lineNode.y2 = requestedRange[1];\n lineNode.strokeWidth = this.line.width;\n lineNode.stroke = this.line.color;\n lineNode.visible = true;\n };\n Axis.prototype.updateTitle = function (_a) {\n var ticks = _a.ticks;\n var _b;\n var _c = this, label = _c.label, rotation = _c.rotation, title = _c.title, lineNode = _c.lineNode, requestedRange = _c.requestedRange, tickGroup = _c.tickGroup, lineGroup = _c.lineGroup;\n if (!title) {\n return;\n }\n var titleVisible = false;\n if (title.enabled && lineNode.visible) {\n titleVisible = true;\n var sideFlag = label.mirrored ? 1 : -1;\n var parallelFlipRotation = normalizeAngle360(rotation);\n var padding = Caption.PADDING;\n var titleNode = title.node;\n var titleRotationFlag = sideFlag === -1 && parallelFlipRotation > Math.PI && parallelFlipRotation < Math.PI * 2 ? -1 : 1;\n titleNode.rotation = (titleRotationFlag * sideFlag * Math.PI) / 2;\n titleNode.x = Math.floor((titleRotationFlag * sideFlag * (requestedRange[0] + requestedRange[1])) / 2);\n var lineBBox = lineGroup.computeBBox();\n var bboxYDimension = rotation === 0 ? lineBBox.width : lineBBox.height;\n if (((_b = ticks) === null || _b === void 0 ? void 0 : _b.length) > 0) {\n var tickBBox = tickGroup.computeBBox();\n var tickWidth = rotation === 0 ? tickBBox.width : tickBBox.height;\n if (Math.abs(tickWidth) < Infinity) {\n bboxYDimension += tickWidth;\n }\n }\n if (sideFlag === -1) {\n titleNode.y = Math.floor(titleRotationFlag * (-padding - bboxYDimension));\n }\n else {\n titleNode.y = Math.floor(-padding - bboxYDimension);\n }\n titleNode.textBaseline = titleRotationFlag === 1 ? 'bottom' : 'top';\n }\n title.node.visible = titleVisible;\n };\n // For formatting (nice rounded) tick values.\n Axis.prototype.formatTickDatum = function (datum, index) {\n var _a = this, label = _a.label, labelFormatter = _a.labelFormatter, fractionDigits = _a.fractionDigits;\n var meta = this.getMeta();\n return label.formatter\n ? label.formatter({\n value: fractionDigits >= 0 ? datum : String(datum),\n index: index,\n fractionDigits: fractionDigits,\n formatter: labelFormatter,\n axis: meta,\n })\n : labelFormatter\n ? labelFormatter(datum)\n : typeof datum === 'number' && fractionDigits >= 0\n ? // the `datum` is a floating point number\n datum.toFixed(fractionDigits)\n : // the`datum` is an integer, a string or an object\n String(datum);\n };\n // For formatting arbitrary values between the ticks.\n Axis.prototype.formatDatum = function (datum) {\n return String(datum);\n };\n Axis.prototype.computeBBox = function () {\n return this.axisGroup.computeBBox();\n };\n Axis.prototype.initCrossLine = function (crossLine) {\n crossLine.scale = this.scale;\n crossLine.gridLength = this.gridLength;\n };\n Axis.prototype.isAnySeriesActive = function () {\n return false;\n };\n __decorate$1B([\n Validate(BOOLEAN)\n ], Axis.prototype, \"nice\", void 0);\n __decorate$1B([\n Validate(GRID_STYLE)\n ], Axis.prototype, \"gridStyle\", void 0);\n __decorate$1B([\n Validate(NUMBER(0))\n ], Axis.prototype, \"thickness\", void 0);\n return Axis;\n}());\n\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$G = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$n = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$G(arguments[i]));\n return ar;\n};\nvar ChartAxisDirection;\n(function (ChartAxisDirection) {\n ChartAxisDirection[\"X\"] = \"x\";\n ChartAxisDirection[\"Y\"] = \"y\";\n})(ChartAxisDirection || (ChartAxisDirection = {}));\nfunction flipChartAxisDirection(direction) {\n if (direction === ChartAxisDirection.X) {\n return ChartAxisDirection.Y;\n }\n else {\n return ChartAxisDirection.X;\n }\n}\nvar ChartAxisPosition;\n(function (ChartAxisPosition) {\n ChartAxisPosition[\"Top\"] = \"top\";\n ChartAxisPosition[\"Right\"] = \"right\";\n ChartAxisPosition[\"Bottom\"] = \"bottom\";\n ChartAxisPosition[\"Left\"] = \"left\";\n ChartAxisPosition[\"Angle\"] = \"angle\";\n ChartAxisPosition[\"Radius\"] = \"radius\";\n})(ChartAxisPosition || (ChartAxisPosition = {}));\nvar ChartAxis = /** @class */ (function (_super) {\n __extends$2E(ChartAxis, _super);\n function ChartAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.keys = [];\n _this.direction = ChartAxisDirection.Y;\n _this.boundSeries = [];\n _this.includeInvisibleDomains = false;\n _this._position = ChartAxisPosition.Left;\n return _this;\n }\n Object.defineProperty(ChartAxis.prototype, \"type\", {\n get: function () {\n return this.constructor.type || '';\n },\n enumerable: true,\n configurable: true\n });\n ChartAxis.prototype.getMeta = function () {\n return {\n id: this.id,\n direction: this.direction,\n boundSeries: this.boundSeries,\n };\n };\n ChartAxis.prototype.useCalculatedTickCount = function () {\n // We only want to use the new algorithm for number axes. Category axes don't use a\n // calculated or user-supplied tick-count, and time axes need special handling depending on\n // the time-range involved.\n return this.scale instanceof LinearScale$1;\n };\n Object.defineProperty(ChartAxis.prototype, \"position\", {\n get: function () {\n return this._position;\n },\n set: function (value) {\n if (this._position !== value) {\n this._position = value;\n switch (value) {\n case ChartAxisPosition.Top:\n this.direction = ChartAxisDirection.X;\n this.rotation = -90;\n this.label.mirrored = true;\n this.label.parallel = true;\n break;\n case ChartAxisPosition.Right:\n this.direction = ChartAxisDirection.Y;\n this.rotation = 0;\n this.label.mirrored = true;\n this.label.parallel = false;\n break;\n case ChartAxisPosition.Bottom:\n this.direction = ChartAxisDirection.X;\n this.rotation = -90;\n this.label.mirrored = false;\n this.label.parallel = true;\n break;\n case ChartAxisPosition.Left:\n this.direction = ChartAxisDirection.Y;\n this.rotation = 0;\n this.label.mirrored = false;\n this.label.parallel = false;\n break;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n ChartAxis.prototype.calculateDomain = function () {\n var _a;\n var _b = this, direction = _b.direction, boundSeries = _b.boundSeries, includeInvisibleDomains = _b.includeInvisibleDomains;\n if (this.linkedTo) {\n this.dataDomain = this.linkedTo.dataDomain;\n }\n else {\n var domains_1 = [];\n boundSeries\n .filter(function (s) { return includeInvisibleDomains || s.isEnabled(); })\n .forEach(function (series) {\n domains_1.push(series.getDomain(direction));\n });\n var domain = (_a = new Array()).concat.apply(_a, __spread$n(domains_1));\n this.dataDomain = this.normaliseDataDomain(domain);\n }\n };\n ChartAxis.prototype.normaliseDataDomain = function (d) {\n return d;\n };\n ChartAxis.prototype.isAnySeriesActive = function () {\n var _this = this;\n return this.boundSeries.some(function (s) { return _this.includeInvisibleDomains || s.isEnabled(); });\n };\n __decorate$1A([\n Validate(STRING_ARRAY)\n ], ChartAxis.prototype, \"keys\", void 0);\n __decorate$1A([\n Validate(POSITION)\n ], ChartAxis.prototype, \"_position\", void 0);\n return ChartAxis;\n}(Axis));\n\nfunction calculateNiceSecondaryAxis(domain, primaryTickCount) {\n // Make secondary axis domain nice using strict tick count, matching the tick count from the primary axis.\n // This is to make the secondary axis grid lines/ tick positions align with the ones from the primary axis.\n var start = Math.floor(domain[0]);\n var stop = domain[1];\n start = calculateNiceStart(start, stop, primaryTickCount);\n var step = getTickStep(start, stop, primaryTickCount);\n var segments = primaryTickCount - 1;\n stop = start + segments * step;\n var d = [start, stop];\n var ticks = getTicks(start, step, primaryTickCount);\n return [d, ticks];\n}\nfunction calculateNiceStart(a, b, count) {\n var rawStep = Math.abs(b - a) / (count - 1);\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n return Math.floor(a / magnitude) * magnitude;\n}\nfunction getTicks(start, step, count) {\n // power of the step will be negative if the step is a fraction (between 0 and 1)\n var stepPower = Math.floor(Math.log10(step));\n var fractionDigits = step > 0 && step < 1 ? Math.abs(stepPower) : 0;\n var f = Math.pow(10, fractionDigits);\n var ticks = new NumericTicks$1(fractionDigits);\n for (var i = 0; i < count; i++) {\n var tick = start + step * i;\n ticks[i] = Math.round(tick * f) / f;\n }\n return ticks;\n}\nfunction getTickStep(start, stop, count) {\n var segments = count - 1;\n var rawStep = (stop - start) / segments;\n return calculateNextNiceStep(rawStep);\n}\nfunction calculateNextNiceStep(rawStep) {\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n // Make order 1\n var step = (rawStep / magnitude) * 10;\n if (step > 0 && step <= 1) {\n return magnitude / 10;\n }\n if (step > 1 && step <= 2) {\n return (2 * magnitude) / 10;\n }\n if (step > 1 && step <= 5) {\n return (5 * magnitude) / 10;\n }\n if (step > 5 && step <= 10) {\n return (10 * magnitude) / 10;\n }\n if (step > 10 && step <= 20) {\n return (20 * magnitude) / 10;\n }\n if (step > 20 && step <= 40) {\n return (40 * magnitude) / 10;\n }\n if (step > 40 && step <= 50) {\n return (50 * magnitude) / 10;\n }\n if (step > 50 && step <= 100) {\n return (100 * magnitude) / 10;\n }\n return step;\n}\n\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$F = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction NUMBER_OR_NAN(min, max) {\n // Can be NaN or finite number\n var message = \"expecting a finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v) {\n return typeof v === 'number' &&\n (isNaN(v) || Number.isFinite(v)) &&\n (min !== undefined ? v >= min : true) &&\n (max !== undefined ? v <= max : true);\n }, message);\n}\nvar NumberAxis = /** @class */ (function (_super) {\n __extends$2D(NumberAxis, _super);\n function NumberAxis(scale) {\n if (scale === void 0) { scale = new LinearScale$1(); }\n var _this = _super.call(this, scale) || this;\n _this.min = NaN;\n _this.max = NaN;\n _this.scale.clamper = filter;\n return _this;\n }\n NumberAxis.prototype.normaliseDataDomain = function (d) {\n var _a = this, min = _a.min, max = _a.max;\n if (d.length > 2) {\n d = extent$1(d, isContinuous$1, Number) || [NaN, NaN];\n }\n if (!isNaN(min)) {\n d = [min, d[1]];\n }\n if (!isNaN(max)) {\n d = [d[0], max];\n }\n if (d[0] > d[1]) {\n d = [];\n }\n this.scale.clamp = true;\n return d;\n };\n NumberAxis.prototype.formatDatum = function (datum) {\n if (typeof datum === 'number') {\n return datum.toFixed(2);\n }\n else {\n doOnce$1(function () {\n return console.warn('AG Charts - Data contains Date objects which are being plotted against a number axis, please only use a number axis for numbers.');\n }, \"number axis config used with Date objects\");\n return String(datum);\n }\n };\n NumberAxis.prototype.updateSecondaryAxisTicks = function (primaryTickCount) {\n if (this.dataDomain == null) {\n throw new Error('AG Charts - dataDomain not calculated, cannot perform tick calculation.');\n }\n var _a = __read$F(calculateNiceSecondaryAxis(this.dataDomain, (primaryTickCount !== null && primaryTickCount !== void 0 ? primaryTickCount : 0)), 2), d = _a[0], ticks = _a[1];\n this.scale.domain = d;\n return ticks;\n };\n NumberAxis.className = 'NumberAxis';\n NumberAxis.type = 'number';\n __decorate$1z([\n Validate(AND(NUMBER_OR_NAN(), LESS_THAN('max')))\n ], NumberAxis.prototype, \"min\", void 0);\n __decorate$1z([\n Validate(AND(NUMBER_OR_NAN(), GREATER_THAN('min')))\n ], NumberAxis.prototype, \"max\", void 0);\n return NumberAxis;\n}(ChartAxis));\n\nvar __read$E = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps a discrete domain to a continuous numeric range.\n * See https://github.com/d3/d3-scale#band-scales for more info.\n */\nvar BandScale$1 = /** @class */ (function () {\n function BandScale() {\n this.type = 'band';\n /**\n * Maps datum to its index in the {@link domain} array.\n * Used to check for duplicate datums (not allowed).\n */\n this.index = new Map();\n /**\n * The output range values for datum at each index.\n */\n this.ordinalRange = [];\n /**\n * Contains unique datums only. Since `{}` is used in place of `Map`\n * for IE11 compatibility, the datums are converted `toString` before\n * the uniqueness check.\n */\n this._domain = [];\n this._range = [0, 1];\n this._bandwidth = 1;\n this._rawBandwidth = 1;\n /**\n * The ratio of the range that is reserved for space between bands.\n */\n this._paddingInner = 0;\n /**\n * The ratio of the range that is reserved for space before the first\n * and after the last band.\n */\n this._paddingOuter = 0;\n this._round = false;\n /**\n * How the leftover range is distributed.\n * `0.5` - equal distribution of space before the first and after the last band,\n * with bands effectively centered within the range.\n */\n this._align = 0.5;\n }\n Object.defineProperty(BandScale.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n set: function (values) {\n var domain = this._domain;\n domain.length = 0;\n this.index = new Map();\n var index = this.index;\n // In case one wants to have duplicate domain values, for example, two 'Italy' categories,\n // one should use objects rather than strings for domain values like so:\n // { toString: () => 'Italy' }\n // { toString: () => 'Italy' }\n values.forEach(function (value) {\n if (index.get(value) === undefined) {\n index.set(value, domain.push(value) - 1);\n }\n });\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"range\", {\n get: function () {\n return this._range;\n },\n set: function (values) {\n this._range[0] = values[0];\n this._range[1] = values[1];\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.ticks = function () {\n return this._domain;\n };\n BandScale.prototype.convert = function (d) {\n var i = this.index.get(d);\n if (i === undefined) {\n return NaN;\n }\n var r = this.ordinalRange[i];\n if (r === undefined) {\n return NaN;\n }\n return r;\n };\n Object.defineProperty(BandScale.prototype, \"bandwidth\", {\n get: function () {\n return this._bandwidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"rawBandwidth\", {\n get: function () {\n return this._rawBandwidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"padding\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n value = Math.max(0, Math.min(1, value));\n this._paddingInner = value;\n this._paddingOuter = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingInner\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n this._paddingInner = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingOuter\", {\n get: function () {\n return this._paddingOuter;\n },\n set: function (value) {\n this._paddingOuter = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"round\", {\n get: function () {\n return this._round;\n },\n set: function (value) {\n this._round = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"align\", {\n get: function () {\n return this._align;\n },\n set: function (value) {\n this._align = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.rescale = function () {\n var _a;\n var n = this._domain.length;\n if (!n) {\n return;\n }\n var _b = __read$E(this._range, 2), a = _b[0], b = _b[1];\n var reversed = b < a;\n if (reversed) {\n _a = __read$E([b, a], 2), a = _a[0], b = _a[1];\n }\n var rawStep = (b - a) / Math.max(1, n - this._paddingInner + this._paddingOuter * 2);\n var step = rawStep;\n if (this._round) {\n step = Math.floor(step);\n }\n a += (b - a - step * (n - this._paddingInner)) * this._align;\n this._bandwidth = step * (1 - this._paddingInner);\n this._rawBandwidth = rawStep * (1 - this._paddingInner);\n if (this._round) {\n a = Math.round(a);\n this._bandwidth = Math.round(this._bandwidth);\n }\n var values = [];\n for (var i = 0; i < n; i++) {\n values.push(a + step * i);\n }\n if (reversed) {\n values.reverse();\n }\n this.ordinalRange = values;\n };\n return BandScale;\n}());\n\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$D = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$m = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$D(arguments[i]));\n return ar;\n};\nvar CategoryAxis = /** @class */ (function (_super) {\n __extends$2C(CategoryAxis, _super);\n function CategoryAxis() {\n var _this = _super.call(this, new BandScale$1()) || this;\n _this._paddingOverrideEnabled = false;\n _this.groupPaddingInner = 0.1;\n _this.includeInvisibleDomains = true;\n return _this;\n }\n Object.defineProperty(CategoryAxis.prototype, \"paddingInner\", {\n get: function () {\n this._paddingOverrideEnabled = true;\n return this.scale.paddingInner;\n },\n set: function (value) {\n this._paddingOverrideEnabled = true;\n this.scale.paddingInner = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CategoryAxis.prototype, \"paddingOuter\", {\n get: function () {\n return this.scale.paddingOuter;\n },\n set: function (value) {\n this.scale.paddingOuter = value;\n },\n enumerable: true,\n configurable: true\n });\n CategoryAxis.prototype.normaliseDataDomain = function (d) {\n // Prevent duplicate categories.\n var valuesSet = new Set(d);\n return new (Array.bind.apply(Array, __spread$m([void 0], valuesSet.values())))();\n };\n CategoryAxis.prototype.calculateDomain = function () {\n if (!this._paddingOverrideEnabled) {\n var boundSeries = this.boundSeries;\n if (boundSeries.some(function (s) { return ['bar', 'column'].includes(s.type); })) {\n this.scale.paddingInner = 0.2;\n this.scale.paddingOuter = 0.3;\n }\n else {\n this.scale.paddingInner = 1;\n this.scale.paddingOuter = 0;\n }\n }\n return _super.prototype.calculateDomain.call(this);\n };\n CategoryAxis.className = 'CategoryAxis';\n CategoryAxis.type = 'category';\n __decorate$1y([\n Validate(NUMBER(0, 1))\n ], CategoryAxis.prototype, \"groupPaddingInner\", void 0);\n return CategoryAxis;\n}(ChartAxis));\n\n/**\n * The tree layout is calculated in abstract x/y coordinates, where the root is at (0, 0)\n * and the tree grows downward from the root.\n */\nvar TreeNode = /** @class */ (function () {\n function TreeNode(label, parent, number) {\n if (label === void 0) { label = ''; }\n if (number === void 0) { number = 0; }\n this.x = 0;\n this.y = 0;\n this.subtreeLeft = NaN;\n this.subtreeRight = NaN;\n this.screenX = 0;\n this.screenY = 0;\n this.children = [];\n this.leafCount = 0;\n this.prelim = 0;\n this.mod = 0;\n this.ancestor = this;\n this.change = 0;\n this.shift = 0;\n this.label = label;\n // screenX and screenY are meant to be recomputed from (layout) x and y\n // when the tree is resized (without performing another layout)\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n this.number = number;\n }\n TreeNode.prototype.getLeftSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[this.number - 1] : undefined;\n };\n TreeNode.prototype.getLeftmostSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[0] : undefined;\n };\n // traverse the left contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextLeft = function () {\n return this.children ? this.children[0] : this.thread;\n };\n // traverse the right contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextRight = function () {\n return this.children ? this.children[this.children.length - 1] : this.thread;\n };\n TreeNode.prototype.getSiblings = function () {\n var _this = this;\n return this.parent ? this.parent.children.filter(function (_, i) { return i !== _this.number; }) : [];\n };\n return TreeNode;\n}());\n/**\n * Converts an array of ticks, where each tick has an array of labels, to a label tree.\n * If `pad` is `true`, will ensure that every branch matches the depth of the tree by\n * creating empty labels.\n */\nfunction ticksToTree(ticks, pad) {\n if (pad === void 0) { pad = true; }\n var root = new TreeNode();\n var depth = 0;\n if (pad) {\n ticks.forEach(function (tick) { return (depth = Math.max(depth, tick.labels.length)); });\n }\n ticks.forEach(function (tick) {\n if (pad) {\n while (tick.labels.length < depth) {\n tick.labels.unshift('');\n }\n }\n insertTick(root, tick);\n });\n return root;\n}\nfunction insertTick(root, tick) {\n var pathParts = tick.labels.slice().reverse(); // path elements from root to leaf label\n var lastPartIndex = pathParts.length - 1;\n pathParts.forEach(function (pathPart, partIndex) {\n var children = root.children;\n var existingNode = find(children, function (child) { return child.label === pathPart; });\n var isNotLeaf = partIndex !== lastPartIndex;\n if (existingNode && isNotLeaf) {\n // the isNotLeaf check is to allow duplicate leafs\n root = existingNode;\n }\n else {\n var node = new TreeNode(pathPart, root);\n node.number = children.length;\n children.push(node);\n if (isNotLeaf) {\n root = node;\n }\n }\n });\n}\n// Shift the subtree.\nfunction moveSubtree(wm, wp, shift) {\n var subtrees = wp.number - wm.number;\n var ratio = shift / subtrees;\n wp.change -= ratio;\n wp.shift += shift;\n wm.change += ratio;\n wp.prelim += shift;\n wp.mod += shift;\n}\nfunction ancestor(vim, v, defaultAncestor) {\n return v.getSiblings().indexOf(vim.ancestor) >= 0 ? vim.ancestor : defaultAncestor;\n}\n// Spaces out the children.\nfunction executeShifts(v) {\n var children = v.children;\n if (children) {\n var shift = 0;\n var change = 0;\n for (var i = children.length - 1; i >= 0; i--) {\n var w = children[i];\n w.prelim += shift;\n w.mod += shift;\n change += w.change;\n shift += w.shift + change;\n }\n }\n}\n// Moves current subtree with v as the root if some nodes are conflicting in space.\nfunction apportion(v, defaultAncestor, distance) {\n var w = v.getLeftSibling();\n if (w) {\n var vop = v;\n var vip = v;\n var vim = w;\n var vom = vip.getLeftmostSibling();\n var sip = vip.mod;\n var sop = vop.mod;\n var sim = vim.mod;\n var som = vom.mod;\n while (vim.nextRight() && vip.nextLeft()) {\n vim = vim.nextRight();\n vip = vip.nextLeft();\n vom = vom.nextLeft();\n vop = vop.nextRight();\n vop.ancestor = v;\n var shift = vim.prelim + sim - (vip.prelim + sip) + distance;\n if (shift > 0) {\n moveSubtree(ancestor(vim, v, defaultAncestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.mod;\n sip += vip.mod;\n som += vom.mod;\n sop += vop.mod;\n }\n if (vim.nextRight() && !vop.nextRight()) {\n vop.thread = vim.nextRight();\n vop.mod += sim - sop;\n }\n else {\n if (vip.nextLeft() && !vom.nextLeft()) {\n vom.thread = vip.nextLeft();\n vom.mod += sip - som;\n }\n defaultAncestor = v;\n }\n }\n return defaultAncestor;\n}\n// Compute the preliminary x-coordinate of node and its children (recursively).\nfunction firstWalk(node, distance) {\n var children = node.children;\n if (children.length) {\n var defaultAncestor_1 = children[0];\n children.forEach(function (child) {\n firstWalk(child, distance);\n defaultAncestor_1 = apportion(child, defaultAncestor_1, distance);\n });\n executeShifts(node);\n var midpoint = (children[0].prelim + children[children.length - 1].prelim) / 2;\n var leftSibling = node.getLeftSibling();\n if (leftSibling) {\n node.prelim = leftSibling.prelim + distance;\n node.mod = node.prelim - midpoint;\n }\n else {\n node.prelim = midpoint;\n }\n }\n else {\n var leftSibling = node.getLeftSibling();\n node.prelim = leftSibling ? leftSibling.prelim + distance : 0;\n }\n}\nvar Dimensions = /** @class */ (function () {\n function Dimensions() {\n this.top = Infinity;\n this.right = -Infinity;\n this.bottom = -Infinity;\n this.left = Infinity;\n }\n Dimensions.prototype.update = function (node, xy) {\n var _a = xy(node), x = _a.x, y = _a.y;\n if (x > this.right) {\n this.right = x;\n }\n if (x < this.left) {\n this.left = x;\n }\n if (y > this.bottom) {\n this.bottom = y;\n }\n if (y < this.top) {\n this.top = y;\n }\n };\n return Dimensions;\n}());\nfunction secondWalk(v, m, layout) {\n v.x = v.prelim + m;\n v.y = v.depth;\n layout.update(v);\n v.children.forEach(function (w) { return secondWalk(w, m + v.mod, layout); });\n}\n// After the second walk the parent nodes are positioned at the center of their immediate children.\n// If we want the parent nodes to be positioned at the center of the subtree for which they are roots,\n// we need a third walk to adjust the positions.\nfunction thirdWalk(v) {\n var children = v.children;\n var leafCount = 0;\n children.forEach(function (w) {\n thirdWalk(w);\n if (w.children.length) {\n leafCount += w.leafCount;\n }\n else {\n leafCount++;\n }\n });\n v.leafCount = leafCount;\n if (children.length) {\n v.subtreeLeft = children[0].subtreeLeft;\n v.subtreeRight = children[v.children.length - 1].subtreeRight;\n v.x = (v.subtreeLeft + v.subtreeRight) / 2;\n }\n else {\n v.subtreeLeft = v.x;\n v.subtreeRight = v.x;\n }\n}\nfunction treeLayout(root) {\n var layout = new TreeLayout();\n firstWalk(root, 1);\n secondWalk(root, -root.prelim, layout);\n thirdWalk(root);\n return layout;\n}\nvar TreeLayout = /** @class */ (function () {\n function TreeLayout() {\n this.dimensions = new Dimensions();\n this.leafCount = 0;\n this.nodes = [];\n // One might want to process leaf nodes separately from the rest of the tree.\n // For example, position labels corresponding to leafs vertically, rather than horizontally.\n this.leafNodes = [];\n this.nonLeafNodes = [];\n this.depth = 0;\n }\n TreeLayout.prototype.update = function (node) {\n this.dimensions.update(node, function (node) { return ({ x: node.x, y: node.y }); });\n if (!node.children.length) {\n this.leafCount++;\n this.leafNodes.push(node);\n }\n else {\n this.nonLeafNodes.push(node);\n }\n if (node.depth > this.depth) {\n this.depth = node.depth;\n }\n this.nodes.push(node);\n };\n TreeLayout.prototype.resize = function (width, height, shiftX, shiftY, flipX) {\n if (shiftX === void 0) { shiftX = 0; }\n if (shiftY === void 0) { shiftY = 0; }\n if (flipX === void 0) { flipX = false; }\n var xSteps = this.leafCount - 1;\n var ySteps = this.depth;\n var dimensions = this.dimensions;\n var scalingX = 1;\n var scalingY = 1;\n if (width > 0 && xSteps) {\n var existingSpacingX = (dimensions.right - dimensions.left) / xSteps;\n var desiredSpacingX = width / xSteps;\n scalingX = desiredSpacingX / existingSpacingX;\n if (flipX) {\n scalingX = -scalingX;\n }\n }\n if (height > 0 && ySteps) {\n var existingSpacingY = (dimensions.bottom - dimensions.top) / ySteps;\n var desiredSpacingY = height / ySteps;\n scalingY = desiredSpacingY / existingSpacingY;\n }\n var screenDimensions = new Dimensions();\n this.nodes.forEach(function (node) {\n node.screenX = node.x * scalingX;\n node.screenY = node.y * scalingY;\n screenDimensions.update(node, function (node) { return ({ x: node.screenX, y: node.screenY }); });\n });\n // Normalize so that root top and leftmost leaf left start at zero.\n var offsetX = -screenDimensions.left;\n var offsetY = -screenDimensions.top;\n this.nodes.forEach(function (node) {\n node.screenX += offsetX + shiftX;\n node.screenY += offsetY + shiftY;\n });\n };\n return TreeLayout;\n}());\n\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$C = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$l = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$C(arguments[i]));\n return ar;\n};\nvar GroupedCategoryAxisLabel = /** @class */ (function (_super) {\n __extends$2B(GroupedCategoryAxisLabel, _super);\n function GroupedCategoryAxisLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.grid = false;\n return _this;\n }\n __decorate$1x([\n Validate(BOOLEAN)\n ], GroupedCategoryAxisLabel.prototype, \"grid\", void 0);\n return GroupedCategoryAxisLabel;\n}(AxisLabel));\nvar GroupedCategoryAxis = /** @class */ (function (_super) {\n __extends$2B(GroupedCategoryAxis, _super);\n function GroupedCategoryAxis() {\n var _this = _super.call(this, new BandScale$1()) || this;\n // Label scale (labels are positioned between ticks, tick count = label count + 1).\n // We don't call is `labelScale` for consistency with other axes.\n _this.tickScale = new BandScale$1();\n _this.translation = {\n x: 0,\n y: 0,\n };\n _this.line = new AxisLine();\n _this.label = new GroupedCategoryAxisLabel();\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n _this.labelColor = 'rgba(87, 87, 87, 1)';\n _this.includeInvisibleDomains = true;\n var _a = _this, axisGroup = _a.axisGroup, gridlineGroup = _a.gridlineGroup, tickScale = _a.tickScale, scale = _a.scale;\n scale.paddingOuter = 0.1;\n scale.paddingInner = scale.paddingOuter * 2;\n _this.requestedRange = scale.range.slice();\n _this.refreshScale();\n tickScale.paddingInner = 1;\n tickScale.paddingOuter = 0;\n _this.gridLineSelection = Selection$1.select(gridlineGroup).selectAll();\n _this.axisLineSelection = Selection$1.select(axisGroup).selectAll();\n _this.separatorSelection = Selection$1.select(axisGroup).selectAll();\n _this.labelSelection = Selection$1.select(axisGroup).selectAll();\n return _this;\n }\n Object.defineProperty(GroupedCategoryAxis.prototype, \"range\", {\n get: function () {\n return this.requestedRange.slice();\n },\n set: function (value) {\n this.requestedRange = value.slice();\n this.updateRange();\n },\n enumerable: true,\n configurable: true\n });\n GroupedCategoryAxis.prototype.updateRange = function () {\n var _a = this, rr = _a.requestedRange, vr = _a.visibleRange, scale = _a.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n this.tickScale.range = scale.range = [start, start + span];\n this.resizeTickTree();\n };\n GroupedCategoryAxis.prototype.resizeTickTree = function () {\n var s = this.scale;\n var range = s.domain.length ? [s.convert(s.domain[0]), s.convert(s.domain[s.domain.length - 1])] : s.range;\n var layout = this.tickTreeLayout;\n var lineHeight = this.lineHeight;\n if (layout) {\n layout.resize(Math.abs(range[1] - range[0]), layout.depth * lineHeight, (Math.min(range[0], range[1]) || 0) + (s.bandwidth || 0) / 2, -layout.depth * lineHeight, range[1] - range[0] < 0);\n }\n };\n Object.defineProperty(GroupedCategoryAxis.prototype, \"lineHeight\", {\n get: function () {\n return this.label.fontSize * 1.5;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GroupedCategoryAxis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n */\n set: function (value) {\n // Was visible and now invisible, or was invisible and now visible.\n if ((this._gridLength && !value) || (!this._gridLength && value)) {\n this.gridLineSelection = this.gridLineSelection.remove().setData([]);\n this.labelSelection = this.labelSelection.remove().setData([]);\n }\n this._gridLength = value;\n },\n enumerable: true,\n configurable: true\n });\n GroupedCategoryAxis.prototype.calculateDomain = function () {\n var _a;\n var _b = this, direction = _b.direction, boundSeries = _b.boundSeries;\n var domains = [];\n var isNumericX = undefined;\n boundSeries\n .filter(function (s) { return s.visible; })\n .forEach(function (series) {\n if (direction === ChartAxisDirection.X) {\n if (isNumericX === undefined) {\n // always add first X domain\n var domain_1 = series.getDomain(direction);\n domains.push(domain_1);\n isNumericX = typeof domain_1[0] === 'number';\n }\n else if (isNumericX) {\n // only add further X domains if the axis is numeric\n domains.push(series.getDomain(direction));\n }\n }\n else {\n domains.push(series.getDomain(direction));\n }\n });\n var domain = (_a = new Array()).concat.apply(_a, __spread$l(domains));\n var values = extent$1(domain, isContinuous$1) || domain;\n this.dataDomain = this.normaliseDataDomain(values);\n };\n GroupedCategoryAxis.prototype.normaliseDataDomain = function (d) {\n // Prevent duplicate categories.\n var values = d.filter(function (s, i, arr) { return arr.indexOf(s) === i; });\n var tickTree = ticksToTree(values);\n this.tickTreeLayout = treeLayout(tickTree);\n var tickScaleDomain = values.slice();\n tickScaleDomain.push('');\n this.tickScale.domain = tickScaleDomain;\n this.resizeTickTree();\n return values;\n };\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n * Supposed to be called _manually_ after changing _any_ of the axis properties.\n * This allows to bulk set axis properties before updating the nodes.\n * The node changes made by this method are rendered on the next animation frame.\n * We could schedule this method call automatically on the next animation frame\n * when any of the axis properties change (the way we do when properties of scene graph's\n * nodes change), but this will mean that we first wait for the next animation\n * frame to make changes to the nodes of the axis, then wait for another animation\n * frame to render those changes. It's nice to have everything update automatically,\n * but this extra level of async indirection will not just introduce an unwanted delay,\n * it will also make it harder to reason about the program.\n */\n GroupedCategoryAxis.prototype.update = function (primaryTickCount) {\n var _this = this;\n this.calculateDomain();\n var _a = this, scale = _a.scale, label = _a.label, tickScale = _a.tickScale, requestedRange = _a.requestedRange;\n scale.domain = this.dataDomain;\n var rangeStart = scale.range[0];\n var rangeEnd = scale.range[1];\n var rangeLength = Math.abs(rangeEnd - rangeStart);\n var bandwidth = rangeLength / scale.domain.length || 0;\n var parallelLabels = label.parallel;\n var rotation = toRadians(this.rotation);\n var isHorizontal = Math.abs(Math.cos(rotation)) < 1e-8;\n var labelRotation = this.label.rotation ? normalizeAngle360(toRadians(this.label.rotation)) : 0;\n this.updatePosition();\n var title = this.title;\n // The Text `node` of the Caption is not used to render the title of the grouped category axis.\n // The phantom root of the tree layout is used instead.\n if (title) {\n title.node.visible = false;\n }\n var lineHeight = this.lineHeight;\n // Render ticks and labels.\n var tickTreeLayout = this.tickTreeLayout;\n var labels = scale.ticks();\n var treeLabels = tickTreeLayout ? tickTreeLayout.nodes : [];\n var isLabelTree = tickTreeLayout ? tickTreeLayout.depth > 1 : false;\n var ticks = tickScale.ticks();\n // The side of the axis line to position the labels on.\n // -1 = left (default)\n // 1 = right\n var sideFlag = label.mirrored ? 1 : -1;\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var parallelFlipRotation = normalizeAngle360(rotation);\n var parallelFlipFlag = !labelRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI ? -1 : 1;\n var regularFlipRotation = normalizeAngle360(rotation - Math.PI / 2);\n // Flip if the axis rotation angle is in the top hemisphere.\n var regularFlipFlag = !labelRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI ? -1 : 1;\n var updateGridLines = this.gridLineSelection.setData(this.gridLength ? ticks : []);\n updateGridLines.exit.remove();\n var enterGridLines = updateGridLines.enter.append(Line$1);\n var gridLineSelection = updateGridLines.merge(enterGridLines);\n var updateLabels = this.labelSelection.setData(treeLabels);\n updateLabels.exit.remove();\n var enterLabels = updateLabels.enter.append(Text$1);\n var labelSelection = updateLabels.merge(enterLabels);\n var labelFormatter = label.formatter;\n var labelBBoxes = new Map();\n var maxLeafLabelWidth = 0;\n labelSelection.each(function (node, datum, index) {\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.textBaseline = parallelFlipFlag === -1 ? 'bottom' : 'hanging';\n node.textAlign = 'center';\n node.translationX = datum.screenY - label.fontSize * 0.25;\n node.translationY = datum.screenX;\n if (index === 0) {\n // use the phantom root as the axis title\n if (title && title.enabled && labels.length > 0) {\n node.visible = true;\n node.text = title.text;\n node.fontSize = title.fontSize;\n node.fontStyle = title.fontStyle;\n node.fontWeight = title.fontWeight;\n node.fontFamily = title.fontFamily;\n node.textBaseline = 'hanging';\n }\n else {\n node.visible = false;\n }\n }\n else {\n node.text = labelFormatter\n ? labelFormatter({\n value: String(datum.label),\n index: index,\n })\n : String(datum.label);\n node.visible = datum.screenX >= requestedRange[0] && datum.screenX <= requestedRange[1];\n }\n var bbox = node.computeBBox();\n labelBBoxes.set(node.id, bbox);\n if (bbox.width > maxLeafLabelWidth) {\n maxLeafLabelWidth = bbox.width;\n }\n });\n var labelX = sideFlag * label.padding;\n var autoRotation = parallelLabels ? (parallelFlipFlag * Math.PI) / 2 : regularFlipFlag === -1 ? Math.PI : 0;\n var labelGrid = this.label.grid;\n var separatorData = [];\n labelSelection.each(function (label, datum, index) {\n label.x = labelX;\n label.rotationCenterX = labelX;\n if (!datum.children.length) {\n label.rotation = labelRotation;\n label.textAlign = 'end';\n label.textBaseline = 'middle';\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.height > bandwidth) {\n label.visible = false;\n }\n }\n else {\n label.translationX -= maxLeafLabelWidth - lineHeight + _this.label.padding;\n var availableRange = datum.leafCount * bandwidth;\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.width > availableRange) {\n label.visible = false;\n }\n else if (isHorizontal) {\n label.rotation = autoRotation;\n }\n else {\n label.rotation = -Math.PI / 2;\n }\n }\n // Calculate positions of label separators for all nodes except the root.\n // Each separator is placed to the top of the current label.\n if (datum.parent && isLabelTree) {\n var y = !datum.children.length\n ? datum.screenX - bandwidth / 2\n : datum.screenX - (datum.leafCount * bandwidth) / 2;\n if (!datum.children.length) {\n if (datum.number !== datum.children.length - 1 || labelGrid) {\n separatorData.push({\n y: y,\n x1: 0,\n x2: -maxLeafLabelWidth - _this.label.padding * 2,\n toString: function () { return String(index); },\n });\n }\n }\n else {\n var x = -maxLeafLabelWidth - _this.label.padding * 2 + datum.screenY;\n separatorData.push({\n y: y,\n x1: x + lineHeight,\n x2: x,\n toString: function () { return String(index); },\n });\n }\n }\n });\n // Calculate the position of the long separator on the far bottom of the axis.\n var minX = 0;\n separatorData.forEach(function (d) { return (minX = Math.min(minX, d.x2)); });\n separatorData.push({\n y: Math.max(rangeStart, rangeEnd),\n x1: 0,\n x2: minX,\n toString: function () { return String(separatorData.length); },\n });\n var updateSeparators = this.separatorSelection.setData(separatorData);\n updateSeparators.exit.remove();\n var enterSeparators = updateSeparators.enter.append(Line$1);\n var separatorSelection = updateSeparators.merge(enterSeparators);\n this.separatorSelection = separatorSelection;\n var epsilon = 0.0000001;\n separatorSelection.each(function (line, datum) {\n line.x1 = datum.x1;\n line.x2 = datum.x2;\n line.y1 = datum.y;\n line.y2 = datum.y;\n line.visible = datum.y >= requestedRange[0] - epsilon && datum.y <= requestedRange[1] + epsilon;\n line.stroke = _this.tick.color;\n line.fill = undefined;\n line.strokeWidth = 1;\n });\n this.gridLineSelection = gridLineSelection;\n this.labelSelection = labelSelection;\n // Render axis lines.\n var lineCount = tickTreeLayout ? tickTreeLayout.depth + 1 : 1;\n var lines = [];\n for (var i = 0; i < lineCount; i++) {\n lines.push(i);\n }\n var updateAxisLines = this.axisLineSelection.setData(lines);\n updateAxisLines.exit.remove();\n var enterAxisLines = updateAxisLines.enter.append(Line$1);\n var axisLineSelection = updateAxisLines.merge(enterAxisLines);\n this.axisLineSelection = axisLineSelection;\n axisLineSelection.each(function (line, _, index) {\n var x = index > 0 ? -maxLeafLabelWidth - _this.label.padding * 2 - (index - 1) * lineHeight : 0;\n line.x1 = x;\n line.x2 = x;\n line.y1 = requestedRange[0];\n line.y2 = requestedRange[1];\n line.strokeWidth = _this.line.width;\n line.stroke = _this.line.color;\n line.visible = labels.length > 0 && (index === 0 || (labelGrid && isLabelTree));\n });\n if (this.gridLength) {\n var styles_1 = this.gridStyle;\n var styleCount_1 = styles_1.length;\n gridLineSelection.each(function (line, datum, index) {\n var y = Math.round(tickScale.convert(datum));\n line.x1 = 0;\n line.x2 = -sideFlag * _this.gridLength;\n line.y1 = y;\n line.y2 = y;\n line.visible =\n y >= requestedRange[0] &&\n y <= requestedRange[1] &&\n Math.abs(line.parent.translationY - rangeStart) > 1;\n var style = styles_1[index % styleCount_1];\n line.stroke = style.stroke;\n line.strokeWidth = _this.tick.width;\n line.lineDash = style.lineDash;\n line.fill = undefined;\n });\n }\n return primaryTickCount;\n };\n GroupedCategoryAxis.className = 'GroupedCategoryAxis';\n GroupedCategoryAxis.type = 'groupedCategory';\n __decorate$1x([\n Validate(OPT_COLOR_STRING)\n ], GroupedCategoryAxis.prototype, \"labelColor\", void 0);\n return GroupedCategoryAxis;\n}(ChartAxis));\n\nfunction floor$k(date) {\n return date;\n}\nfunction offset$k(date, milliseconds) {\n date.setTime(date.getTime() + milliseconds);\n}\nfunction count$k(start, end) {\n return end.getTime() - start.getTime();\n}\nvar millisecond$1 = new CountableTimeInterval$1(floor$k, offset$k, count$k);\n\n// Common time unit sizes in milliseconds.\nvar epochYear = new Date(0).getFullYear();\nvar durationSecond$1 = 1000;\nvar durationMinute$1 = durationSecond$1 * 60;\nvar durationHour$1 = durationMinute$1 * 60;\nvar durationDay$1 = durationHour$1 * 24;\nvar durationWeek$1 = durationDay$1 * 7;\nvar durationMonth$1 = durationDay$1 * 30;\nvar durationYear$1 = durationDay$1 * 365;\n\nfunction floor$j(date) {\n date.setTime(date.getTime() - date.getMilliseconds());\n}\nfunction offset$j(date, seconds) {\n date.setTime(date.getTime() + seconds * durationSecond$1);\n}\nfunction count$j(start, end) {\n return (end.getTime() - start.getTime()) / durationSecond$1;\n}\nvar second$1 = new CountableTimeInterval$1(floor$j, offset$j, count$j);\n\nfunction floor$i(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond$1);\n}\nfunction offset$i(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute$1);\n}\nfunction count$i(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute$1;\n}\nfunction field$g(date) {\n return Math.floor(date.getTime() / durationMinute$1);\n}\nvar minute$1 = new CountableTimeInterval$1(floor$i, offset$i, count$i, field$g);\n\nfunction floor$h(date) {\n date.setTime(date.getTime() -\n date.getMilliseconds() -\n date.getSeconds() * durationSecond$1 -\n date.getMinutes() * durationMinute$1);\n}\nfunction offset$h(date, hours) {\n date.setTime(date.getTime() + hours * durationHour$1);\n}\nfunction count$h(start, end) {\n return (end.getTime() - start.getTime()) / durationHour$1;\n}\nfunction field$f(date) {\n return Math.floor(date.getTime() / durationHour$1);\n}\nvar hour$1 = new CountableTimeInterval$1(floor$h, offset$h, count$h, field$f);\n\nfunction floor$g(date) {\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$g(date, days) {\n date.setDate(date.getDate() + days);\n}\nfunction count$g(start, end) {\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (end.getTime() - start.getTime() - tzMinuteDelta * durationMinute$1) / durationDay$1;\n}\nfunction field$e(date) {\n return Math.floor(date.getTime() / durationDay$1);\n}\nvar day$1 = new CountableTimeInterval$1(floor$g, offset$g, count$g, field$e);\n\n// Set date to n-th day of the week.\nfunction weekday$3(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n // 1..31 1..7\n date.setDate(date.getDate() - ((date.getDay() + 7 - n) % 7));\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setDate(date.getDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n var msDelta = end.getTime() - start.getTime();\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (msDelta - tzMinuteDelta * durationMinute$1) / durationWeek$1;\n }\n return new CountableTimeInterval$1(floor, offset, count);\n}\nvar sunday$1 = weekday$3(0);\nvar monday$1 = weekday$3(1);\nvar tuesday = weekday$3(2);\nvar wednesday = weekday$3(3);\nvar thursday$1 = weekday$3(4);\nvar friday = weekday$3(5);\nvar saturday = weekday$3(6);\n\nfunction floor$f(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$f(date, months) {\n date.setMonth(date.getMonth() + months);\n}\nfunction count$f(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}\nfunction field$d(date) {\n var yearsSinceEpoch = date.getFullYear() - epochYear;\n var monthsSinceEpoch = yearsSinceEpoch * 12 + date.getMonth();\n return monthsSinceEpoch;\n}\nvar month$1 = new CountableTimeInterval$1(floor$f, offset$f, count$f, field$d);\n\nfunction floor$e(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$e(date, years) {\n date.setFullYear(date.getFullYear() + years);\n}\nfunction count$e(start, end) {\n return end.getFullYear() - start.getFullYear();\n}\nfunction field$c(date) {\n return date.getFullYear() - epochYear;\n}\nvar year$1 = new CountableTimeInterval$1(floor$e, offset$e, count$e, field$c);\n\nfunction floor$d(date) {\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$d(date, days) {\n date.setUTCDate(date.getUTCDate() + days);\n}\nfunction count$d(start, end) {\n return (end.getTime() - start.getTime()) / durationDay$1;\n}\nfunction field$b(date) {\n return date.getUTCDate() - 1;\n}\nvar utcDay$1 = new CountableTimeInterval$1(floor$d, offset$d, count$d, field$b);\n\nfunction floor$c(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$c(date, years) {\n date.setUTCFullYear(date.getUTCFullYear() + years);\n}\nfunction count$c(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}\nfunction field$a(date) {\n return date.getUTCFullYear();\n}\nvar utcYear$1 = new CountableTimeInterval$1(floor$c, offset$c, count$c, field$a);\n\n// Set date to n-th day of the week.\nfunction weekday$2(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n date.setUTCDate(date.getUTCDate() - ((date.getUTCDay() + 7 - n) % 7));\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setUTCDate(date.getUTCDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n return (end.getTime() - start.getTime()) / durationWeek$1;\n }\n return new CountableTimeInterval$1(floor, offset, count);\n}\nvar utcSunday$1 = weekday$2(0);\nvar utcMonday$1 = weekday$2(1);\nweekday$2(2);\nweekday$2(3);\nvar utcThursday$1 = weekday$2(4);\nweekday$2(5);\nweekday$2(6);\n\nfunction localDate$1(d) {\n // For JS Dates the [0, 100) interval is a time warp, a fast forward to the 20th century.\n // For example, -1 is -0001 BC, 0 is already 1900 AD.\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\nfunction utcDate$1(d) {\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n/**\n * Creates a lookup map for array of names to go from a name to index.\n * @param names\n */\nfunction formatLookup$1(names) {\n var map = {};\n for (var i = 0, n = names.length; i < n; i++) {\n map[names[i].toLowerCase()] = i;\n }\n return map;\n}\nfunction newYear$1(y) {\n return {\n y: y,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n };\n}\nvar percentCharCode$1 = 37;\nvar numberRe$1 = /^\\s*\\d+/; // ignores next directive\nvar percentRe$1 = /^%/;\nvar requoteRe$1 = /[\\\\^$*+?|[\\]().{}]/g;\n/**\n * Prepends any character in the `requoteRe` set with a backslash.\n * @param s\n */\nvar requote$1 = function (s) { return s.replace(requoteRe$1, '\\\\$&'); }; // $& - matched substring\n/**\n * Returns a RegExp that matches any string that starts with any of the given names (case insensitive).\n * @param names\n */\nvar formatRe$1 = function (names) { return new RegExp('^(?:' + names.map(requote$1).join('|') + ')', 'i'); };\n// A map of padding modifiers to padding strings. Default is `0`.\nvar pads$1 = {\n '-': '',\n _: ' ',\n '0': '0',\n};\nfunction pad$1(value, fill, width) {\n var sign = value < 0 ? '-' : '';\n var string = String(sign ? -value : value);\n var length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n/**\n * Create a new time-locale-based object which exposes time-formatting\n * methods for the specified locale definition.\n *\n * @param timeLocale A time locale definition.\n */\nfunction formatLocale$2(timeLocale) {\n var lDateTime = timeLocale.dateTime;\n var lDate = timeLocale.date;\n var lTime = timeLocale.time;\n var lPeriods = timeLocale.periods;\n var lWeekdays = timeLocale.days;\n var lShortWeekdays = timeLocale.shortDays;\n var lMonths = timeLocale.months;\n var lShortMonths = timeLocale.shortMonths;\n var periodRe = formatRe$1(lPeriods);\n var periodLookup = formatLookup$1(lPeriods);\n var weekdayRe = formatRe$1(lWeekdays);\n var weekdayLookup = formatLookup$1(lWeekdays);\n var shortWeekdayRe = formatRe$1(lShortWeekdays);\n var shortWeekdayLookup = formatLookup$1(lShortWeekdays);\n var monthRe = formatRe$1(lMonths);\n var monthLookup = formatLookup$1(lMonths);\n var shortMonthRe = formatRe$1(lShortMonths);\n var shortMonthLookup = formatLookup$1(lShortMonths);\n var formats = {\n a: formatShortWeekday,\n A: formatWeekday,\n b: formatShortMonth,\n B: formatMonth,\n c: undefined,\n d: formatDayOfMonth,\n e: formatDayOfMonth,\n f: formatMicroseconds,\n H: formatHour24,\n I: formatHour12,\n j: formatDayOfYear,\n L: formatMilliseconds,\n m: formatMonthNumber,\n M: formatMinutes,\n p: formatPeriod,\n Q: formatUnixTimestamp,\n s: formatUnixTimestampSeconds,\n S: formatSeconds,\n u: formatWeekdayNumberMonday,\n U: formatWeekNumberSunday,\n V: formatWeekNumberISO,\n w: formatWeekdayNumberSunday,\n W: formatWeekNumberMonday,\n x: undefined,\n X: undefined,\n y: formatYear,\n Y: formatFullYear,\n Z: formatZone,\n '%': formatLiteralPercent,\n };\n var utcFormats = {\n a: formatUTCShortWeekday,\n A: formatUTCWeekday,\n b: formatUTCShortMonth,\n B: formatUTCMonth,\n c: undefined,\n d: formatUTCDayOfMonth,\n e: formatUTCDayOfMonth,\n f: formatUTCMicroseconds,\n H: formatUTCHour24,\n I: formatUTCHour12,\n j: formatUTCDayOfYear,\n L: formatUTCMilliseconds,\n m: formatUTCMonthNumber,\n M: formatUTCMinutes,\n p: formatUTCPeriod,\n Q: formatUnixTimestamp,\n s: formatUnixTimestampSeconds,\n S: formatUTCSeconds,\n u: formatUTCWeekdayNumberMonday,\n U: formatUTCWeekNumberSunday,\n V: formatUTCWeekNumberISO,\n w: formatUTCWeekdayNumberSunday,\n W: formatUTCWeekNumberMonday,\n x: undefined,\n X: undefined,\n y: formatUTCYear,\n Y: formatUTCFullYear,\n Z: formatUTCZone,\n '%': formatLiteralPercent,\n };\n var parses = {\n a: parseShortWeekday,\n A: parseWeekday,\n b: parseShortMonth,\n B: parseMonth,\n c: parseLocaleDateTime,\n d: parseDayOfMonth,\n e: parseDayOfMonth,\n f: parseMicroseconds,\n H: parseHour24,\n I: parseHour24,\n j: parseDayOfYear,\n L: parseMilliseconds,\n m: parseMonthNumber,\n M: parseMinutes,\n p: parsePeriod,\n Q: parseUnixTimestamp,\n s: parseUnixTimestampSeconds,\n S: parseSeconds,\n u: parseWeekdayNumberMonday,\n U: parseWeekNumberSunday,\n V: parseWeekNumberISO,\n w: parseWeekdayNumberSunday,\n W: parseWeekNumberMonday,\n x: parseLocaleDate,\n X: parseLocaleTime,\n y: parseYear,\n Y: parseFullYear,\n Z: parseZone,\n '%': parseLiteralPercent,\n };\n // Recursive definitions.\n formats.x = newFormat(lDate, formats);\n formats.X = newFormat(lTime, formats);\n formats.c = newFormat(lDateTime, formats);\n utcFormats.x = newFormat(lDate, utcFormats);\n utcFormats.X = newFormat(lTime, utcFormats);\n utcFormats.c = newFormat(lDateTime, utcFormats);\n function newParse(specifier, newDate) {\n return function (str) {\n var d = newYear$1(1900);\n str += '';\n var i = parseSpecifier(d, specifier, str, 0);\n if (i != str.length) {\n return undefined;\n }\n // If a UNIX timestamp is specified, return it.\n if ('Q' in d) {\n return new Date(d.Q);\n }\n // The am-pm flag is 0 for AM, and 1 for PM.\n if ('p' in d) {\n d.H = (d.H % 12) + d.p * 12;\n }\n // Convert day-of-week and week-of-year to day-of-year.\n if ('V' in d) {\n if (d.V < 1 || d.V > 53) {\n return undefined;\n }\n if (!('w' in d)) {\n d.w = 1;\n }\n if ('Z' in d) {\n var week = utcDate$1(newYear$1(d.y));\n var day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday$1.ceil(week) : utcMonday$1.floor(week);\n week = utcDay$1.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + ((d.w + 6) % 7);\n }\n else {\n var week = newDate(newYear$1(d.y));\n var day = week.getDay();\n week = day > 4 || day === 0 ? monday$1.ceil(week) : monday$1.floor(week);\n week = day$1.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + ((d.w + 6) % 7);\n }\n }\n else if ('W' in d || 'U' in d) {\n if (!('w' in d)) {\n d.w = 'u' in d ? d.u % 7 : 'W' in d ? 1 : 0;\n }\n var day = 'Z' in d ? utcDate$1(newYear$1(d.y)).getUTCDay() : newDate(newYear$1(d.y)).getDay();\n d.m = 0;\n d.d = 'W' in d ? ((d.w + 6) % 7) + d.W * 7 - ((day + 5) % 7) : d.w + d.U * 7 - ((day + 6) % 7);\n }\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if ('Z' in d) {\n d.H += (d.Z / 100) | 0;\n d.M += d.Z % 100;\n return utcDate$1(d);\n }\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n /**\n * Creates a new function that formats the given Date or timestamp according to specifier.\n * @param specifier\n * @param formats\n */\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [];\n var n = specifier.length;\n var i = -1;\n var j = 0;\n if (!(date instanceof Date)) {\n date = new Date(+date);\n }\n while (++i < n) {\n if (specifier.charCodeAt(i) === percentCharCode$1) {\n string.push(specifier.slice(j, i)); // copy the chunks of specifier with no directives as is\n var c = specifier.charAt(++i);\n var pad_1 = pads$1[c];\n if (pad_1 != undefined) {\n // if format directive has a padding modifier in front of it\n c = specifier.charAt(++i); // fetch the directive itself\n }\n else {\n pad_1 = c === 'e' ? ' ' : '0'; // use the default padding modifier\n }\n var format = formats[c];\n if (format) {\n // if the directive has a corresponding formatting function\n c = format(date, pad_1); // replace the directive with the formatted date\n }\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join('');\n };\n }\n // Simultaneously walks over the specifier and the parsed string, populating the `d` map with parsed values.\n // The returned number is expected to equal the length of the parsed `string`, if parsing succeeded.\n function parseSpecifier(d, specifier, string, j) {\n // i - `specifier` string index\n // j - parsed `string` index\n var i = 0;\n var n = specifier.length;\n var m = string.length;\n while (i < n) {\n if (j >= m) {\n return -1;\n }\n var code = specifier.charCodeAt(i++);\n if (code === percentCharCode$1) {\n var char = specifier.charAt(i++);\n var parse = parses[(char in pads$1 ? specifier.charAt(i++) : char)];\n if (!parse || (j = parse(d, string, j)) < 0) {\n return -1;\n }\n }\n else if (code != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n // ----------------------------- formats ----------------------------------\n function formatMicroseconds(date, fill) {\n return formatMilliseconds(date, fill) + '000';\n }\n function formatMilliseconds(date, fill) {\n return pad$1(date.getMilliseconds(), fill, 3);\n }\n function formatSeconds(date, fill) {\n return pad$1(date.getSeconds(), fill, 2);\n }\n function formatMinutes(date, fill) {\n return pad$1(date.getMinutes(), fill, 2);\n }\n function formatHour12(date, fill) {\n return pad$1(date.getHours() % 12 || 12, fill, 2);\n }\n function formatHour24(date, fill) {\n return pad$1(date.getHours(), fill, 2);\n }\n function formatPeriod(date) {\n return lPeriods[date.getHours() >= 12 ? 1 : 0];\n }\n function formatShortWeekday(date) {\n return lShortWeekdays[date.getDay()];\n }\n function formatWeekday(date) {\n return lWeekdays[date.getDay()];\n }\n function formatWeekdayNumberMonday(date) {\n var dayOfWeek = date.getDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatWeekNumberSunday(date, fill) {\n return pad$1(sunday$1.count(year$1.floor(date), date), fill, 2);\n }\n function formatWeekNumberISO(date, fill) {\n var day = date.getDay();\n date = day >= 4 || day === 0 ? thursday$1.floor(date) : thursday$1.ceil(date);\n var yearStart = year$1.floor(date);\n return pad$1(thursday$1.count(yearStart, date) + (yearStart.getDay() === 4 ? 1 : 0), fill, 2);\n }\n function formatWeekdayNumberSunday(date) {\n return date.getDay();\n }\n function formatWeekNumberMonday(date, fill) {\n return pad$1(monday$1.count(year$1.floor(date), date), fill, 2);\n }\n function formatDayOfMonth(date, fill) {\n return pad$1(date.getDate(), fill, 2);\n }\n function formatDayOfYear(date, fill) {\n return pad$1(1 + day$1.count(year$1.floor(date), date), fill, 3);\n }\n function formatShortMonth(date) {\n return lShortMonths[date.getMonth()];\n }\n function formatMonth(date) {\n return lMonths[date.getMonth()];\n }\n function formatMonthNumber(date, fill) {\n return pad$1(date.getMonth() + 1, fill, 2);\n }\n function formatYear(date, fill) {\n return pad$1(date.getFullYear() % 100, fill, 2);\n }\n function formatFullYear(date, fill) {\n return pad$1(date.getFullYear() % 10000, fill, 4);\n }\n function formatZone(date) {\n var z = date.getTimezoneOffset();\n return (z > 0 ? '-' : ((z *= -1), '+')) + pad$1(Math.floor(z / 60), '0', 2) + pad$1(z % 60, '0', 2);\n }\n // -------------------------- UTC formats -----------------------------------\n function formatUTCMicroseconds(date, fill) {\n return formatUTCMilliseconds(date, fill) + '000';\n }\n function formatUTCMilliseconds(date, fill) {\n return pad$1(date.getUTCMilliseconds(), fill, 3);\n }\n function formatUTCSeconds(date, fill) {\n return pad$1(date.getUTCSeconds(), fill, 2);\n }\n function formatUTCMinutes(date, fill) {\n return pad$1(date.getUTCMinutes(), fill, 2);\n }\n function formatUTCHour12(date, fill) {\n return pad$1(date.getUTCHours() % 12 || 12, fill, 2);\n }\n function formatUTCHour24(date, fill) {\n return pad$1(date.getUTCHours(), fill, 2);\n }\n function formatUTCPeriod(date) {\n return lPeriods[date.getUTCHours() >= 12 ? 1 : 0];\n }\n function formatUTCDayOfMonth(date, fill) {\n return pad$1(date.getUTCDate(), fill, 2);\n }\n function formatUTCDayOfYear(date, fill) {\n return pad$1(1 + utcDay$1.count(utcYear$1.floor(date), date), fill, 3);\n }\n function formatUTCMonthNumber(date, fill) {\n return pad$1(date.getUTCMonth() + 1, fill, 2);\n }\n function formatUTCShortMonth(date) {\n return lShortMonths[date.getUTCMonth()];\n }\n function formatUTCMonth(date) {\n return lMonths[date.getUTCMonth()];\n }\n function formatUTCShortWeekday(date) {\n return lShortWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekday(date) {\n return lWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekdayNumberMonday(date) {\n var dayOfWeek = date.getUTCDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatUTCWeekNumberSunday(date, fill) {\n return pad$1(utcSunday$1.count(utcYear$1.floor(date), date), fill, 2);\n }\n function formatUTCWeekNumberISO(date, fill) {\n var day = date.getUTCDay();\n date = day >= 4 || day === 0 ? utcThursday$1.floor(date) : utcThursday$1.ceil(date);\n var yearStart = utcYear$1.floor(date);\n return pad$1(utcThursday$1.count(yearStart, date) + (yearStart.getUTCDay() === 4 ? 1 : 0), fill, 4);\n }\n function formatUTCWeekdayNumberSunday(date) {\n return date.getUTCDay();\n }\n function formatUTCWeekNumberMonday(date, fill) {\n return pad$1(utcMonday$1.count(utcYear$1.floor(date), date), fill, 2);\n }\n function formatUTCYear(date, fill) {\n return pad$1(date.getUTCFullYear() % 100, fill, 2);\n }\n function formatUTCFullYear(date, fill) {\n return pad$1(date.getUTCFullYear() % 10000, fill, 4);\n }\n function formatUTCZone() {\n return '+0000';\n }\n function formatLiteralPercent() {\n return '%';\n }\n function formatUnixTimestamp(date) {\n return date.getTime();\n }\n function formatUnixTimestampSeconds(date) {\n return Math.floor(date.getTime() / 1000);\n }\n // ------------------------------- parsers ------------------------------------\n function parseMicroseconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 6));\n return n ? ((d.L = Math.floor(parseFloat(n[0]) / 1000)), i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 3));\n return n ? ((d.L = +n[0]), i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.S = +n[0]), i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.M = +n[0]), i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.H = +n[0]), i + n[0].length) : -1;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? ((d.p = periodLookup[n[0].toLowerCase()]), i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.d = +n[0]), i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 3));\n return n ? ((d.m = 0), (d.d = +n[0]), i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? ((d.w = shortWeekdayLookup[n[0].toLowerCase()]), i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? ((d.w = weekdayLookup[n[0].toLowerCase()]), i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 1));\n return n ? ((d.u = +n[0]), i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.U = +n[0]), i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.V = +n[0]), i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.W = +n[0]), i + n[0].length) : -1;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 1));\n return n ? ((d.w = +n[0]), i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? ((d.m = shortMonthLookup[n[0].toLowerCase()]), i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? ((d.m = monthLookup[n[0].toLowerCase()]), i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.m = parseFloat(n[0]) - 1), i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, lDateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, lDate, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, lTime, string, i);\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe$1.exec(string.slice(i));\n return n ? ((d.Q = +n[0]), i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i));\n return n ? ((d.Q = +n[0] * 1000), i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? ((d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000)), i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 4));\n return n ? ((d.y = +n[0]), i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|^([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? ((d.Z = n[1] ? 0 : -(n[2] + (n[3] || '00'))), i + n[0].length) : -1;\n }\n function parseLiteralPercent(_, string, i) {\n var n = percentRe$1.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n return {\n format: function (specifier) {\n var f = newFormat(specifier, formats);\n f.toString = function () { return specifier; };\n return f;\n },\n parse: function (specifier) {\n var p = newParse(specifier, localDate$1);\n p.toString = function () { return specifier; };\n return p;\n },\n utcFormat: function (specifier) {\n var f = newFormat(specifier, utcFormats);\n f.toString = function () { return specifier; };\n return f;\n },\n utcParse: function (specifier) {\n var p = newParse(specifier, utcDate$1);\n p.toString = function () { return specifier; };\n return p;\n },\n };\n}\n\nvar locale$1;\nsetDefaultLocale$1({\n dateTime: '%x, %X',\n date: '%-m/%-d/%Y',\n time: '%-I:%M:%S %p',\n periods: ['AM', 'PM'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n});\nfunction setDefaultLocale$1(definition) {\n locale$1 = formatLocale$2(definition);\n return locale$1;\n}\n\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values$p = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$B = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$k = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$B(arguments[i]));\n return ar;\n};\nvar _a;\nvar DefaultTimeFormats;\n(function (DefaultTimeFormats) {\n DefaultTimeFormats[DefaultTimeFormats[\"MILLISECOND\"] = 0] = \"MILLISECOND\";\n DefaultTimeFormats[DefaultTimeFormats[\"SECOND\"] = 1] = \"SECOND\";\n DefaultTimeFormats[DefaultTimeFormats[\"MINUTE\"] = 2] = \"MINUTE\";\n DefaultTimeFormats[DefaultTimeFormats[\"HOUR\"] = 3] = \"HOUR\";\n DefaultTimeFormats[DefaultTimeFormats[\"SHORT_MONTH\"] = 4] = \"SHORT_MONTH\";\n DefaultTimeFormats[DefaultTimeFormats[\"MONTH\"] = 5] = \"MONTH\";\n DefaultTimeFormats[DefaultTimeFormats[\"YEAR\"] = 6] = \"YEAR\";\n})(DefaultTimeFormats || (DefaultTimeFormats = {}));\nvar formatStrings = (_a = {},\n _a[DefaultTimeFormats.MILLISECOND] = '.%L',\n _a[DefaultTimeFormats.SECOND] = ':%S',\n _a[DefaultTimeFormats.MINUTE] = '%I:%M',\n _a[DefaultTimeFormats.HOUR] = '%I %p',\n _a[DefaultTimeFormats.SHORT_MONTH] = '%b %d',\n _a[DefaultTimeFormats.MONTH] = '%B',\n _a[DefaultTimeFormats.YEAR] = '%Y',\n _a);\nvar TimeScale$1 = /** @class */ (function (_super) {\n __extends$2A(TimeScale, _super);\n function TimeScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'time';\n _this.year = year$1;\n _this.month = month$1;\n _this.week = sunday$1;\n _this.day = day$1;\n _this.hour = hour$1;\n _this.minute = minute$1;\n _this.second = second$1;\n _this.millisecond = millisecond$1;\n _this.format = locale$1.format;\n /**\n * Array of default tick intervals in the following format:\n *\n * [\n * interval (unit of time),\n * number of units (step),\n * the length of that number of units in milliseconds\n * ]\n */\n _this.tickIntervals = [\n [_this.second, 1, durationSecond$1],\n [_this.second, 5, 5 * durationSecond$1],\n [_this.second, 15, 15 * durationSecond$1],\n [_this.second, 30, 30 * durationSecond$1],\n [_this.minute, 1, durationMinute$1],\n [_this.minute, 5, 5 * durationMinute$1],\n [_this.minute, 15, 15 * durationMinute$1],\n [_this.minute, 30, 30 * durationMinute$1],\n [_this.hour, 1, durationHour$1],\n [_this.hour, 3, 3 * durationHour$1],\n [_this.hour, 6, 6 * durationHour$1],\n [_this.hour, 12, 12 * durationHour$1],\n [_this.day, 1, durationDay$1],\n [_this.day, 2, 2 * durationDay$1],\n [_this.week, 1, durationWeek$1],\n [_this.month, 1, durationMonth$1],\n [_this.month, 3, 3 * durationMonth$1],\n [_this.year, 1, durationYear$1],\n ];\n _this._domain = [new Date(2000, 0, 1), new Date(2000, 0, 2)];\n return _this;\n }\n TimeScale.prototype.calculateDefaultTickFormat = function (ticks) {\n var e_1, _a;\n var defaultTimeFormat = DefaultTimeFormats.YEAR;\n var updateFormat = function (format) {\n if (format < defaultTimeFormat) {\n defaultTimeFormat = format;\n }\n };\n try {\n for (var _b = __values$p((ticks !== null && ticks !== void 0 ? ticks : [])), _c = _b.next(); !_c.done; _c = _b.next()) {\n var value = _c.value;\n this.second.floor(value) < value\n ? updateFormat(DefaultTimeFormats.MILLISECOND)\n : this.minute.floor(value) < value\n ? updateFormat(DefaultTimeFormats.SECOND)\n : this.hour.floor(value) < value\n ? updateFormat(DefaultTimeFormats.MINUTE)\n : this.day.floor(value) < value\n ? updateFormat(DefaultTimeFormats.HOUR)\n : this.month.floor(value) < value\n ? updateFormat(DefaultTimeFormats.SHORT_MONTH)\n : this.year.floor(value) < value\n ? updateFormat(DefaultTimeFormats.MONTH)\n : updateFormat(DefaultTimeFormats.YEAR);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var domain = _super.prototype.getDomain.call(this);\n var start = Math.min.apply(Math, __spread$k(domain));\n var stop = Math.max.apply(Math, __spread$k(domain));\n var extent = stop - start;\n var formatStringArray = [formatStrings[defaultTimeFormat]];\n var timeEndIndex = 0;\n switch (defaultTimeFormat) {\n case DefaultTimeFormats.SECOND:\n if (extent / durationMinute$1 > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.MINUTE]);\n }\n // fall through deliberately\n case DefaultTimeFormats.MINUTE:\n if (extent / durationHour$1 > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.HOUR]);\n }\n // fall through deliberately\n case DefaultTimeFormats.HOUR:\n timeEndIndex = formatStringArray.length;\n if (extent / durationDay$1 > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.SHORT_MONTH]);\n }\n // fall through deliberately\n case DefaultTimeFormats.SHORT_MONTH:\n // fall through deliberately\n case DefaultTimeFormats.MONTH:\n if (extent / durationYear$1 > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.YEAR]);\n }\n }\n if (timeEndIndex < formatStringArray.length) {\n // Insert a gap between all date components.\n formatStringArray = __spread$k(formatStringArray.slice(0, timeEndIndex), [\n formatStringArray.slice(timeEndIndex).join(' '),\n ]);\n }\n if (timeEndIndex > 0) {\n // Reverse order of time components, since they should be displayed in descending\n // granularity.\n formatStringArray = __spread$k(formatStringArray.slice(0, timeEndIndex).reverse(), formatStringArray.slice(timeEndIndex));\n if (timeEndIndex < formatStringArray.length) {\n // Insert a gap between time and date components.\n formatStringArray.splice(timeEndIndex, 0, ' ');\n }\n }\n return formatStringArray.join('');\n };\n TimeScale.prototype.defaultTickFormat = function (ticks) {\n var _this = this;\n var formatString = this.calculateDefaultTickFormat(ticks);\n return function (date) { return _this.format(formatString)(date); };\n };\n /**\n *\n * @param interval If the `interval` is a number, it's interpreted as the desired tick count\n * and the method tries to pick an appropriate interval automatically, based on the extent of the domain.\n * If the `interval` is `undefined`, it defaults to `10`.\n * If the `interval` is a time interval, simply use it.\n * @param start The start time (timestamp).\n * @param stop The end time (timestamp).\n * @param step Number of intervals between ticks.\n */\n TimeScale.prototype.tickInterval = function (_a) {\n var _b;\n var interval = _a.interval, start = _a.start, stop = _a.stop, step = _a.step, offset = _a.offset;\n if (typeof interval === 'number') {\n var tickCount = Math.max(0, interval - ((offset !== null && offset !== void 0 ? offset : 0)));\n var tickIntervals = this.tickIntervals;\n var target = Math.abs(stop - start) / tickCount;\n var i = complexBisectRight$1(tickIntervals, target, function (interval) { return interval[2]; });\n if (i === tickIntervals.length) {\n step = tickStep$1(start / durationYear$1, stop / durationYear$1, tickCount);\n interval = this.year;\n }\n else if (i) {\n _b = __read$B(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2), interval = _b[0], step = _b[1];\n }\n else {\n step = Math.max(tickStep$1(start, stop, interval), 1);\n interval = this.millisecond;\n }\n }\n return step == undefined ? interval : interval.every(step);\n };\n Object.defineProperty(TimeScale.prototype, \"domain\", {\n get: function () {\n return _super.prototype.getDomain.call(this).map(function (t) { return new Date(t); });\n },\n set: function (values) {\n _super.prototype.setDomain.call(this, values.map(function (t) { return (t instanceof Date ? +t : +new Date(+t)); }));\n },\n enumerable: true,\n configurable: true\n });\n TimeScale.prototype.invert = function (y) {\n return new Date(_super.prototype.invert.call(this, y));\n };\n /**\n * Returns uniformly-spaced dates that represent the scale's domain.\n * @param interval The desired tick count or a time interval object.\n */\n TimeScale.prototype.ticks = function (interval, offset) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var t0 = d[0];\n var t1 = d[d.length - 1];\n var reverse = t1 < t0;\n if (reverse) {\n var _ = t0;\n t0 = t1;\n t1 = _;\n }\n var t = this.tickInterval({ interval: interval, start: t0, stop: t1, offset: offset });\n var i = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return reverse ? i.reverse() : i;\n };\n /**\n * Returns a time format function suitable for displaying tick values.\n * @param count Ignored. Used only to satisfy the {@link Scale} interface.\n * @param specifier If the specifier string is provided, this method is equivalent to\n * the {@link TimeLocaleObject.format} method.\n * If no specifier is provided, this method returns the default time format function.\n */\n TimeScale.prototype.tickFormat = function (_a) {\n var ticks = _a.ticks, specifier = _a.specifier;\n return specifier == undefined ? this.defaultTickFormat(ticks) : this.format(specifier);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.\n * @param interval\n */\n TimeScale.prototype.nice = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var i = this.tickInterval({ interval: interval, start: d[0], stop: d[d.length - 1] });\n if (i) {\n this.domain = this._nice(d, i);\n }\n };\n TimeScale.prototype._nice = function (domain, interval) {\n var _a, _b;\n domain = domain.slice();\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read$B([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read$B([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n };\n return TimeScale;\n}(ContinuousScale$1));\n\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TimeAxis = /** @class */ (function (_super) {\n __extends$2z(TimeAxis, _super);\n function TimeAxis() {\n var _this = _super.call(this, new TimeScale$1()) || this;\n _this.datumFormat = '%m/%d/%y, %H:%M:%S';\n _this.min = undefined;\n _this.max = undefined;\n var scale = _this.scale;\n scale.clamp = true;\n scale.clamper = filter;\n _this.refreshScale();\n _this.datumFormatter = scale.tickFormat({\n specifier: _this.datumFormat,\n });\n return _this;\n }\n TimeAxis.prototype.normaliseDataDomain = function (d) {\n var _a = this, min = _a.min, max = _a.max;\n if (typeof min === 'number') {\n min = new Date(min);\n }\n if (typeof max === 'number') {\n max = new Date(max);\n }\n if (d.length > 2) {\n d = (extent$1(d, isContinuous$1, Number) || [0, 1000]).map(function (x) { return new Date(x); });\n }\n if (min instanceof Date) {\n d = [min, d[1]];\n }\n if (max instanceof Date) {\n d = [d[0], max];\n }\n if (d[0] > d[1]) {\n d = [];\n }\n return d;\n };\n TimeAxis.prototype.onLabelFormatChange = function (ticks, format) {\n if (format) {\n _super.prototype.onLabelFormatChange.call(this, ticks, format);\n }\n else {\n // For time axis labels to look nice, even if date format wasn't set.\n this.labelFormatter = this.scale.tickFormat({ ticks: ticks });\n }\n };\n TimeAxis.prototype.formatDatum = function (datum) {\n return this.datumFormatter(datum);\n };\n TimeAxis.className = 'TimeAxis';\n TimeAxis.type = 'time';\n __decorate$1w([\n Validate(AND(OPT_DATE_OR_DATETIME_MS, LESS_THAN('max')))\n ], TimeAxis.prototype, \"min\", void 0);\n __decorate$1w([\n Validate(AND(OPT_DATE_OR_DATETIME_MS, GREATER_THAN('min')))\n ], TimeAxis.prototype, \"max\", void 0);\n return TimeAxis;\n}(ChartAxis));\n\n/**\n * Wraps a native OffscreenCanvas and overrides its OffscreenCanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiOffscreenCanvas = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiOffscreenCanvas(_a) {\n var _b = _a.width, width = _b === void 0 ? 600 : _b, _c = _a.height, height = _c === void 0 ? 300 : _c, _d = _a.overrideDevicePixelRatio, overrideDevicePixelRatio = _d === void 0 ? undefined : _d;\n this.enabled = true;\n this.opacity = 1;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 0;\n this._height = 0;\n this.canvas = new OffscreenCanvas(width, height);\n this.context = this.canvas.getContext('2d');\n this.imageSource = this.canvas.transferToImageBitmap();\n this.setPixelRatio(overrideDevicePixelRatio);\n this.resize(width, height);\n }\n HdpiOffscreenCanvas.isSupported = function () {\n return window['OffscreenCanvas'] != null;\n };\n HdpiOffscreenCanvas.prototype.snapshot = function () {\n this.imageSource.close();\n this.imageSource = this.canvas.transferToImageBitmap();\n };\n HdpiOffscreenCanvas.prototype.destroy = function () {\n this.imageSource.close();\n };\n HdpiOffscreenCanvas.prototype.clear = function () {\n this.context.save();\n this.context.resetTransform();\n this.context.clearRect(0, 0, this.width, this.height);\n this.context.restore();\n };\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiOffscreenCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio || window.devicePixelRatio;\n if (pixelRatio === this.pixelRatio) {\n return;\n }\n HdpiCanvas$1.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n this.resize(this.width, this.height);\n };\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n HdpiOffscreenCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, canvas = _a.canvas, context = _a.context, pixelRatio = _a.pixelRatio;\n canvas.width = Math.round(width * pixelRatio);\n canvas.height = Math.round(height * pixelRatio);\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n return HdpiOffscreenCanvas;\n}());\n\nvar __assign$A = (undefined && undefined.__assign) || function () {\n __assign$A = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$A.apply(this, arguments);\n};\nvar __awaiter$e = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$e = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$A = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$j = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$A(arguments[i]));\n return ar;\n};\nvar __values$o = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Scene$1 = /** @class */ (function () {\n function Scene(opts) {\n var _a, _b;\n this.id = createId$1(this);\n this.layers = [];\n this._nextZIndex = 0;\n this._nextLayerId = 0;\n this._dirty = false;\n this._root = null;\n this.debug = {\n dirtyTree: false,\n stats: false,\n renderBoundingBoxes: false,\n consoleLog: false,\n };\n var _c = opts.document, document = _c === void 0 ? window.document : _c, _d = opts.mode, mode = _d === void 0 ? windowValue('agChartsSceneRenderModel') || 'adv-composite' : _d, width = opts.width, height = opts.height, _e = opts.overrideDevicePixelRatio, overrideDevicePixelRatio = _e === void 0 ? undefined : _e;\n this.overrideDevicePixelRatio = overrideDevicePixelRatio;\n this.opts = { document: document, mode: mode };\n this.debug.stats = (_a = windowValue('agChartsSceneStats'), (_a !== null && _a !== void 0 ? _a : false));\n this.debug.dirtyTree = (_b = windowValue('agChartsSceneDirtyTree'), (_b !== null && _b !== void 0 ? _b : false));\n this.canvas = new HdpiCanvas$1({ document: document, width: width, height: height, overrideDevicePixelRatio: overrideDevicePixelRatio });\n this.ctx = this.canvas.context;\n }\n Object.defineProperty(Scene.prototype, \"container\", {\n get: function () {\n return this.canvas.container;\n },\n set: function (value) {\n this.canvas.container = value;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.download = function (fileName, fileFormat) {\n this.canvas.download(fileName, fileFormat);\n };\n Scene.prototype.getDataURL = function (type) {\n return this.canvas.getDataURL(type);\n };\n Object.defineProperty(Scene.prototype, \"width\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[0] : this.canvas.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"height\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[1] : this.canvas.height;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.resize = function (width, height) {\n width = Math.round(width);\n height = Math.round(height);\n // HdpiCanvas doesn't allow width/height <= 0.\n var lessThanZero = width <= 0 || height <= 0;\n var unchanged = width === this.width && height === this.height;\n if (unchanged || lessThanZero) {\n return false;\n }\n this.pendingSize = [width, height];\n this.markDirty();\n return true;\n };\n Scene.prototype.addLayer = function (opts) {\n var _a;\n var mode = this.opts.mode;\n var layeredModes = ['composite', 'dom-composite', 'adv-composite'];\n if (!layeredModes.includes(mode)) {\n return undefined;\n }\n var _b = opts || {}, _c = _b.zIndex, zIndex = _c === void 0 ? this._nextZIndex++ : _c, name = _b.name, zIndexSubOrder = _b.zIndexSubOrder;\n var _d = this, width = _d.width, height = _d.height, overrideDevicePixelRatio = _d.overrideDevicePixelRatio;\n var domLayer = mode === 'dom-composite';\n var advLayer = mode === 'adv-composite';\n var canvas = !advLayer || !HdpiOffscreenCanvas.isSupported()\n ? new HdpiCanvas$1({\n document: this.opts.document,\n width: width,\n height: height,\n domLayer: domLayer,\n zIndex: zIndex,\n name: name,\n overrideDevicePixelRatio: overrideDevicePixelRatio,\n })\n : new HdpiOffscreenCanvas({\n width: width,\n height: height,\n overrideDevicePixelRatio: overrideDevicePixelRatio,\n });\n var newLayer = {\n id: this._nextLayerId++,\n name: name,\n zIndex: zIndex,\n zIndexSubOrder: zIndexSubOrder,\n canvas: canvas,\n };\n if (zIndex >= this._nextZIndex) {\n this._nextZIndex = zIndex + 1;\n }\n this.layers.push(newLayer);\n this.sortLayers();\n if (domLayer) {\n var domCanvases = this.layers\n .map(function (v) { return v.canvas; })\n .filter(function (v) { return v instanceof HdpiCanvas$1; });\n var newLayerIndex = domCanvases.findIndex(function (v) { return v === canvas; });\n var lastLayer = (_a = domCanvases[newLayerIndex - 1], (_a !== null && _a !== void 0 ? _a : this.canvas));\n lastLayer.element.insertAdjacentElement('afterend', canvas.element);\n }\n if (this.debug.consoleLog) {\n console.log({ layers: this.layers });\n }\n return newLayer.canvas;\n };\n Scene.prototype.removeLayer = function (canvas) {\n var index = this.layers.findIndex(function (l) { return l.canvas === canvas; });\n if (index >= 0) {\n this.layers.splice(index, 1);\n canvas.destroy();\n this.markDirty();\n if (this.debug.consoleLog) {\n console.log({ layers: this.layers });\n }\n }\n };\n Scene.prototype.moveLayer = function (canvas, newZIndex, newZIndexSubOrder) {\n var layer = this.layers.find(function (l) { return l.canvas === canvas; });\n if (layer) {\n layer.zIndex = newZIndex;\n layer.zIndexSubOrder = newZIndexSubOrder;\n this.sortLayers();\n this.markDirty();\n if (this.debug.consoleLog) {\n console.log({ layers: this.layers });\n }\n }\n };\n Scene.prototype.sortLayers = function () {\n this.layers.sort(function (a, b) {\n var _a, _b;\n return compoundAscending(__spread$j([a.zIndex], (_a = a.zIndexSubOrder, (_a !== null && _a !== void 0 ? _a : [undefined, undefined])), [a.id]), __spread$j([b.zIndex], (_b = b.zIndexSubOrder, (_b !== null && _b !== void 0 ? _b : [undefined, undefined])), [b.id]), ascendingStringNumberUndefined);\n });\n };\n Scene.prototype.markDirty = function () {\n this._dirty = true;\n };\n Object.defineProperty(Scene.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"root\", {\n get: function () {\n return this._root;\n },\n set: function (node) {\n if (node === this._root) {\n return;\n }\n if (this._root) {\n this._root._setScene();\n }\n this._root = node;\n if (node) {\n // If `node` is the root node of another scene ...\n if (node.parent === null && node.scene && node.scene !== this) {\n node.scene.root = null;\n }\n node._setScene(this);\n }\n this.markDirty();\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.destroy = function () {\n var e_1, _a;\n this.container = undefined;\n var layers = this.layers;\n try {\n for (var layers_1 = __values$o(layers), layers_1_1 = layers_1.next(); !layers_1_1.done; layers_1_1 = layers_1.next()) {\n var layer = layers_1_1.value;\n layer.canvas.destroy();\n delete layer['canvas'];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (layers_1_1 && !layers_1_1.done && (_a = layers_1.return)) _a.call(layers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n layers.splice(0, layers.length);\n };\n Scene.prototype.render = function (opts) {\n return __awaiter$e(this, void 0, void 0, function () {\n var _a, _b, debugSplitTimes, _c, extraDebugStats, _d, canvas, ctx, root, layers, pendingSize, mode, renderCtx, canvasCleared, _e, dirtyTree, paths;\n var _f;\n return __generator$e(this, function (_g) {\n _a = opts || {}, _b = _a.debugSplitTimes, debugSplitTimes = _b === void 0 ? [performance.now()] : _b, _c = _a.extraDebugStats, extraDebugStats = _c === void 0 ? {} : _c;\n _d = this, canvas = _d.canvas, ctx = _d.ctx, root = _d.root, layers = _d.layers, pendingSize = _d.pendingSize, mode = _d.opts.mode;\n if (pendingSize) {\n (_f = this.canvas).resize.apply(_f, __spread$j(pendingSize));\n this.layers.forEach(function (layer) {\n var _a;\n return (_a = layer.canvas).resize.apply(_a, __spread$j(pendingSize));\n });\n this.pendingSize = undefined;\n }\n if (root && !root.visible) {\n this._dirty = false;\n return [2 /*return*/];\n }\n if (root && !this.dirty) {\n if (this.debug.consoleLog) {\n console.log('no-op', {\n redrawType: RedrawType[root.dirty],\n tree: this.buildTree(root),\n });\n }\n this.debugStats(debugSplitTimes, ctx, undefined, extraDebugStats);\n return [2 /*return*/];\n }\n renderCtx = {\n ctx: ctx,\n forceRender: true,\n resized: !!pendingSize,\n };\n if (this.debug.stats === 'detailed') {\n renderCtx.stats = { layersRendered: 0, layersSkipped: 0, nodesRendered: 0, nodesSkipped: 0 };\n }\n canvasCleared = false;\n if (!root || root.dirty >= RedrawType.TRIVIAL) {\n // start with a blank canvas, clear previous drawing\n canvasCleared = true;\n canvas.clear();\n }\n if (root && this.debug.dirtyTree) {\n _e = this.buildDirtyTree(root), dirtyTree = _e.dirtyTree, paths = _e.paths;\n console.log({ dirtyTree: dirtyTree, paths: paths });\n }\n if (root && canvasCleared) {\n if (this.debug.consoleLog) {\n console.log('before', {\n redrawType: RedrawType[root.dirty],\n canvasCleared: canvasCleared,\n tree: this.buildTree(root),\n });\n }\n if (root.visible) {\n ctx.save();\n root.render(renderCtx);\n ctx.restore();\n }\n }\n if (mode !== 'dom-composite' && layers.length > 0 && canvasCleared) {\n ctx.save();\n ctx.setTransform(1 / canvas.pixelRatio, 0, 0, 1 / canvas.pixelRatio, 0, 0);\n layers.forEach(function (_a) {\n var _b = _a.canvas, imageSource = _b.imageSource, enabled = _b.enabled, opacity = _b.opacity;\n if (!enabled) {\n return;\n }\n ctx.globalAlpha = opacity;\n ctx.drawImage(imageSource, 0, 0);\n });\n ctx.restore();\n }\n this._dirty = false;\n this.debugStats(debugSplitTimes, ctx, renderCtx.stats, extraDebugStats);\n if (root && this.debug.consoleLog) {\n console.log('after', { redrawType: RedrawType[root.dirty], canvasCleared: canvasCleared, tree: this.buildTree(root) });\n }\n return [2 /*return*/];\n });\n });\n };\n Scene.prototype.debugStats = function (debugSplitTimes, ctx, renderCtxStats, extraDebugStats) {\n var e_2, _a;\n if (extraDebugStats === void 0) { extraDebugStats = {}; }\n var end = performance.now();\n if (this.debug.stats) {\n var start = debugSplitTimes[0];\n debugSplitTimes.push(end);\n var pct = function (rendered, skipped) {\n var total = rendered + skipped;\n return rendered + \" / \" + total + \" (\" + Math.round((100 * rendered) / total) + \"%)\";\n };\n var time_1 = function (start, end) {\n return Math.round((end - start) * 100) / 100 + \"ms\";\n };\n var _b = (renderCtxStats !== null && renderCtxStats !== void 0 ? renderCtxStats : {}), _c = _b.layersRendered, layersRendered = _c === void 0 ? 0 : _c, _d = _b.layersSkipped, layersSkipped = _d === void 0 ? 0 : _d, _e = _b.nodesRendered, nodesRendered = _e === void 0 ? 0 : _e, _f = _b.nodesSkipped, nodesSkipped = _f === void 0 ? 0 : _f;\n var splits = debugSplitTimes\n .map(function (t, i) { return (i > 0 ? time_1(debugSplitTimes[i - 1], t) : null); })\n .filter(function (v) { return v != null; })\n .join(' + ');\n var extras = Object.entries(extraDebugStats)\n .map(function (_a) {\n var _b = __read$A(_a, 2), k = _b[0], v = _b[1];\n return k + \": \" + v;\n })\n .join(' ; ');\n var stats = [\n time_1(start, end) + \" (\" + splits + \")\",\n \"\" + extras,\n this.debug.stats === 'detailed' ? \"Layers: \" + pct(layersRendered, layersSkipped) : null,\n this.debug.stats === 'detailed' ? \"Nodes: \" + pct(nodesRendered, nodesSkipped) : null,\n ].filter(function (v) { return v != null; });\n var lineHeight = 15;\n ctx.save();\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, 200, 10 + lineHeight * stats.length);\n ctx.fillStyle = 'black';\n var index = 0;\n try {\n for (var stats_1 = __values$o(stats), stats_1_1 = stats_1.next(); !stats_1_1.done; stats_1_1 = stats_1.next()) {\n var stat = stats_1_1.value;\n ctx.fillText(stat, 2, 10 + index++ * lineHeight);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (stats_1_1 && !stats_1_1.done && (_a = stats_1.return)) _a.call(stats_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n ctx.restore();\n }\n };\n Scene.prototype.buildTree = function (node) {\n var _this = this;\n var _a;\n var name = (_a = (node instanceof Group$1 ? node.name : null), (_a !== null && _a !== void 0 ? _a : node.id));\n return __assign$A({ name: name,\n node: node, dirty: RedrawType[node.dirty] }, node.children\n .map(function (c) { return _this.buildTree(c); })\n .reduce(function (result, childTree) {\n var treeNodeName = childTree.name, _a = childTree.node, visible = _a.visible, opacity = _a.opacity, zIndex = _a.zIndex, zIndexSubOrder = _a.zIndexSubOrder;\n if (!visible || opacity <= 0) {\n treeNodeName = \"( \" + treeNodeName + \" )\";\n }\n if (node instanceof Group$1 && node.isLayer()) {\n treeNodeName = \"[ \" + treeNodeName + \" ]\";\n }\n var key = [\n \"\" + (treeNodeName !== null && treeNodeName !== void 0 ? treeNodeName : ''),\n \"z: \" + zIndex,\n zIndexSubOrder && \"zo: \" + zIndexSubOrder.join(' / '),\n ]\n .filter(function (v) { return !!v; })\n .join(' ');\n result[key] = childTree;\n return result;\n }, {}));\n };\n Scene.prototype.buildDirtyTree = function (node) {\n var _this = this;\n var _a;\n if (node.dirty === RedrawType.NONE) {\n return { dirtyTree: {}, paths: [] };\n }\n var childrenDirtyTree = node.children.map(function (c) { return _this.buildDirtyTree(c); }).filter(function (c) { return c.paths.length > 0; });\n var name = (_a = (node instanceof Group$1 ? node.name : null), (_a !== null && _a !== void 0 ? _a : node.id));\n var paths = childrenDirtyTree.length === 0\n ? [name]\n : childrenDirtyTree\n .map(function (c) { return c.paths; })\n .reduce(function (r, p) { return r.concat(p); }, [])\n .map(function (p) { return name + \".\" + p; });\n return {\n dirtyTree: __assign$A({ name: name,\n node: node, dirty: RedrawType[node.dirty] }, childrenDirtyTree\n .map(function (c) { return c.dirtyTree; })\n .filter(function (t) { return t.dirty !== undefined; })\n .reduce(function (result, childTree) {\n result[childTree.name || ''] = childTree;\n return result;\n }, {})),\n paths: paths,\n };\n };\n Scene.className = 'Scene';\n return Scene;\n}());\n\nfunction createDeprecationWarning() {\n var logged = false;\n return function (key, message) {\n if (logged) {\n return;\n }\n var msg = [\"AG Charts - Property [\" + key + \"] is deprecated.\", message].filter(function (v) { return v != null; }).join(' ');\n console.warn(msg);\n logged = true;\n };\n}\nfunction Deprecated(message, opts) {\n var _a;\n var def = (_a = opts) === null || _a === void 0 ? void 0 : _a.default;\n var warn = createDeprecationWarning();\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n if (target.hasOwnProperty(key)) {\n return;\n }\n var symbol = Symbol(\"__\" + key + \"__\");\n Object.defineProperty(target, key, {\n get: function () {\n return this[symbol];\n },\n set: function (value) {\n if (value !== def) {\n warn(key, message);\n }\n this[symbol] = value;\n },\n enumerable: true,\n configurable: false,\n });\n };\n}\nfunction DeprecatedAndRenamedTo(newPropName) {\n var warnDeprecated = createDeprecationWarning();\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n if (target.hasOwnProperty(key)) {\n return;\n }\n var warnRenamed = function () { return warnDeprecated(key, \"Use [\" + newPropName + \"] instead.\"); };\n Object.defineProperty(target, key, {\n get: function () {\n warnRenamed();\n return this[newPropName];\n },\n set: function (value) {\n if (value !== this[newPropName]) {\n warnRenamed();\n this[newPropName] = value;\n }\n },\n enumerable: true,\n configurable: false,\n });\n };\n}\n\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$z = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$i = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$z(arguments[i]));\n return ar;\n};\nvar __values$n = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/** Modes of matching user interactions to rendered nodes (e.g. hover or click) */\nvar SeriesNodePickMode;\n(function (SeriesNodePickMode) {\n /** Pick matches based upon pick coordinates being inside a matching shape/marker. */\n SeriesNodePickMode[SeriesNodePickMode[\"EXACT_SHAPE_MATCH\"] = 0] = \"EXACT_SHAPE_MATCH\";\n /** Pick matches by nearest category/X-axis value, then distance within that category/X-value. */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_BY_MAIN_AXIS_FIRST\"] = 1] = \"NEAREST_BY_MAIN_AXIS_FIRST\";\n /** Pick matches by nearest category value, then distance within that category. */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST\"] = 2] = \"NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST\";\n /** Pick matches based upon distance to ideal position */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_NODE\"] = 3] = \"NEAREST_NODE\";\n})(SeriesNodePickMode || (SeriesNodePickMode = {}));\nvar warnDeprecated = createDeprecationWarning();\nvar warnSeriesDeprecated = function () { return warnDeprecated('series', 'Use seriesId to get the series ID'); };\nvar SeriesNodeClickEvent = /** @class */ (function () {\n function SeriesNodeClickEvent(nativeEvent, datum, series) {\n this.type = 'nodeClick';\n this.event = nativeEvent;\n this.datum = datum.datum;\n this.seriesId = series.id;\n this._series = series;\n }\n Object.defineProperty(SeriesNodeClickEvent.prototype, \"series\", {\n /** @deprecated */\n get: function () {\n warnSeriesDeprecated();\n return this._series;\n },\n enumerable: true,\n configurable: true\n });\n return SeriesNodeClickEvent;\n}());\nvar SeriesItemHighlightStyle = /** @class */ (function () {\n function SeriesItemHighlightStyle() {\n this.fill = 'yellow';\n this.fillOpacity = undefined;\n this.stroke = undefined;\n this.strokeWidth = undefined;\n }\n __decorate$1v([\n Validate(OPT_COLOR_STRING)\n ], SeriesItemHighlightStyle.prototype, \"fill\", void 0);\n __decorate$1v([\n Validate(OPT_NUMBER(0, 1))\n ], SeriesItemHighlightStyle.prototype, \"fillOpacity\", void 0);\n __decorate$1v([\n Validate(OPT_COLOR_STRING)\n ], SeriesItemHighlightStyle.prototype, \"stroke\", void 0);\n __decorate$1v([\n Validate(OPT_NUMBER(0))\n ], SeriesItemHighlightStyle.prototype, \"strokeWidth\", void 0);\n return SeriesItemHighlightStyle;\n}());\nvar SeriesHighlightStyle = /** @class */ (function () {\n function SeriesHighlightStyle() {\n this.strokeWidth = undefined;\n this.dimOpacity = undefined;\n this.enabled = undefined;\n }\n __decorate$1v([\n Validate(OPT_NUMBER(0))\n ], SeriesHighlightStyle.prototype, \"strokeWidth\", void 0);\n __decorate$1v([\n Validate(OPT_NUMBER(0, 1))\n ], SeriesHighlightStyle.prototype, \"dimOpacity\", void 0);\n __decorate$1v([\n Validate(OPT_BOOLEAN)\n ], SeriesHighlightStyle.prototype, \"enabled\", void 0);\n return SeriesHighlightStyle;\n}());\nvar HighlightStyle = /** @class */ (function () {\n function HighlightStyle() {\n /**\n * @deprecated Use item.fill instead.\n */\n this.fill = undefined;\n /**\n * @deprecated Use item.stroke instead.\n */\n this.stroke = undefined;\n /**\n * @deprecated Use item.strokeWidth instead.\n */\n this.strokeWidth = undefined;\n this.item = new SeriesItemHighlightStyle();\n this.series = new SeriesHighlightStyle();\n }\n __decorate$1v([\n Deprecated('Use item.fill instead.')\n ], HighlightStyle.prototype, \"fill\", void 0);\n __decorate$1v([\n Deprecated('Use item.stroke instead.')\n ], HighlightStyle.prototype, \"stroke\", void 0);\n __decorate$1v([\n Deprecated('Use item.strokeWidth instead.')\n ], HighlightStyle.prototype, \"strokeWidth\", void 0);\n return HighlightStyle;\n}());\nvar SeriesTooltip = /** @class */ (function () {\n function SeriesTooltip() {\n this.enabled = true;\n }\n __decorate$1v([\n Validate(BOOLEAN)\n ], SeriesTooltip.prototype, \"enabled\", void 0);\n return SeriesTooltip;\n}());\nvar Series = /** @class */ (function (_super) {\n __extends$2y(Series, _super);\n function Series(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.useSeriesGroupLayer, useSeriesGroupLayer = _c === void 0 ? true : _c, _d = _b.useLabelLayer, useLabelLayer = _d === void 0 ? false : _d, _e = _b.pickModes, pickModes = _e === void 0 ? [SeriesNodePickMode.NEAREST_BY_MAIN_AXIS_FIRST] : _e;\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n // The group node that contains all the nodes used to render this series.\n _this.group = new Group$1();\n _this.directions = [ChartAxisDirection.X, ChartAxisDirection.Y];\n _this.directionKeys = {};\n // Flag to determine if we should recalculate node data.\n _this.nodeDataRefresh = true;\n _this._data = undefined;\n _this._visible = true;\n _this.showInLegend = true;\n _this.cursor = 'default';\n _this.highlightStyle = new HighlightStyle();\n var group = _this.group;\n _this.backgroundGroup = group.appendChild(new Group$1({\n name: _this.id + \"-background\",\n layer: useSeriesGroupLayer,\n zIndex: Layers.SERIES_BACKGROUND_ZINDEX,\n }));\n _this.seriesGroup = group.appendChild(new Group$1({\n name: _this.id + \"-series\",\n layer: useSeriesGroupLayer,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n }));\n _this.pickGroup = _this.seriesGroup.appendChild(new Group$1());\n _this.highlightGroup = group.appendChild(new Group$1({\n name: _this.id + \"-highlight\",\n layer: true,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: [_this.id, 15000],\n optimiseDirtyTracking: true,\n }));\n _this.highlightNode = _this.highlightGroup.appendChild(new Group$1());\n _this.highlightLabel = _this.highlightGroup.appendChild(new Group$1());\n _this.highlightNode.zIndex = 0;\n _this.highlightLabel.zIndex = 10;\n _this.pickModes = pickModes;\n if (useLabelLayer) {\n _this.labelGroup = group.appendChild(new Group$1({\n name: _this.id + \"-series-labels\",\n layer: true,\n zIndex: Layers.SERIES_LABEL_ZINDEX,\n }));\n }\n return _this;\n }\n Object.defineProperty(Series.prototype, \"type\", {\n get: function () {\n return this.constructor.type || '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Series.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (input) {\n this._data = input;\n this.nodeDataRefresh = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Series.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.visibleChanged();\n },\n enumerable: true,\n configurable: true\n });\n Series.prototype.destroy = function () {\n // Override point for sub-classes.\n };\n Object.defineProperty(Series.prototype, \"grouped\", {\n set: function (g) {\n if (g === true) {\n throw new Error(\"AG Charts - grouped: true is unsupported for series of type: \" + this.type);\n }\n },\n enumerable: true,\n configurable: true\n });\n Series.prototype.setColors = function (_fills, _strokes) {\n // Override point for subclasses.\n };\n // Returns the actual keys used (to fetch the values from `data` items) for the given direction.\n Series.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values.push.apply(values, __spread$i(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n // Indicate that something external changed and we should recalculate nodeData.\n Series.prototype.markNodeDataDirty = function () {\n this.nodeDataRefresh = true;\n };\n Series.prototype.visibleChanged = function () {\n // Override point for this.visible change post-processing.\n };\n Series.prototype.getOpacity = function (datum) {\n var _a = this.highlightStyle.series, _b = _a.dimOpacity, dimOpacity = _b === void 0 ? 1 : _b, _c = _a.enabled, enabled = _c === void 0 ? true : _c;\n var defaultOpacity = 1;\n if (enabled === false || dimOpacity === defaultOpacity) {\n return defaultOpacity;\n }\n switch (this.isItemIdHighlighted(datum)) {\n case 'no-highlight':\n case 'highlighted':\n return defaultOpacity;\n case 'peer-highlighted':\n case 'other-highlighted':\n return dimOpacity;\n }\n };\n Series.prototype.getStrokeWidth = function (defaultStrokeWidth, datum) {\n var _a = this.highlightStyle.series, strokeWidth = _a.strokeWidth, _b = _a.enabled, enabled = _b === void 0 ? true : _b;\n if (enabled === false || strokeWidth === undefined) {\n // No change in styling for highlight cases.\n return defaultStrokeWidth;\n }\n switch (this.isItemIdHighlighted(datum)) {\n case 'highlighted':\n return strokeWidth;\n case 'no-highlight':\n case 'other-highlighted':\n case 'peer-highlighted':\n return defaultStrokeWidth;\n }\n };\n Series.prototype.isItemIdHighlighted = function (datum) {\n var _a = this.chart, _b = _a === void 0 ? {} : _a, _c = _b.highlightedDatum, _d = _c === void 0 ? {} : _c, _e = _d.series, series = _e === void 0 ? undefined : _e, _f = _d.itemId, itemId = _f === void 0 ? undefined : _f, _g = _b.highlightedDatum, highlightedDatum = _g === void 0 ? undefined : _g;\n var highlighting = series != null;\n if (!highlighting) {\n // Highlighting not active.\n return 'no-highlight';\n }\n if (series !== this) {\n // Highlighting active, this series not highlighted.\n return 'other-highlighted';\n }\n if (itemId === undefined) {\n // Series doesn't use itemIds - so no further refinement needed, series is highlighted.\n return 'highlighted';\n }\n if (datum && highlightedDatum !== datum && itemId !== datum.itemId) {\n // A peer (in same Series instance) sub-series has highlight active, but this sub-series\n // does not.\n return 'peer-highlighted';\n }\n return 'highlighted';\n };\n Series.prototype.pickNode = function (point, limitPickModes) {\n var e_1, _a;\n var _b = this, pickModes = _b.pickModes, visible = _b.visible, group = _b.group;\n if (!visible || !group.visible) {\n return;\n }\n try {\n for (var pickModes_1 = __values$n(pickModes), pickModes_1_1 = pickModes_1.next(); !pickModes_1_1.done; pickModes_1_1 = pickModes_1.next()) {\n var pickMode = pickModes_1_1.value;\n if (limitPickModes && !limitPickModes.includes(pickMode)) {\n continue;\n }\n var match = undefined;\n switch (pickMode) {\n case SeriesNodePickMode.EXACT_SHAPE_MATCH:\n match = this.pickNodeExactShape(point);\n break;\n case SeriesNodePickMode.NEAREST_BY_MAIN_AXIS_FIRST:\n case SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST:\n match = this.pickNodeMainAxisFirst(point, pickMode === SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST);\n break;\n case SeriesNodePickMode.NEAREST_NODE:\n match = this.pickNodeClosestDatum(point);\n break;\n }\n if (match) {\n return { pickMode: pickMode, match: match.datum, distance: match.distance };\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pickModes_1_1 && !pickModes_1_1.done && (_a = pickModes_1.return)) _a.call(pickModes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Series.prototype.pickNodeExactShape = function (point) {\n var match = this.pickGroup.pickNode(point.x, point.y);\n if (match) {\n return {\n datum: match.datum,\n distance: 0,\n };\n }\n };\n Series.prototype.pickNodeClosestDatum = function (_point) {\n // Override point for sub-classes - but if this is invoked, the sub-class specified it wants\n // to use this feature.\n throw new Error('AG Charts - Series.pickNodeClosestDatum() not implemented');\n };\n Series.prototype.pickNodeMainAxisFirst = function (_point, _requireCategoryAxis) {\n // Override point for sub-classes - but if this is invoked, the sub-class specified it wants\n // to use this feature.\n throw new Error('AG Charts - Series.pickNodeMainAxisFirst() not implemented');\n };\n Series.prototype.fireNodeClickEvent = function (_event, _datum) {\n var eventObject = this.getNodeClickEvent(_event, _datum);\n this.fireEvent(eventObject);\n };\n Series.prototype.getNodeClickEvent = function (event, datum) {\n return new SeriesNodeClickEvent(event, datum, this);\n };\n Series.prototype.toggleSeriesItem = function (_itemId, enabled) {\n this.visible = enabled;\n this.nodeDataRefresh = true;\n };\n Series.prototype.isEnabled = function () {\n return this.visible;\n };\n Series.prototype.fixNumericExtent = function (extent, axis) {\n if (extent === undefined) {\n // Don't return a range, there is no range.\n return [];\n }\n var _a = __read$z(extent, 2), min = _a[0], max = _a[1];\n min = +min;\n max = +max;\n if (min === 0 && max === 0) {\n // domain has zero length and the single valid value is 0. Use the default of [0, 1].\n return [0, 1];\n }\n if (min === Infinity && max === -Infinity) {\n // There's no data in the domain.\n return [];\n }\n if (min === Infinity) {\n min = 0;\n }\n if (max === -Infinity) {\n max = 0;\n }\n if (min === max) {\n // domain has zero length, there is only a single valid value in data\n if (axis instanceof TimeAxis) {\n // numbers in domain correspond to Unix timestamps\n // automatically expand domain by 1 in each direction\n min -= 1;\n max += 1;\n }\n else {\n var padding = Math.abs(min * 0.01);\n min -= padding;\n max += padding;\n }\n }\n if (!(isNumber$1(min) && isNumber$1(max))) {\n return [];\n }\n return [min, max];\n };\n Series.highlightedZIndex = 1000000000000;\n __decorate$1v([\n Validate(STRING)\n ], Series.prototype, \"id\", void 0);\n __decorate$1v([\n Validate(BOOLEAN)\n ], Series.prototype, \"_visible\", void 0);\n __decorate$1v([\n Validate(BOOLEAN)\n ], Series.prototype, \"showInLegend\", void 0);\n __decorate$1v([\n Validate(STRING)\n ], Series.prototype, \"cursor\", void 0);\n return Series;\n}(Observable$1));\n\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Padding$1 = /** @class */ (function (_super) {\n __extends$2x(Padding, _super);\n function Padding(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = top; }\n if (bottom === void 0) { bottom = top; }\n if (left === void 0) { left = right; }\n var _this = _super.call(this) || this;\n _this.top = top;\n _this.right = right;\n _this.bottom = bottom;\n _this.left = left;\n return _this;\n }\n Padding.prototype.clear = function () {\n this.top = this.right = this.bottom = this.left = 0;\n };\n __decorate$1u([\n Validate(NUMBER(0))\n ], Padding.prototype, \"top\", void 0);\n __decorate$1u([\n Validate(NUMBER(0))\n ], Padding.prototype, \"right\", void 0);\n __decorate$1u([\n Validate(NUMBER(0))\n ], Padding.prototype, \"bottom\", void 0);\n __decorate$1u([\n Validate(NUMBER(0))\n ], Padding.prototype, \"left\", void 0);\n return Padding;\n}(Observable$1));\n\nvar Gradient = /** @class */ (function () {\n function Gradient() {\n this.stops = [];\n }\n return Gradient;\n}());\n\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LinearGradient = /** @class */ (function (_super) {\n __extends$2w(LinearGradient, _super);\n function LinearGradient() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.angle = 0;\n return _this;\n }\n LinearGradient.prototype.createGradient = function (ctx, bbox) {\n var stops = this.stops;\n var radians = ((this.angle % 360) * Math.PI) / 180;\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var w = bbox.width;\n var h = bbox.height;\n var cx = bbox.x + w * 0.5;\n var cy = bbox.y + h * 0.5;\n if (w > 0 && h > 0) {\n var l = (Math.sqrt(h * h + w * w) * Math.abs(Math.cos(radians - Math.atan(h / w)))) / 2;\n var gradient_1 = ctx.createLinearGradient(cx + cos * l, cy + sin * l, cx - cos * l, cy - sin * l);\n stops.forEach(function (stop) {\n gradient_1.addColorStop(stop.offset, stop.color);\n });\n return gradient_1;\n }\n return 'black';\n };\n return LinearGradient;\n}(Gradient));\n\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RectSizing;\n(function (RectSizing) {\n RectSizing[RectSizing[\"Content\"] = 0] = \"Content\";\n RectSizing[RectSizing[\"Border\"] = 1] = \"Border\";\n})(RectSizing || (RectSizing = {}));\nvar Rect = /** @class */ (function (_super) {\n __extends$2v(Rect, _super);\n function Rect() {\n var _this = _super.call(this, function (ctx) { return _this.renderRect(ctx); }) || this;\n _this.borderPath = new Path2D$1();\n _this.x = 0;\n _this.y = 0;\n _this.width = 10;\n _this.height = 10;\n _this.radius = 0;\n /**\n * If `true`, the rect is aligned to the pixel grid for crisp looking lines.\n * Animated rects may not look nice with this option enabled, for example\n * when a rect is translated by a sub-pixel value on each frame.\n */\n _this.crisp = false;\n _this.gradient = false;\n _this.lastUpdatePathStrokeWidth = Shape$1.defaultStyles.strokeWidth;\n _this.effectiveStrokeWidth = Shape$1.defaultStyles.strokeWidth;\n /**\n * When the rectangle's width or height is less than a pixel\n * and crisp mode is on, the rectangle will still fit into the pixel,\n * but will be less opaque to make an effect of holding less space.\n */\n _this.microPixelEffectOpacity = 1;\n return _this;\n }\n Rect.prototype.updateGradientInstance = function () {\n var fill = this.fill;\n if (this.gradient) {\n if (fill) {\n var gradient = new LinearGradient();\n gradient.angle = 270;\n gradient.stops = [\n {\n offset: 0,\n color: Color$1.fromString(fill).brighter().toString(),\n },\n {\n offset: 1,\n color: Color$1.fromString(fill).darker().toString(),\n },\n ];\n this.gradientInstance = gradient;\n }\n }\n else {\n this.gradientInstance = undefined;\n }\n this.gradientFill = fill;\n };\n Rect.prototype.isDirtyPath = function () {\n var _a;\n if (this.lastUpdatePathStrokeWidth !== this.strokeWidth) {\n return true;\n }\n if (this.path.isDirty() || this.borderPath.isDirty() || ((_a = this.clipPath) === null || _a === void 0 ? void 0 : _a.isDirty())) {\n return true;\n }\n return false;\n };\n Rect.prototype.updatePath = function () {\n var _a, _b, _c;\n var _d = this, path = _d.path, borderPath = _d.borderPath, crisp = _d.crisp;\n var _e = this, x = _e.x, y = _e.y, w = _e.width, h = _e.height, strokeWidth = _e.strokeWidth;\n var pixelRatio = (_b = (_a = this.scene) === null || _a === void 0 ? void 0 : _a.canvas.pixelRatio, (_b !== null && _b !== void 0 ? _b : 1));\n var pixelSize = 1 / pixelRatio;\n var microPixelEffectOpacity = 1;\n path.clear({ trackChanges: true });\n borderPath.clear({ trackChanges: true });\n if (crisp) {\n if (w <= pixelSize) {\n microPixelEffectOpacity *= w / pixelSize;\n }\n if (h <= pixelSize) {\n microPixelEffectOpacity *= h / pixelSize;\n }\n w = this.align(x, w);\n h = this.align(y, h);\n x = this.align(x);\n y = this.align(y);\n }\n if (strokeWidth) {\n if (w < pixelSize) {\n // Too narrow, draw a vertical stroke\n var lx = x + pixelSize / 2;\n borderPath.moveTo(lx, y);\n borderPath.lineTo(lx, y + h);\n strokeWidth = pixelSize;\n this.borderClipPath = undefined;\n }\n else if (h < pixelSize) {\n // Too narrow, draw a horizontal stroke\n var ly = y + pixelSize / 2;\n borderPath.moveTo(x, ly);\n borderPath.lineTo(x + w, ly);\n strokeWidth = pixelSize;\n this.borderClipPath = undefined;\n }\n else if (strokeWidth < w && strokeWidth < h) {\n var halfStrokeWidth = strokeWidth / 2;\n x += halfStrokeWidth;\n y += halfStrokeWidth;\n w -= strokeWidth;\n h -= strokeWidth;\n // Clipping not needed in this case; fill to center of stroke.\n this.borderClipPath = undefined;\n path.rect(x, y, w, h);\n borderPath.rect(x, y, w, h);\n }\n else {\n // Skip the fill and just render the stroke.\n this.borderClipPath = (_c = this.borderClipPath, (_c !== null && _c !== void 0 ? _c : new Path2D$1()));\n this.borderClipPath.clear({ trackChanges: true });\n this.borderClipPath.rect(x, y, w, h);\n borderPath.rect(x, y, w, h);\n }\n }\n else {\n // No borderPath needed, and thus no clipPath needed either. Fill to full extent of\n // Rect.\n this.borderClipPath = undefined;\n path.rect(x, y, w, h);\n }\n this.effectiveStrokeWidth = strokeWidth;\n this.lastUpdatePathStrokeWidth = strokeWidth;\n this.microPixelEffectOpacity = microPixelEffectOpacity;\n };\n Rect.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n Rect.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n Rect.prototype.renderRect = function (ctx) {\n var _a, _b;\n var _c = this, stroke = _c.stroke, effectiveStrokeWidth = _c.effectiveStrokeWidth, fill = _c.fill, path = _c.path, borderPath = _c.borderPath, borderClipPath = _c.borderClipPath, opacity = _c.opacity, microPixelEffectOpacity = _c.microPixelEffectOpacity;\n var borderActive = !!stroke && !!effectiveStrokeWidth;\n if (fill) {\n var _d = this, gradientFill = _d.gradientFill, fillOpacity = _d.fillOpacity, fillShadow = _d.fillShadow;\n if (fill !== gradientFill) {\n this.updateGradientInstance();\n }\n var gradientInstance = this.gradientInstance;\n if (gradientInstance) {\n ctx.fillStyle = gradientInstance.createGradient(ctx, this.computeBBox());\n }\n else {\n ctx.fillStyle = fill;\n }\n ctx.globalAlpha = opacity * fillOpacity * microPixelEffectOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n if (fillShadow && fillShadow.enabled) {\n var pixelRatio = (_b = (_a = this.scene) === null || _a === void 0 ? void 0 : _a.canvas.pixelRatio, (_b !== null && _b !== void 0 ? _b : 1));\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n path.draw(ctx);\n ctx.fill();\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n }\n if (borderActive) {\n var _e = this, strokeOpacity = _e.strokeOpacity, lineDash = _e.lineDash, lineDashOffset = _e.lineDashOffset, lineCap = _e.lineCap, lineJoin = _e.lineJoin;\n if (borderClipPath) {\n // strokeWidth is larger than width or height, so use clipping to render correctly.\n // This is the simplest way to achieve the correct rendering due to nuances with ~0\n // width/height lines in Canvas operations.\n borderClipPath.draw(ctx);\n ctx.clip();\n }\n borderPath.draw(ctx);\n ctx.strokeStyle = stroke;\n ctx.globalAlpha = opacity * strokeOpacity * microPixelEffectOpacity;\n ctx.lineWidth = effectiveStrokeWidth;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n ctx.stroke();\n }\n };\n Rect.className = 'Rect';\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"x\", void 0);\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"y\", void 0);\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"width\", void 0);\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"height\", void 0);\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"radius\", void 0);\n __decorate$1t([\n ScenePathChangeDetection()\n ], Rect.prototype, \"crisp\", void 0);\n __decorate$1t([\n ScenePathChangeDetection({ changeCb: function (r) { return r.updateGradientInstance(); } })\n ], Rect.prototype, \"gradient\", void 0);\n return Rect;\n}(Path$1));\n\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Background = /** @class */ (function (_super) {\n __extends$2u(Background, _super);\n function Background() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.node = new Rect();\n _this._visible = true;\n return _this;\n }\n Object.defineProperty(Background.prototype, \"width\", {\n get: function () {\n return this.node.width;\n },\n set: function (value) {\n this.node.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Background.prototype, \"height\", {\n get: function () {\n return this.node.height;\n },\n set: function (value) {\n this.node.height = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Background.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.node.visible = this._visible;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Background.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n set: function (value) {\n this._fill = value;\n this.node.fill = this._fill;\n },\n enumerable: true,\n configurable: true\n });\n __decorate$1s([\n Validate(BOOLEAN)\n ], Background.prototype, \"_visible\", void 0);\n __decorate$1s([\n Validate(OPT_COLOR_STRING)\n ], Background.prototype, \"_fill\", void 0);\n return Background;\n}(Observable$1));\n\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$m = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Marker$1 = /** @class */ (function (_super) {\n __extends$2t(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.x = 0;\n _this.y = 0;\n _this.size = 12;\n return _this;\n }\n Marker.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var half = size / 2;\n return new BBox$1(x - half, y - half, size, size);\n };\n Marker.prototype.applyPath = function (s, moves) {\n var e_1, _a;\n var path = this.path;\n var _b = this, x = _b.x, y = _b.y;\n path.clear();\n try {\n for (var moves_1 = __values$m(moves), moves_1_1 = moves_1.next(); !moves_1_1.done; moves_1_1 = moves_1.next()) {\n var _c = moves_1_1.value, mx = _c.x, my = _c.y, t = _c.t;\n x += mx * s;\n y += my * s;\n if (t === 'move') {\n path.moveTo(x, y);\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (moves_1_1 && !moves_1_1.done && (_a = moves_1.return)) _a.call(moves_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n path.closePath();\n };\n __decorate$1r([\n ScenePathChangeDetection()\n ], Marker.prototype, \"x\", void 0);\n __decorate$1r([\n ScenePathChangeDetection()\n ], Marker.prototype, \"y\", void 0);\n __decorate$1r([\n ScenePathChangeDetection({ convertor: Math.abs })\n ], Marker.prototype, \"size\", void 0);\n return Marker;\n}(Path$1));\n\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Square$1 = /** @class */ (function (_super) {\n __extends$2s(Square, _super);\n function Square() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Square.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y;\n var hs = this.size / 2;\n path.clear();\n path.moveTo(this.align(x - hs), this.align(y - hs));\n path.lineTo(this.align(x + hs), this.align(y - hs));\n path.lineTo(this.align(x + hs), this.align(y + hs));\n path.lineTo(this.align(x - hs), this.align(y + hs));\n path.closePath();\n };\n Square.className = 'Square';\n return Square;\n}(Marker$1));\n\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MarkerLabel = /** @class */ (function (_super) {\n __extends$2r(MarkerLabel, _super);\n function MarkerLabel() {\n var _this = _super.call(this) || this;\n _this.label = new Text$1();\n _this._marker = new Square$1();\n _this._markerSize = 15;\n _this._spacing = 8;\n var label = _this.label;\n label.textBaseline = 'middle';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.fill = 'black';\n // For better looking vertical alignment of labels to markers.\n label.y = HdpiCanvas$1.has.textMetrics ? 1 : 0;\n _this.append([_this.marker, label]);\n _this.update();\n return _this;\n }\n Object.defineProperty(MarkerLabel.prototype, \"text\", {\n get: function () {\n return this.label.text;\n },\n set: function (value) {\n this.label.text = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontStyle\", {\n get: function () {\n return this.label.fontStyle;\n },\n set: function (value) {\n this.label.fontStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontWeight\", {\n get: function () {\n return this.label.fontWeight;\n },\n set: function (value) {\n this.label.fontWeight = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontSize\", {\n get: function () {\n return this.label.fontSize;\n },\n set: function (value) {\n this.label.fontSize = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontFamily\", {\n get: function () {\n return this.label.fontFamily;\n },\n set: function (value) {\n this.label.fontFamily = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"color\", {\n get: function () {\n return this.label.fill;\n },\n set: function (value) {\n this.label.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"marker\", {\n get: function () {\n return this._marker;\n },\n set: function (value) {\n if (this._marker !== value) {\n this.removeChild(this._marker);\n this._marker = value;\n this.appendChild(value);\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerSize\", {\n get: function () {\n return this._markerSize;\n },\n set: function (value) {\n if (this._markerSize !== value) {\n this._markerSize = value;\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerFill\", {\n get: function () {\n return this.marker.fill;\n },\n set: function (value) {\n this.marker.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStroke\", {\n get: function () {\n return this.marker.stroke;\n },\n set: function (value) {\n this.marker.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStrokeWidth\", {\n get: function () {\n return this.marker.strokeWidth;\n },\n set: function (value) {\n this.marker.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerFillOpacity\", {\n get: function () {\n return this.marker.fillOpacity;\n },\n set: function (value) {\n this.marker.fillOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStrokeOpacity\", {\n get: function () {\n return this.marker.strokeOpacity;\n },\n set: function (value) {\n this.marker.strokeOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"spacing\", {\n get: function () {\n return this._spacing;\n },\n set: function (value) {\n if (this._spacing !== value) {\n this._spacing = value;\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n MarkerLabel.prototype.update = function () {\n var marker = this.marker;\n var markerSize = this.markerSize;\n marker.size = markerSize;\n this.label.x = markerSize / 2 + this.spacing;\n };\n MarkerLabel.prototype.render = function (renderCtx) {\n // Cannot override field Group.opacity with get/set pair, so\n // propagate opacity changes here.\n this.marker.opacity = this.opacity;\n this.label.opacity = this.opacity;\n _super.prototype.render.call(this, renderCtx);\n };\n MarkerLabel.className = 'MarkerLabel';\n return MarkerLabel;\n}(Group$1));\n\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Circle$1 = /** @class */ (function (_super) {\n __extends$2q(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y, path = _a.path, size = _a.size;\n var r = size / 2;\n path.clear();\n path.cubicArc(x, y, r, r, 0, 0, Math.PI * 2, 0);\n path.closePath();\n };\n Circle.className = 'Circle';\n return Circle;\n}(Marker$1));\n\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Cross = /** @class */ (function (_super) {\n __extends$2p(Cross, _super);\n function Cross() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Cross.prototype.updatePath = function () {\n var s = this.size / 4.2;\n _super.prototype.applyPath.call(this, s, Cross.moves);\n };\n Cross.className = 'Cross';\n Cross.moves = [\n { x: -1, y: 0, t: 'move' },\n { x: -1, y: -1 },\n { x: +1, y: -1 },\n { x: +1, y: +1 },\n { x: +1, y: -1 },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n ];\n return Cross;\n}(Marker$1));\n\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Diamond$1 = /** @class */ (function (_super) {\n __extends$2o(Diamond, _super);\n function Diamond() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Diamond.prototype.updatePath = function () {\n var s = this.size / 2;\n _super.prototype.applyPath.call(this, s, Diamond.moves);\n };\n Diamond.className = 'Diamond';\n Diamond.moves = [\n { x: 0, y: -1, t: 'move' },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n { x: +1, y: -1 },\n ];\n return Diamond;\n}(Marker$1));\n\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Heart = /** @class */ (function (_super) {\n __extends$2n(Heart, _super);\n function Heart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Heart.prototype.rad = function (degree) {\n return (degree / 180) * Math.PI;\n };\n Heart.prototype.updatePath = function () {\n var _a = this, x = _a.x, path = _a.path, size = _a.size, rad = _a.rad;\n var r = size / 4;\n var y = this.y + r / 2;\n path.clear();\n path.cubicArc(x - r, y - r, r, r, 0, rad(130), rad(330), 0);\n path.cubicArc(x + r, y - r, r, r, 0, rad(220), rad(50), 0);\n path.lineTo(x, y + r);\n path.closePath();\n };\n Heart.className = 'Heart';\n return Heart;\n}(Marker$1));\n\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Plus = /** @class */ (function (_super) {\n __extends$2m(Plus, _super);\n function Plus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Plus.prototype.updatePath = function () {\n var s = this.size / 3;\n _super.prototype.applyPath.call(this, s, Plus.moves);\n };\n Plus.className = 'Plus';\n Plus.moves = [\n { x: -0.5, y: -0.5, t: 'move' },\n { x: 0, y: -1 },\n { x: +1, y: 0 },\n { x: 0, y: +1 },\n { x: +1, y: 0 },\n { x: 0, y: +1 },\n { x: -1, y: 0 },\n { x: 0, y: +1 },\n { x: -1, y: 0 },\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: -1 },\n ];\n return Plus;\n}(Marker$1));\n\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Triangle = /** @class */ (function (_super) {\n __extends$2l(Triangle, _super);\n function Triangle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Triangle.prototype.updatePath = function () {\n var s = this.size * 1.1;\n _super.prototype.applyPath.call(this, s, Triangle.moves);\n };\n Triangle.className = 'Triangle';\n Triangle.moves = [\n { x: 0, y: -0.48, t: 'move' },\n { x: 0.5, y: 0.87 },\n { x: -1, y: 0 },\n ];\n return Triangle;\n}(Marker$1));\n\n// This function is in its own file because putting it into SeriesMarker makes the Legend\n// suddenly aware of the series (it's an agnostic component), and putting it into Marker\n// introduces circular dependencies.\nfunction getMarker$1(shape) {\n if (shape === void 0) { shape = Square$1; }\n if (typeof shape === 'string') {\n switch (shape) {\n case 'circle':\n return Circle$1;\n case 'cross':\n return Cross;\n case 'diamond':\n return Diamond$1;\n case 'heart':\n return Heart;\n case 'plus':\n return Plus;\n case 'triangle':\n return Triangle;\n default:\n return Square$1;\n }\n }\n if (typeof shape === 'function') {\n return shape;\n }\n return Square$1;\n}\n\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$h = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$y(arguments[i]));\n return ar;\n};\nvar __values$l = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar LegendOrientation;\n(function (LegendOrientation) {\n LegendOrientation[LegendOrientation[\"Vertical\"] = 0] = \"Vertical\";\n LegendOrientation[LegendOrientation[\"Horizontal\"] = 1] = \"Horizontal\";\n})(LegendOrientation || (LegendOrientation = {}));\nvar LegendPosition;\n(function (LegendPosition) {\n LegendPosition[\"Top\"] = \"top\";\n LegendPosition[\"Right\"] = \"right\";\n LegendPosition[\"Bottom\"] = \"bottom\";\n LegendPosition[\"Left\"] = \"left\";\n})(LegendPosition || (LegendPosition = {}));\nvar LegendLabel = /** @class */ (function () {\n function LegendLabel() {\n this.maxLength = undefined;\n this.color = 'black';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n this.formatter = undefined;\n }\n LegendLabel.prototype.getFont = function () {\n return getFont$2(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n };\n __decorate$1q([\n Validate(OPT_NUMBER(0))\n ], LegendLabel.prototype, \"maxLength\", void 0);\n __decorate$1q([\n Validate(COLOR_STRING)\n ], LegendLabel.prototype, \"color\", void 0);\n __decorate$1q([\n Validate(OPT_FONT_STYLE)\n ], LegendLabel.prototype, \"fontStyle\", void 0);\n __decorate$1q([\n Validate(OPT_FONT_WEIGHT)\n ], LegendLabel.prototype, \"fontWeight\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendLabel.prototype, \"fontSize\", void 0);\n __decorate$1q([\n Validate(STRING)\n ], LegendLabel.prototype, \"fontFamily\", void 0);\n __decorate$1q([\n Validate(OPT_FUNCTION)\n ], LegendLabel.prototype, \"formatter\", void 0);\n return LegendLabel;\n}());\nvar LegendMarker = /** @class */ (function () {\n function LegendMarker() {\n this.size = 15;\n /**\n * If the marker type is set, the legend will always use that marker type for all its items,\n * regardless of the type that comes from the `data`.\n */\n this._shape = undefined;\n /**\n * Padding between the marker and the label within each legend item.\n */\n this.padding = 8;\n this.strokeWidth = 1;\n }\n Object.defineProperty(LegendMarker.prototype, \"shape\", {\n get: function () {\n return this._shape;\n },\n set: function (value) {\n var _a;\n this._shape = value;\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.onMarkerShapeChange();\n },\n enumerable: true,\n configurable: true\n });\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"size\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"padding\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"strokeWidth\", void 0);\n return LegendMarker;\n}());\nvar LegendItem = /** @class */ (function () {\n function LegendItem() {\n this.marker = new LegendMarker();\n this.label = new LegendLabel();\n /** Used to constrain the width of legend items. */\n this.maxWidth = undefined;\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of horizontal\n * padding between legend items.\n */\n this.paddingX = 16;\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of vertical\n * padding between legend items.\n */\n this.paddingY = 8;\n }\n __decorate$1q([\n Validate(OPT_NUMBER(0))\n ], LegendItem.prototype, \"maxWidth\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendItem.prototype, \"paddingX\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], LegendItem.prototype, \"paddingY\", void 0);\n return LegendItem;\n}());\nvar NO_OP_LISTENER = function () {\n // Default listener that does nothing.\n};\nvar LegendListeners = /** @class */ (function () {\n function LegendListeners() {\n this.legendItemClick = NO_OP_LISTENER;\n }\n __decorate$1q([\n Validate(FUNCTION)\n ], LegendListeners.prototype, \"legendItemClick\", void 0);\n return LegendListeners;\n}());\nvar Legend = /** @class */ (function () {\n function Legend() {\n this.id = createId$1(this);\n this.group = new Group$1({ name: 'legend', layer: true, zIndex: Layers.LEGEND_ZINDEX });\n this.itemSelection = Selection$1.select(this.group).selectAll();\n this.oldSize = [0, 0];\n this.item = new LegendItem();\n this.listeners = new LegendListeners();\n this.truncatedItems = new Set();\n this._data = [];\n this._enabled = true;\n this.orientation = LegendOrientation.Vertical;\n this._position = LegendPosition.Right;\n /** Reverse the display order of legend items if `true`. */\n this.reverseOrder = undefined;\n /**\n * Spacing between the legend and the edge of the chart's element.\n */\n this.spacing = 20;\n this.characterWidths = new Map();\n this.size = [0, 0];\n this.item.marker.parent = this;\n }\n Object.defineProperty(Legend.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n this._data = value;\n this.group.visible = value.length > 0 && this.enabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Legend.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this._enabled = value;\n this.group.visible = value && this.data.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Legend.prototype, \"position\", {\n get: function () {\n return this._position;\n },\n set: function (value) {\n this._position = value;\n switch (value) {\n case 'right':\n case 'left':\n this.orientation = LegendOrientation.Vertical;\n break;\n case 'bottom':\n case 'top':\n this.orientation = LegendOrientation.Horizontal;\n break;\n }\n },\n enumerable: true,\n configurable: true\n });\n Legend.prototype.onMarkerShapeChange = function () {\n this.itemSelection = this.itemSelection.setData([]);\n this.itemSelection.exit.remove();\n this.group.markDirty(this.group, RedrawType.MINOR);\n };\n Legend.prototype.getCharacterWidths = function (font) {\n var characterWidths = this.characterWidths;\n if (characterWidths.has(font)) {\n return characterWidths.get(font);\n }\n var cw = {\n '...': HdpiCanvas$1.getTextSize('...', font).width,\n };\n characterWidths.set(font, cw);\n return cw;\n };\n /**\n * The method is given the desired size of the legend, which only serves as a hint.\n * The vertically oriented legend will take as much horizontal space as needed, but will\n * respect the height constraints, and the horizontal legend will take as much vertical\n * space as needed in an attempt not to exceed the given width.\n * After the layout is done, the {@link size} will contain the actual size of the legend.\n * If the actual size is not the same as the previous actual size, the legend will fire\n * the 'layoutChange' event to communicate that another layout is needed, and the above\n * process should be repeated.\n * @param width\n * @param height\n */\n Legend.prototype.performLayout = function (width, height) {\n var _this = this;\n var _a = this.item, paddingX = _a.paddingX, paddingY = _a.paddingY, label = _a.label, maxWidth = _a.maxWidth, _b = _a.marker, markerSize = _b.size, markerPadding = _b.padding, markerShape = _b.shape, _c = _a.label, _d = _c.maxLength, maxLength = _d === void 0 ? Infinity : _d, fontStyle = _c.fontStyle, fontWeight = _c.fontWeight, fontSize = _c.fontSize, fontFamily = _c.fontFamily;\n var data = __spread$h(this.data);\n if (this.reverseOrder) {\n data.reverse();\n }\n var updateSelection = this.itemSelection.setData(data, function (_, datum) {\n var Marker = getMarker$1(markerShape || datum.marker.shape);\n return datum.id + '-' + datum.itemId + '-' + Marker.name;\n });\n updateSelection.exit.remove();\n var enterSelection = updateSelection.enter.append(MarkerLabel).each(function (node, datum) {\n var Marker = getMarker$1(markerShape || datum.marker.shape);\n node.marker = new Marker();\n });\n var itemSelection = (this.itemSelection = updateSelection.merge(enterSelection));\n var itemCount = itemSelection.size;\n // Update properties that affect the size of the legend items and measure them.\n var bboxes = [];\n var font = label.getFont();\n var ellipsis = \"...\";\n var itemMaxWidthPercentage = 0.8;\n var maxItemWidth = (maxWidth !== null && maxWidth !== void 0 ? maxWidth : width * itemMaxWidthPercentage);\n itemSelection.each(function (markerLabel, datum) {\n var e_1, _a;\n var _b;\n var text = (_b = datum.label.text, (_b !== null && _b !== void 0 ? _b : ''));\n markerLabel.markerSize = markerSize;\n markerLabel.spacing = markerPadding;\n markerLabel.fontStyle = fontStyle;\n markerLabel.fontWeight = fontWeight;\n markerLabel.fontSize = fontSize;\n markerLabel.fontFamily = fontFamily;\n var textChars = text.split('');\n var addEllipsis = false;\n if (text.length > maxLength) {\n text = \"\" + text.substring(0, maxLength);\n addEllipsis = true;\n }\n var labelWidth = markerSize + markerPadding + HdpiCanvas$1.getTextSize(text, font).width;\n if (labelWidth > maxItemWidth) {\n var truncatedText = '';\n var characterWidths = _this.getCharacterWidths(font);\n var cumCharSize = characterWidths[ellipsis];\n try {\n for (var textChars_1 = __values$l(textChars), textChars_1_1 = textChars_1.next(); !textChars_1_1.done; textChars_1_1 = textChars_1.next()) {\n var char = textChars_1_1.value;\n if (!characterWidths[char]) {\n characterWidths[char] = HdpiCanvas$1.getTextSize(char, font).width;\n }\n cumCharSize += characterWidths[char];\n if (cumCharSize > maxItemWidth) {\n break;\n }\n truncatedText += char;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (textChars_1_1 && !textChars_1_1.done && (_a = textChars_1.return)) _a.call(textChars_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n text = truncatedText;\n addEllipsis = true;\n }\n var id = datum.itemId || datum.id;\n if (addEllipsis) {\n text += ellipsis;\n _this.truncatedItems.add(id);\n }\n else {\n _this.truncatedItems.delete(id);\n }\n markerLabel.text = text;\n bboxes.push(markerLabel.computeBBox());\n });\n var itemHeight = bboxes.length && bboxes[0].height;\n var rowCount = 0;\n var columnWidth = 0;\n var paddedItemsWidth = 0;\n var paddedItemsHeight = 0;\n width = Math.max(1, width);\n height = Math.max(1, height);\n switch (this.orientation) {\n case LegendOrientation.Horizontal:\n if (!(isFinite(width) && width > 0)) {\n return false;\n }\n rowCount = 0;\n var columnCount = 0;\n // Split legend items into columns until the width is suitable.\n do {\n var itemsWidth = 0;\n columnCount = 0;\n columnWidth = 0;\n rowCount++;\n var i = 0;\n while (i < itemCount) {\n var bbox = bboxes[i];\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n i++;\n if (i % rowCount === 0) {\n itemsWidth += columnWidth;\n columnWidth = 0;\n columnCount++;\n }\n }\n if (i % rowCount !== 0) {\n itemsWidth += columnWidth;\n columnCount++;\n }\n paddedItemsWidth = itemsWidth + (columnCount - 1) * paddingX;\n } while (paddedItemsWidth > width && columnCount > 1);\n paddedItemsHeight = itemHeight * rowCount + (rowCount - 1) * paddingY;\n break;\n case LegendOrientation.Vertical:\n if (!(isFinite(height) && height > 0)) {\n return false;\n }\n rowCount = itemCount * 2;\n // Split legend items into columns until the height is suitable.\n do {\n rowCount = (rowCount >> 1) + (rowCount % 2);\n columnWidth = 0;\n var itemsWidth = 0;\n var itemsHeight = 0;\n var columnCount_1 = 0;\n var i = 0;\n while (i < itemCount) {\n var bbox = bboxes[i];\n if (!columnCount_1) {\n itemsHeight += bbox.height;\n }\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n i++;\n if (i % rowCount === 0) {\n itemsWidth += columnWidth;\n columnWidth = 0;\n columnCount_1++;\n }\n }\n if (i % rowCount !== 0) {\n itemsWidth += columnWidth;\n columnCount_1++;\n }\n paddedItemsWidth = itemsWidth + (columnCount_1 - 1) * paddingX;\n paddedItemsHeight = itemsHeight + (rowCount - 1) * paddingY;\n } while (paddedItemsHeight > height && rowCount > 1);\n break;\n }\n // Top-left corner of the first legend item.\n var startX = (width - paddedItemsWidth) / 2;\n var startY = (height - paddedItemsHeight) / 2;\n var x = 0;\n var y = 0;\n columnWidth = 0;\n // Position legend items using the layout computed above.\n itemSelection.each(function (markerLabel, _, i) {\n // Round off for pixel grid alignment to work properly.\n markerLabel.translationX = Math.floor(startX + x);\n markerLabel.translationY = Math.floor(startY + y);\n var bbox = bboxes[i];\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n if ((i + 1) % rowCount === 0) {\n x += columnWidth + paddingX;\n y = 0;\n columnWidth = 0;\n }\n else {\n y += bbox.height + paddingY;\n }\n });\n // Update legend item properties that don't affect the layout.\n this.update();\n var size = this.size;\n var oldSize = this.oldSize;\n size[0] = paddedItemsWidth;\n size[1] = paddedItemsHeight;\n if (size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n oldSize[0] = size[0];\n oldSize[1] = size[1];\n }\n };\n Legend.prototype.update = function () {\n var _a = this.item, strokeWidth = _a.marker.strokeWidth, color = _a.label.color;\n this.itemSelection.each(function (markerLabel, datum) {\n var marker = datum.marker;\n markerLabel.markerFill = marker.fill;\n markerLabel.markerStroke = marker.stroke;\n markerLabel.markerStrokeWidth = strokeWidth;\n markerLabel.markerFillOpacity = marker.fillOpacity;\n markerLabel.markerStrokeOpacity = marker.strokeOpacity;\n markerLabel.opacity = datum.enabled ? 1 : 0.5;\n markerLabel.color = color;\n });\n };\n Legend.prototype.getDatumForPoint = function (x, y) {\n var node = this.group.pickNode(x, y);\n if (node && node.parent) {\n return node.parent.datum;\n }\n };\n Legend.className = 'Legend';\n __decorate$1q([\n Validate(BOOLEAN)\n ], Legend.prototype, \"_enabled\", void 0);\n __decorate$1q([\n Validate(POSITION)\n ], Legend.prototype, \"_position\", void 0);\n __decorate$1q([\n Validate(OPT_BOOLEAN)\n ], Legend.prototype, \"reverseOrder\", void 0);\n __decorate$1q([\n Validate(NUMBER(0))\n ], Legend.prototype, \"spacing\", void 0);\n return Legend;\n}());\n\nvar __values$k = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SizeMonitor = /** @class */ (function () {\n function SizeMonitor() {\n }\n SizeMonitor.init = function () {\n var _this = this;\n var NativeResizeObserver = window.ResizeObserver;\n if (NativeResizeObserver) {\n this.resizeObserver = new NativeResizeObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$k(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n var _b = entry.contentRect, width = _b.width, height = _b.height;\n _this.checkSize(_this.elements.get(entry.target), entry.target, width, height);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n }\n else {\n // polyfill (more reliable even in browsers that support ResizeObserver)\n var step = function () {\n _this.elements.forEach(function (entry, element) {\n _this.checkClientSize(element, entry);\n });\n };\n window.setInterval(step, 100);\n }\n this.ready = true;\n };\n SizeMonitor.checkSize = function (entry, element, width, height) {\n if (entry) {\n if (!entry.size || width !== entry.size.width || height !== entry.size.height) {\n entry.size = { width: width, height: height };\n entry.cb(entry.size, element);\n }\n }\n };\n // Only a single callback is supported.\n SizeMonitor.observe = function (element, cb) {\n if (!this.ready) {\n this.init();\n }\n this.unobserve(element);\n if (this.resizeObserver) {\n this.resizeObserver.observe(element);\n }\n this.elements.set(element, { cb: cb });\n // Ensure first size callback happens synchronously.\n this.checkClientSize(element, { cb: cb });\n };\n SizeMonitor.unobserve = function (element) {\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(element);\n }\n this.elements.delete(element);\n };\n SizeMonitor.checkClientSize = function (element, entry) {\n var width = element.clientWidth ? element.clientWidth : 0;\n var height = element.clientHeight ? element.clientHeight : 0;\n this.checkSize(entry, element, width, height);\n };\n SizeMonitor.elements = new Map();\n SizeMonitor.ready = false;\n return SizeMonitor;\n}());\n\nvar __awaiter$d = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$d = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * Wrap a function in debouncing trigger function. A requestAnimationFrame() is scheduled\n * after the first schedule() call, and subsequent schedule() calls will be ignored until the\n * animation callback executes.\n */\nfunction debouncedAnimationFrame(cb) {\n return buildScheduler(function (cb) { return requestAnimationFrame(cb); }, cb);\n}\nfunction debouncedCallback(cb) {\n return buildScheduler(function (cb) { return setTimeout(cb, 0); }, cb);\n}\nfunction buildScheduler(scheduleFn, cb) {\n var scheduleCount = 0;\n var promiseRunning = false;\n var awaitingPromise;\n var awaitingDone;\n var busy = function () {\n return promiseRunning;\n };\n var done = function () {\n var _a;\n promiseRunning = false;\n (_a = awaitingDone) === null || _a === void 0 ? void 0 : _a();\n awaitingDone = undefined;\n awaitingPromise = undefined;\n if (scheduleCount > 0) {\n scheduleFn(scheduleCb);\n }\n };\n var scheduleCb = function () {\n var count = scheduleCount;\n scheduleCount = 0;\n promiseRunning = true;\n var maybePromise = cb({ count: count });\n if (!maybePromise) {\n done();\n return;\n }\n maybePromise.then(done).catch(done);\n };\n return {\n schedule: function () {\n if (scheduleCount === 0 && !busy()) {\n scheduleFn(scheduleCb);\n }\n scheduleCount++;\n },\n await: function () {\n return __awaiter$d(this, void 0, void 0, function () {\n return __generator$d(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!busy()) {\n return [2 /*return*/];\n }\n if (!awaitingPromise) {\n awaitingPromise = new Promise(function (resolve) {\n awaitingDone = resolve;\n });\n }\n _a.label = 1;\n case 1:\n if (!busy()) return [3 /*break*/, 3];\n return [4 /*yield*/, awaitingPromise];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n },\n };\n}\n\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MARKER_SHAPES = ['circle', 'cross', 'diamond', 'heart', 'plus', 'square', 'triangle'];\nvar MARKER_SHAPE = predicateWithMessage(function (v) { return MARKER_SHAPES.includes(v) || Object.getPrototypeOf(v) === Marker$1; }, \"expecting a marker shape keyword such as 'circle', 'diamond' or 'square' or an object extending the Marker class\");\nvar SeriesMarker = /** @class */ (function (_super) {\n __extends$2k(SeriesMarker, _super);\n function SeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n /**\n * One of the predefined marker names, or a marker constructor function (for user-defined markers).\n * A series will create one marker instance per data point.\n */\n _this.shape = Circle$1;\n _this.size = 6;\n /**\n * In case a series has the `sizeKey` set, the `sizeKey` values along with the `size` and `maxSize` configs\n * will be used to determine the size of the marker. All values will be mapped to a marker size\n * within the `[size, maxSize]` range, where the largest values will correspond to the `maxSize`\n * and the lowest to the `size`.\n */\n _this.maxSize = 30;\n _this.domain = undefined;\n _this.fill = undefined;\n _this.stroke = undefined;\n _this.strokeWidth = 1;\n _this.fillOpacity = undefined;\n _this.strokeOpacity = undefined;\n return _this;\n }\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: BOOLEAN,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"enabled\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: MARKER_SHAPE,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"shape\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: NUMBER(0),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"size\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: NUMBER(0),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"maxSize\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_NUMBER_ARRAY,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"domain\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_COLOR_STRING,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"fill\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_COLOR_STRING,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"stroke\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_NUMBER(0),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"strokeWidth\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_NUMBER(0, 1),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"fillOpacity\", void 0);\n __decorate$1p([\n ValidateAndChangeDetection({\n validatePredicate: OPT_NUMBER(0, 1),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], SeriesMarker.prototype, \"strokeOpacity\", void 0);\n return SeriesMarker;\n}(ChangeDetectable));\n\nvar __assign$z = (undefined && undefined.__assign) || function () {\n __assign$z = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$z.apply(this, arguments);\n};\nvar __read$x = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$g = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$x(arguments[i]));\n return ar;\n};\nvar __values$j = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Performs a JSON-diff between a source and target JSON structure.\n *\n * On a per property basis, takes the target property value where:\n * - types are different.\n * - type is primitive.\n * - type is array and length or content have changed.\n *\n * Recurses for object types.\n *\n * @param source starting point for diff\n * @param target target for diff vs. source\n *\n * @returns `null` if no differences, or an object with the subset of properties that have changed.\n */\nfunction jsonDiff(source, target) {\n var e_1, _a;\n var sourceType = classify(source);\n var targetType = classify(target);\n if (targetType === 'array') {\n if (sourceType !== 'array' || source.length !== target.length) {\n return __spread$g(target);\n }\n if (target.some(function (targetElement, i) { var _a; return jsonDiff((_a = source) === null || _a === void 0 ? void 0 : _a[i], targetElement) != null; })) {\n return __spread$g(target);\n }\n return null;\n }\n if (targetType === 'primitive') {\n if (sourceType !== 'primitive') {\n return __assign$z({}, target);\n }\n if (source !== target) {\n return target;\n }\n return null;\n }\n var lhs = source || {};\n var rhs = target || {};\n var allProps = new Set(__spread$g(Object.keys(lhs), Object.keys(rhs)));\n var propsChangedCount = 0;\n var result = {};\n var _loop_1 = function (prop) {\n // Cheap-and-easy equality check.\n if (lhs[prop] === rhs[prop]) {\n return \"continue\";\n }\n var take = function (v) {\n result[prop] = v;\n propsChangedCount++;\n };\n var lhsType = classify(lhs[prop]);\n var rhsType = classify(rhs[prop]);\n if (lhsType !== rhsType) {\n // Types changed, just take RHS.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'primitive' || rhsType === null) {\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'array' && lhs[prop].length !== rhs[prop].length) {\n // Arrays are different sizes, so just take target array.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'class-instance') {\n // Don't try to do anything tricky with array diffs!\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'function' && lhs[prop] !== rhs[prop]) {\n take(rhs[prop]);\n return \"continue\";\n }\n var diff = jsonDiff(lhs[prop], rhs[prop]);\n if (diff !== null) {\n take(diff);\n }\n };\n try {\n for (var allProps_1 = __values$j(allProps), allProps_1_1 = allProps_1.next(); !allProps_1_1.done; allProps_1_1 = allProps_1.next()) {\n var prop = allProps_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allProps_1_1 && !allProps_1_1.done && (_a = allProps_1.return)) _a.call(allProps_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return propsChangedCount === 0 ? null : result;\n}\n/**\n * Special value used by `jsonMerge` to signal that a property should be removed from the merged\n * output.\n */\nvar DELETE = Symbol('');\nvar NOT_SPECIFIED = Symbol('');\n/**\n * Merge together the provide JSON object structures, with the precedence of application running\n * from higher indexes to lower indexes.\n *\n * Deep-clones all objects to avoid mutation of the inputs changing the output object. For arrays,\n * just performs a deep-clone of the entire array, no merging of elements attempted.\n *\n * @param json all json objects to merge\n * @param opts merge options\n * @param opts.avoidDeepClone contains a list of properties where deep clones should be avoided\n *\n * @returns the combination of all of the json inputs\n */\nfunction jsonMerge(json, opts) {\n var e_2, _a;\n var _b;\n var avoidDeepClone = ((_b = opts) === null || _b === void 0 ? void 0 : _b.avoidDeepClone) || [];\n var jsonTypes = json.map(function (v) { return classify(v); });\n if (jsonTypes.some(function (v) { return v === 'array'; })) {\n // Clone final array.\n var finalValue = json[json.length - 1];\n if (finalValue instanceof Array) {\n return finalValue.map(function (v) {\n var type = classify(v);\n return type === 'array' ? jsonMerge([[], v], opts) : type === 'object' ? jsonMerge([{}, v], opts) : v;\n });\n }\n return finalValue;\n }\n var result = {};\n var props = new Set(json.map(function (v) { return (v != null ? Object.keys(v) : []); }).reduce(function (r, n) { return r.concat(n); }, []));\n var _loop_2 = function (nextProp) {\n var values = json\n .map(function (j) { return (j != null && nextProp in j ? j[nextProp] : NOT_SPECIFIED); })\n .filter(function (v) { return v !== NOT_SPECIFIED; });\n if (values.length === 0) {\n return \"continue\";\n }\n var lastValue = values[values.length - 1];\n if (lastValue === DELETE) {\n return \"continue\";\n }\n var types = values.map(function (v) { return classify(v); });\n var type = types[0];\n if (types.some(function (t) { return t !== type && t !== null; })) {\n // Short-circuit if mismatching types.\n result[nextProp] = lastValue;\n return \"continue\";\n }\n if ((type === 'array' || type === 'object') && !avoidDeepClone.includes(nextProp)) {\n result[nextProp] = jsonMerge(values, opts);\n }\n else if (type === 'array') {\n // Arrays need to be shallow copied to avoid external mutation and allow jsonDiff to\n // detect changes.\n result[nextProp] = __spread$g(lastValue);\n }\n else {\n // Just directly assign/overwrite.\n result[nextProp] = lastValue;\n }\n };\n try {\n for (var props_1 = __values$j(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var nextProp = props_1_1.value;\n _loop_2(nextProp);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}\n/**\n * Recursively apply a JSON object into a class-hierarchy, optionally instantiating certain classes\n * by property name.\n *\n * @param target to apply source JSON properties into\n * @param source to be applied\n * @param params.path path for logging/error purposes, to aid with pinpointing problems\n * @param params.matcherPath path for pattern matching, to lookup allowedTypes override.\n * @param params.skip property names to skip from the source\n * @param params.constructors dictionary of property name to class constructors for properties that\n * require object construction\n * @param params.allowedTypes overrides by path for allowed property types\n */\nfunction jsonApply(target, source, params) {\n if (params === void 0) { params = {}; }\n var _a, _b, _c, _d;\n var _e = params.path, path = _e === void 0 ? undefined : _e, _f = params.matcherPath, matcherPath = _f === void 0 ? path ? path.replace(/(\\[[0-9+]+\\])/i, '[]') : undefined : _f, _g = params.skip, skip = _g === void 0 ? [] : _g, _h = params.constructors, constructors = _h === void 0 ? {} : _h, _j = params.allowedTypes, allowedTypes = _j === void 0 ? {} : _j;\n if (target == null) {\n throw new Error(\"AG Charts - target is uninitialised: \" + (path || ''));\n }\n if (source == null) {\n return target;\n }\n var targetType = classify(target);\n var _loop_3 = function (property) {\n var propertyMatcherPath = \"\" + (matcherPath ? matcherPath + '.' : '') + property;\n if (skip.indexOf(propertyMatcherPath) >= 0) {\n return \"continue\";\n }\n var newValue = source[property];\n var propertyPath = \"\" + (path ? path + '.' : '') + property;\n var targetAny = target;\n var targetClass = targetAny.constructor;\n var currentValue = targetAny[property];\n var ctr = (_a = constructors[property], (_a !== null && _a !== void 0 ? _a : constructors[propertyMatcherPath]));\n try {\n var currentValueType = classify(currentValue);\n var newValueType = classify(newValue);\n if (targetType === 'class-instance' && !(property in target || targetAny.hasOwnProperty(property))) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in \" + ((_b = targetClass) === null || _b === void 0 ? void 0 : _b.name) + \" - property is unknown\");\n return \"continue\";\n }\n var allowableTypes = allowedTypes[propertyMatcherPath] || [currentValueType];\n if (currentValueType === 'class-instance' && newValueType === 'object') {\n // Allowed, this is the common case! - do not error.\n }\n else if (currentValueType != null && newValueType != null && !allowableTypes.includes(newValueType)) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in \" + ((_c = targetClass) === null || _c === void 0 ? void 0 : _c.name) + \" - can't apply type of [\" + newValueType + \"], allowed types are: [\" + allowableTypes + \"]\");\n return \"continue\";\n }\n if (newValueType === 'array') {\n ctr = (ctr !== null && ctr !== void 0 ? ctr : constructors[propertyMatcherPath + \"[]\"]);\n if (ctr != null) {\n var newValueArray = newValue;\n targetAny[property] = newValueArray.map(function (v) {\n return jsonApply(new ctr(), v, __assign$z(__assign$z({}, params), { path: propertyPath, matcherPath: propertyMatcherPath + '[]' }));\n });\n }\n else {\n targetAny[property] = newValue;\n }\n }\n else if (newValueType === 'class-instance') {\n targetAny[property] = newValue;\n }\n else if (newValueType === 'object') {\n if (currentValue != null) {\n jsonApply(currentValue, newValue, __assign$z(__assign$z({}, params), { path: propertyPath, matcherPath: propertyMatcherPath }));\n }\n else if (ctr != null) {\n targetAny[property] = jsonApply(new ctr(), newValue, __assign$z(__assign$z({}, params), { path: propertyPath, matcherPath: propertyMatcherPath }));\n }\n else {\n targetAny[property] = newValue;\n }\n }\n else {\n targetAny[property] = newValue;\n }\n }\n catch (error) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in [\" + ((_d = targetClass) === null || _d === void 0 ? void 0 : _d.name) + \"]; nested error is: \" + error.message);\n return \"continue\";\n }\n };\n for (var property in source) {\n _loop_3(property);\n }\n return target;\n}\n/**\n * Walk the given JSON object graphs, invoking the visit() callback for every object encountered.\n * Arrays are descended into without a callback, however their elements will have the visit()\n * callback invoked if they are objects.\n *\n * @param json to traverse\n * @param visit callback for each non-primitive and non-array object found\n * @param opts.skip property names to skip when walking\n * @param jsons to traverse in parallel\n */\nfunction jsonWalk(json, visit, opts) {\n var jsons = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n jsons[_i - 3] = arguments[_i];\n }\n var _a;\n var jsonType = classify(json);\n var skip = opts.skip || [];\n if (jsonType === 'array') {\n json.forEach(function (element, index) {\n var _a;\n jsonWalk.apply(void 0, __spread$g([element, visit, opts], (_a = jsons) === null || _a === void 0 ? void 0 : _a.map(function (o) { var _a; return (_a = o) === null || _a === void 0 ? void 0 : _a[index]; })));\n });\n return;\n }\n else if (jsonType !== 'object') {\n return;\n }\n visit.apply(void 0, __spread$g([jsonType, json], jsons));\n var _loop_4 = function (property) {\n if (skip.indexOf(property) >= 0) {\n return \"continue\";\n }\n var value = json[property];\n var otherValues = (_a = jsons) === null || _a === void 0 ? void 0 : _a.map(function (o) { var _a; return (_a = o) === null || _a === void 0 ? void 0 : _a[property]; });\n var valueType = classify(value);\n if (valueType === 'object' || valueType === 'array') {\n jsonWalk.apply(void 0, __spread$g([value, visit, opts], otherValues));\n }\n };\n for (var property in json) {\n _loop_4(property);\n }\n}\n/**\n * Classify the type of a value to assist with handling for merge purposes.\n */\nfunction classify(value) {\n if (value == null) {\n return null;\n }\n else if (value instanceof HTMLElement) {\n return 'primitive';\n }\n else if (value instanceof Array) {\n return 'array';\n }\n else if (value instanceof Date) {\n return 'primitive';\n }\n else if (typeof value === 'object' && value.constructor === Object) {\n return 'object';\n }\n else if (typeof value === 'function') {\n return 'function';\n }\n else if (typeof value === 'object' && value.constructor != null) {\n return 'class-instance';\n }\n return 'primitive';\n}\n\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$c = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$c = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$w = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$f = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$w(arguments[i]));\n return ar;\n};\nvar __values$i = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar CartesianSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$2j(CartesianSeriesNodeClickEvent, _super);\n function CartesianSeriesNodeClickEvent(xKey, yKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.xKey = xKey;\n _this.yKey = yKey;\n return _this;\n }\n return CartesianSeriesNodeClickEvent;\n}(SeriesNodeClickEvent));\nvar CartesianSeries = /** @class */ (function (_super) {\n __extends$2j(CartesianSeries, _super);\n function CartesianSeries(opts) {\n var _a;\n if (opts === void 0) { opts = {}; }\n var _this = _super.call(this, { useSeriesGroupLayer: true, pickModes: opts.pickModes }) || this;\n _this._contextNodeData = [];\n _this.nodeDataDependencies = {};\n _this.highlightSelection = Selection$1.select(_this.highlightNode).selectAll();\n _this.highlightLabelSelection = Selection$1.select(_this.highlightLabel).selectAll();\n _this.subGroups = [];\n _this.subGroupId = 0;\n /**\n * The assumption is that the values will be reset (to `true`)\n * in the {@link yKeys} setter.\n */\n _this.seriesItemEnabled = new Map();\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKey'],\n _a);\n var _b = opts.pickGroupIncludes, pickGroupIncludes = _b === void 0 ? ['datumNodes'] : _b, _c = opts.pathsPerSeries, pathsPerSeries = _c === void 0 ? 1 : _c, _d = opts.features, features = _d === void 0 ? [] : _d, _e = opts.pathsZIndexSubOrderOffset, pathsZIndexSubOrderOffset = _e === void 0 ? [] : _e, _f = opts.renderLayerPerSubSeries, renderLayerPerSubSeries = _f === void 0 ? true : _f;\n _this.opts = { pickGroupIncludes: pickGroupIncludes, pathsPerSeries: pathsPerSeries, features: features, pathsZIndexSubOrderOffset: pathsZIndexSubOrderOffset, renderLayerPerSubSeries: renderLayerPerSubSeries };\n return _this;\n }\n Object.defineProperty(CartesianSeries.prototype, \"contextNodeData\", {\n get: function () {\n var _a;\n return (_a = this._contextNodeData) === null || _a === void 0 ? void 0 : _a.slice();\n },\n enumerable: true,\n configurable: true\n });\n CartesianSeries.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._contextNodeData.splice(0, this._contextNodeData.length);\n this.subGroups.splice(0, this.subGroups.length);\n };\n /**\n * Note: we are passing `isContinuousX` and `isContinuousY` into this method because it will\n * typically be called inside a loop and this check only needs to happen once.\n * @param x A domain value to be plotted along the x-axis.\n * @param y A domain value to be plotted along the y-axis.\n * @param isContinuousX Typically this will be the value of `xAxis.scale instanceof ContinuousScale`.\n * @param isContinuousY Typically this will be the value of `yAxis.scale instanceof ContinuousScale`.\n * @returns `[x, y]`, if both x and y are valid domain values for their respective axes/scales, or `undefined`.\n */\n CartesianSeries.prototype.checkDomainXY = function (x, y, isContinuousX, isContinuousY) {\n var isValidDatum = ((isContinuousX && isContinuous$1(x)) || (!isContinuousX && isDiscrete(x))) &&\n ((isContinuousY && isContinuous$1(y)) || (!isContinuousY && isDiscrete(y)));\n return isValidDatum ? [x, y] : undefined;\n };\n /**\n * Note: we are passing the xAxis and yAxis because the calling code is supposed to make sure\n * that series has both of them defined, and also to avoid one level of indirection,\n * e.g. `this.xAxis!.inRange(x)`, both of which are suboptimal in tight loops where this method is used.\n * @param x A range value to be plotted along the x-axis.\n * @param y A range value to be plotted along the y-axis.\n * @param xAxis The series' x-axis.\n * @param yAxis The series' y-axis.\n * @returns\n */\n CartesianSeries.prototype.checkRangeXY = function (x, y, xAxis, yAxis) {\n return !isNaN(x) && !isNaN(y) && xAxis.inRange(x) && yAxis.inRange(y);\n };\n CartesianSeries.prototype.update = function (_a) {\n var seriesRect = _a.seriesRect;\n var _b, _c;\n return __awaiter$c(this, void 0, void 0, function () {\n var _d, seriesItemEnabled, visible, _e, _f, _g, series, seriesHighlighted, anySeriesItemEnabled, newNodeDataDependencies;\n return __generator$c(this, function (_h) {\n switch (_h.label) {\n case 0:\n _d = this, seriesItemEnabled = _d.seriesItemEnabled, visible = _d.visible, _e = _d.chart, _f = (_e === void 0 ? {} : _e).highlightedDatum, _g = (_f === void 0 ? {} : _f).series, series = _g === void 0 ? undefined : _g;\n seriesHighlighted = series ? series === this : undefined;\n anySeriesItemEnabled = (visible && seriesItemEnabled.size === 0) || __spread$f(seriesItemEnabled.values()).some(function (v) { return v === true; });\n newNodeDataDependencies = {\n seriesRectWidth: (_b = seriesRect) === null || _b === void 0 ? void 0 : _b.width,\n seriesRectHeight: (_c = seriesRect) === null || _c === void 0 ? void 0 : _c.height,\n };\n if (jsonDiff(this.nodeDataDependencies, newNodeDataDependencies) != null) {\n this.nodeDataDependencies = newNodeDataDependencies;\n this.markNodeDataDirty();\n }\n return [4 /*yield*/, this.updateSelections(seriesHighlighted, anySeriesItemEnabled)];\n case 1:\n _h.sent();\n return [4 /*yield*/, this.updateNodes(seriesHighlighted, anySeriesItemEnabled)];\n case 2:\n _h.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateSelections = function (seriesHighlighted, anySeriesItemEnabled) {\n return __awaiter$c(this, void 0, void 0, function () {\n var _a;\n var _this = this;\n return __generator$c(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.updateHighlightSelection(seriesHighlighted)];\n case 1:\n _b.sent();\n if (!anySeriesItemEnabled) {\n return [2 /*return*/];\n }\n if (!this.nodeDataRefresh && !this.isPathOrSelectionDirty()) {\n return [2 /*return*/];\n }\n if (!this.nodeDataRefresh) return [3 /*break*/, 4];\n this.nodeDataRefresh = false;\n _a = this;\n return [4 /*yield*/, this.createNodeData()];\n case 2:\n _a._contextNodeData = _b.sent();\n return [4 /*yield*/, this.updateSeriesGroups()];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [4 /*yield*/, Promise.all(this.subGroups.map(function (g, i) { return _this.updateSeriesGroupSelections(g, i, seriesHighlighted); }))];\n case 5:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateSeriesGroupSelections = function (subGroup, seriesIdx, seriesHighlighted) {\n return __awaiter$c(this, void 0, void 0, function () {\n var datumSelection, labelSelection, markerSelection, paths, contextData, nodeData, labelData, itemId, _a, _b, _c;\n return __generator$c(this, function (_d) {\n switch (_d.label) {\n case 0:\n datumSelection = subGroup.datumSelection, labelSelection = subGroup.labelSelection, markerSelection = subGroup.markerSelection, paths = subGroup.paths;\n contextData = this._contextNodeData[seriesIdx];\n nodeData = contextData.nodeData, labelData = contextData.labelData, itemId = contextData.itemId;\n return [4 /*yield*/, this.updatePaths({ seriesHighlighted: seriesHighlighted, itemId: itemId, contextData: contextData, paths: paths, seriesIdx: seriesIdx })];\n case 1:\n _d.sent();\n _a = subGroup;\n return [4 /*yield*/, this.updateDatumSelection({ nodeData: nodeData, datumSelection: datumSelection, seriesIdx: seriesIdx })];\n case 2:\n _a.datumSelection = _d.sent();\n _b = subGroup;\n return [4 /*yield*/, this.updateLabelSelection({ labelData: labelData, labelSelection: labelSelection, seriesIdx: seriesIdx })];\n case 3:\n _b.labelSelection = _d.sent();\n if (!markerSelection) return [3 /*break*/, 5];\n _c = subGroup;\n return [4 /*yield*/, this.updateMarkerSelection({\n nodeData: nodeData,\n markerSelection: markerSelection,\n seriesIdx: seriesIdx,\n })];\n case 4:\n _c.markerSelection = _d.sent();\n _d.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateSeriesGroups = function () {\n var _a;\n return __awaiter$c(this, void 0, void 0, function () {\n var _b, contextNodeData, seriesGroup, subGroups, _c, pickGroupIncludes, pathsPerSeries, features, pathsZIndexSubOrderOffset, renderLayerPerSubSeries, totalGroups, layer, subGroupId, subGroupZOffset, group, markerGroup, labelGroup, pickGroup, pathParentGroup, datumParentGroup, paths, index;\n return __generator$c(this, function (_d) {\n _b = this, contextNodeData = _b._contextNodeData, seriesGroup = _b.seriesGroup, subGroups = _b.subGroups, _c = _b.opts, pickGroupIncludes = _c.pickGroupIncludes, pathsPerSeries = _c.pathsPerSeries, features = _c.features, pathsZIndexSubOrderOffset = _c.pathsZIndexSubOrderOffset, renderLayerPerSubSeries = _c.renderLayerPerSubSeries;\n if (contextNodeData.length === subGroups.length) {\n return [2 /*return*/];\n }\n if (contextNodeData.length < subGroups.length) {\n subGroups.splice(contextNodeData.length).forEach(function (_a) {\n var e_1, _b;\n var group = _a.group, markerGroup = _a.markerGroup, paths = _a.paths;\n seriesGroup.removeChild(group);\n if (markerGroup) {\n seriesGroup.removeChild(markerGroup);\n }\n if (!pickGroupIncludes.includes('mainPath')) {\n try {\n for (var paths_1 = __values$i(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var path = paths_1_1.value;\n seriesGroup.removeChild(path);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_b = paths_1.return)) _b.call(paths_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n }\n totalGroups = contextNodeData.length;\n while (totalGroups > subGroups.length) {\n layer = renderLayerPerSubSeries;\n subGroupId = this.subGroupId++;\n subGroupZOffset = subGroupId;\n group = new Group$1({\n name: this.id + \"-series-sub\" + subGroupId,\n layer: layer,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: [this.id, subGroupZOffset],\n });\n markerGroup = features.includes('markers')\n ? new Group$1({\n name: this.id + \"-series-sub\" + this.subGroupId++ + \"-markers\",\n layer: layer,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: [this.id, 10000 + subGroupId],\n })\n : undefined;\n labelGroup = new Group$1({\n name: this.id + \"-series-sub\" + this.subGroupId++ + \"-labels\",\n layer: layer,\n zIndex: Layers.SERIES_LABEL_ZINDEX,\n zIndexSubOrder: [this.id, subGroupId],\n });\n pickGroup = new Group$1({\n name: this.id + \"-series-sub\" + this.subGroupId++ + \"-pickGroup\",\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: [this.id, 10000 + subGroupId],\n });\n pathParentGroup = pickGroupIncludes.includes('mainPath')\n ? pickGroup\n : renderLayerPerSubSeries\n ? group\n : seriesGroup;\n datumParentGroup = pickGroupIncludes.includes('datumNodes') ? pickGroup : group;\n seriesGroup.appendChild(group);\n seriesGroup.appendChild(labelGroup);\n if (markerGroup) {\n seriesGroup.appendChild(markerGroup);\n }\n paths = [];\n for (index = 0; index < pathsPerSeries; index++) {\n paths[index] = new Path$1();\n paths[index].zIndex = Layers.SERIES_LAYER_ZINDEX;\n paths[index].zIndexSubOrder = [this.id, (_a = pathsZIndexSubOrderOffset[index], (_a !== null && _a !== void 0 ? _a : 0)) + subGroupZOffset];\n pathParentGroup.appendChild(paths[index]);\n }\n group.appendChild(pickGroup);\n subGroups.push({\n paths: paths,\n group: group,\n pickGroup: pickGroup,\n markerGroup: markerGroup,\n labelGroup: labelGroup,\n labelSelection: Selection$1.select(labelGroup).selectAll(),\n datumSelection: Selection$1.select(datumParentGroup).selectAll(),\n markerSelection: markerGroup ? Selection$1.select(markerGroup).selectAll() : undefined,\n });\n }\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.updateNodes = function (seriesHighlighted, anySeriesItemEnabled) {\n var _a;\n return __awaiter$c(this, void 0, void 0, function () {\n var _b, highlightSelection, highlightLabelSelection, contextNodeData, seriesItemEnabled, features, markersEnabled, visible;\n var _this = this;\n return __generator$c(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = this, highlightSelection = _b.highlightSelection, highlightLabelSelection = _b.highlightLabelSelection, contextNodeData = _b._contextNodeData, seriesItemEnabled = _b.seriesItemEnabled, features = _b.opts.features;\n markersEnabled = features.includes('markers');\n visible = this.visible && ((_a = this._contextNodeData) === null || _a === void 0 ? void 0 : _a.length) > 0 && anySeriesItemEnabled;\n this.group.visible = visible;\n this.seriesGroup.visible = visible;\n this.highlightGroup.visible = visible && !!seriesHighlighted;\n this.seriesGroup.opacity = this.getOpacity();\n if (!markersEnabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this.updateMarkerNodes({\n markerSelection: highlightSelection,\n isHighlight: true,\n seriesIdx: -1,\n })];\n case 1:\n _c.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.updateDatumNodes({ datumSelection: highlightSelection, isHighlight: true, seriesIdx: -1 })];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4: return [4 /*yield*/, this.updateLabelNodes({ labelSelection: highlightLabelSelection, seriesIdx: -1 })];\n case 5:\n _c.sent();\n return [4 /*yield*/, Promise.all(this.subGroups.map(function (subGroup, seriesIdx) { return __awaiter$c(_this, void 0, void 0, function () {\n var group, markerGroup, datumSelection, labelSelection, markerSelection, paths, labelGroup, pickGroup, itemId, subGroupVisible, subGroupOpacity, paths_2, paths_2_1, path;\n var e_2, _a;\n var _b;\n return __generator$c(this, function (_c) {\n switch (_c.label) {\n case 0:\n group = subGroup.group, markerGroup = subGroup.markerGroup, datumSelection = subGroup.datumSelection, labelSelection = subGroup.labelSelection, markerSelection = subGroup.markerSelection, paths = subGroup.paths, labelGroup = subGroup.labelGroup, pickGroup = subGroup.pickGroup;\n itemId = contextNodeData[seriesIdx].itemId;\n subGroupVisible = visible && (_b = seriesItemEnabled.get(itemId), (_b !== null && _b !== void 0 ? _b : true));\n subGroupOpacity = this.getOpacity({ itemId: itemId });\n group.opacity = subGroupOpacity;\n group.visible = subGroupVisible;\n pickGroup.visible = subGroupVisible;\n labelGroup.visible = subGroupVisible;\n if (markerGroup) {\n markerGroup.opacity = subGroupOpacity;\n markerGroup.zIndex = group.zIndex >= Layers.SERIES_LAYER_ZINDEX ? group.zIndex : group.zIndex + 1;\n markerGroup.visible = subGroupVisible;\n }\n try {\n for (paths_2 = __values$i(paths), paths_2_1 = paths_2.next(); !paths_2_1.done; paths_2_1 = paths_2.next()) {\n path = paths_2_1.value;\n if (path.parent !== group) {\n path.opacity = subGroupOpacity;\n path.visible = subGroupVisible;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (paths_2_1 && !paths_2_1.done && (_a = paths_2.return)) _a.call(paths_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (!group.visible) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.updatePathNodes({ seriesHighlighted: seriesHighlighted, itemId: itemId, paths: paths, seriesIdx: seriesIdx })];\n case 1:\n _c.sent();\n return [4 /*yield*/, this.updateDatumNodes({ datumSelection: datumSelection, isHighlight: false, seriesIdx: seriesIdx })];\n case 2:\n _c.sent();\n return [4 /*yield*/, this.updateLabelNodes({ labelSelection: labelSelection, seriesIdx: seriesIdx })];\n case 3:\n _c.sent();\n if (!(markersEnabled && markerSelection)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.updateMarkerNodes({ markerSelection: markerSelection, isHighlight: false, seriesIdx: seriesIdx })];\n case 4:\n _c.sent();\n _c.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); }))];\n case 6:\n _c.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateHighlightSelection = function (seriesHighlighted) {\n return __awaiter$c(this, void 0, void 0, function () {\n var _a, _b, _c, _d, _e, datum, _f, highlightedDatum, highlightSelection, highlightLabelSelection, contextNodeData, item, _g, labelItem, _h, itemId_1, contextNodeData_1, contextNodeData_1_1, labelData, _j;\n var e_3, _k;\n return __generator$c(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = this, _b = _a.chart, _c = _b === void 0 ? {} : _b, _d = _c.highlightedDatum, _e = (_d === void 0 ? {} : _d).datum, datum = _e === void 0 ? undefined : _e, _f = _c.highlightedDatum, highlightedDatum = _f === void 0 ? undefined : _f, highlightSelection = _a.highlightSelection, highlightLabelSelection = _a.highlightLabelSelection, contextNodeData = _a._contextNodeData;\n item = seriesHighlighted && highlightedDatum && datum ? highlightedDatum : undefined;\n _g = this;\n return [4 /*yield*/, this.updateHighlightSelectionItem({ item: item, highlightSelection: highlightSelection })];\n case 1:\n _g.highlightSelection = _l.sent();\n if (this.isLabelEnabled() && item != null) {\n _h = item.itemId, itemId_1 = _h === void 0 ? undefined : _h;\n try {\n for (contextNodeData_1 = __values$i(contextNodeData), contextNodeData_1_1 = contextNodeData_1.next(); !contextNodeData_1_1.done; contextNodeData_1_1 = contextNodeData_1.next()) {\n labelData = contextNodeData_1_1.value.labelData;\n labelItem = labelData.find(function (ld) { return ld.datum === item.datum && ld.itemId === itemId_1; });\n if (labelItem != null) {\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (contextNodeData_1_1 && !contextNodeData_1_1.done && (_k = contextNodeData_1.return)) _k.call(contextNodeData_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n _j = this;\n return [4 /*yield*/, this.updateHighlightSelectionLabel({\n item: labelItem,\n highlightLabelSelection: highlightLabelSelection,\n })];\n case 2:\n _j.highlightLabelSelection = _l.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.pickNodeExactShape = function (point) {\n var e_4, _a;\n var _b;\n var result = _super.prototype.pickNodeExactShape.call(this, point);\n if (result) {\n return result;\n }\n var x = point.x, y = point.y;\n var pickGroupIncludes = this.opts.pickGroupIncludes;\n var markerGroupIncluded = pickGroupIncludes.includes('markers');\n try {\n for (var _c = __values$i(this.subGroups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = _d.value, pickGroup = _e.pickGroup, markerGroup = _e.markerGroup;\n var match = pickGroup.pickNode(x, y);\n if (!match && markerGroupIncluded) {\n match = (_b = markerGroup) === null || _b === void 0 ? void 0 : _b.pickNode(x, y);\n }\n if (match) {\n return { datum: match.datum, distance: 0 };\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n CartesianSeries.prototype.pickNodeClosestDatum = function (point) {\n var e_5, _a, e_6, _b;\n var _c, _d, _e, _f;\n var x = point.x, y = point.y;\n var _g = this, xAxis = _g.xAxis, yAxis = _g.yAxis, group = _g.group, contextNodeData = _g._contextNodeData;\n var hitPoint = group.transformPoint(x, y);\n var minDistance = Infinity;\n var closestDatum;\n try {\n for (var contextNodeData_2 = __values$i(contextNodeData), contextNodeData_2_1 = contextNodeData_2.next(); !contextNodeData_2_1.done; contextNodeData_2_1 = contextNodeData_2.next()) {\n var context = contextNodeData_2_1.value;\n try {\n for (var _h = (e_6 = void 0, __values$i(context.nodeData)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var datum = _j.value;\n var _k = datum.point, _l = _k === void 0 ? {} : _k, _m = _l.x, datumX = _m === void 0 ? NaN : _m, _o = _l.y, datumY = _o === void 0 ? NaN : _o;\n if (isNaN(datumX) || isNaN(datumY)) {\n continue;\n }\n var isInRange = ((_c = xAxis) === null || _c === void 0 ? void 0 : _c.inRange(datumX)) && ((_d = yAxis) === null || _d === void 0 ? void 0 : _d.inRange(datumY));\n if (!isInRange) {\n continue;\n }\n // No need to use Math.sqrt() since x < y implies Math.sqrt(x) < Math.sqrt(y) for\n // values > 1\n var distance = Math.max(Math.pow((hitPoint.x - datumX), 2) + Math.pow((hitPoint.y - datumY), 2), 0);\n if (distance < minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (contextNodeData_2_1 && !contextNodeData_2_1.done && (_a = contextNodeData_2.return)) _a.call(contextNodeData_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (closestDatum) {\n var distance = Math.max(Math.sqrt(minDistance) - (_f = (_e = closestDatum.point) === null || _e === void 0 ? void 0 : _e.size, (_f !== null && _f !== void 0 ? _f : 0)), 0);\n return { datum: closestDatum, distance: distance };\n }\n };\n CartesianSeries.prototype.pickNodeMainAxisFirst = function (point, requireCategoryAxis) {\n var e_7, _a, e_8, _b;\n var _c, _d, _e, _f;\n var x = point.x, y = point.y;\n var _g = this, xAxis = _g.xAxis, yAxis = _g.yAxis, group = _g.group, contextNodeData = _g._contextNodeData;\n // Prefer to start search with any available category axis.\n var directions = [xAxis, yAxis]\n .filter(function (a) { return a instanceof CategoryAxis; })\n .map(function (a) { return a.direction; });\n if (requireCategoryAxis && directions.length === 0) {\n return;\n }\n // Default to X-axis unless we found a suitable category axis.\n var _h = __read$w(directions, 1), _j = _h[0], primaryDirection = _j === void 0 ? ChartAxisDirection.X : _j;\n var hitPoint = group.transformPoint(x, y);\n var hitPointCoords = primaryDirection === ChartAxisDirection.X ? [hitPoint.x, hitPoint.y] : [hitPoint.y, hitPoint.x];\n var minDistance = [Infinity, Infinity];\n var closestDatum = undefined;\n try {\n for (var contextNodeData_3 = __values$i(contextNodeData), contextNodeData_3_1 = contextNodeData_3.next(); !contextNodeData_3_1.done; contextNodeData_3_1 = contextNodeData_3.next()) {\n var context = contextNodeData_3_1.value;\n try {\n for (var _k = (e_8 = void 0, __values$i(context.nodeData)), _l = _k.next(); !_l.done; _l = _k.next()) {\n var datum = _l.value;\n var _m = datum.point, _o = _m === void 0 ? {} : _m, _p = _o.x, datumX = _p === void 0 ? NaN : _p, _q = _o.y, datumY = _q === void 0 ? NaN : _q;\n if (isNaN(datumX) || isNaN(datumY)) {\n continue;\n }\n var isInRange = ((_c = xAxis) === null || _c === void 0 ? void 0 : _c.inRange(datumX)) && ((_d = yAxis) === null || _d === void 0 ? void 0 : _d.inRange(datumY));\n if (!isInRange) {\n continue;\n }\n var point_1 = primaryDirection === ChartAxisDirection.X ? [datumX, datumY] : [datumY, datumX];\n // Compare distances from most significant dimension to least.\n var newMinDistance = true;\n for (var i = 0; i < point_1.length; i++) {\n var dist = Math.abs(point_1[i] - hitPointCoords[i]);\n if (dist > minDistance[i]) {\n newMinDistance = false;\n break;\n }\n if (dist < minDistance[i]) {\n minDistance[i] = dist;\n minDistance.fill(Infinity, i + 1, minDistance.length);\n }\n }\n if (newMinDistance) {\n closestDatum = datum;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_b = _k.return)) _b.call(_k);\n }\n finally { if (e_8) throw e_8.error; }\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (contextNodeData_3_1 && !contextNodeData_3_1.done && (_a = contextNodeData_3.return)) _a.call(contextNodeData_3);\n }\n finally { if (e_7) throw e_7.error; }\n }\n if (closestDatum) {\n var distance = Math.max(Math.sqrt(Math.pow(minDistance[0], 2) + Math.pow(minDistance[1], 2)) - (_f = (_e = closestDatum.point) === null || _e === void 0 ? void 0 : _e.size, (_f !== null && _f !== void 0 ? _f : 0)), 0);\n return { datum: closestDatum, distance: distance };\n }\n };\n CartesianSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n if (this.seriesItemEnabled.size > 0) {\n this.seriesItemEnabled.set(itemId, enabled);\n this.nodeDataRefresh = true;\n }\n else {\n _super.prototype.toggleSeriesItem.call(this, itemId, enabled);\n }\n };\n CartesianSeries.prototype.isEnabled = function () {\n var e_9, _a;\n if (this.seriesItemEnabled.size > 0) {\n try {\n for (var _b = __values$i(this.seriesItemEnabled), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$w(_c.value, 2), enabled = _d[1];\n if (enabled) {\n return true;\n }\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_9) throw e_9.error; }\n }\n return false;\n }\n return _super.prototype.isEnabled.call(this);\n };\n CartesianSeries.prototype.isPathOrSelectionDirty = function () {\n // Override point to allow more sophisticated dirty selection detection.\n return false;\n };\n CartesianSeries.prototype.getLabelData = function () {\n return [];\n };\n CartesianSeries.prototype.updatePaths = function (opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n // Override point for sub-classes.\n opts.paths.forEach(function (p) { return (p.visible = false); });\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.updatePathNodes = function (_opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.updateHighlightSelectionItem = function (opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n var features, markersEnabled, item, highlightSelection, nodeData, markerSelection;\n return __generator$c(this, function (_a) {\n features = this.opts.features;\n markersEnabled = features.includes('markers');\n item = opts.item, highlightSelection = opts.highlightSelection;\n nodeData = item ? [item] : [];\n if (markersEnabled) {\n markerSelection = highlightSelection;\n return [2 /*return*/, this.updateMarkerSelection({ nodeData: nodeData, markerSelection: markerSelection, seriesIdx: -1 })];\n }\n else {\n return [2 /*return*/, this.updateDatumSelection({ nodeData: nodeData, datumSelection: highlightSelection, seriesIdx: -1 })];\n }\n });\n });\n };\n CartesianSeries.prototype.updateHighlightSelectionLabel = function (opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n var item, highlightLabelSelection, labelData;\n return __generator$c(this, function (_a) {\n item = opts.item, highlightLabelSelection = opts.highlightLabelSelection;\n labelData = item ? [item] : [];\n return [2 /*return*/, this.updateLabelSelection({ labelData: labelData, labelSelection: highlightLabelSelection, seriesIdx: -1 })];\n });\n });\n };\n CartesianSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n // Override point for sub-classes.\n return [2 /*return*/, opts.datumSelection];\n });\n });\n };\n CartesianSeries.prototype.updateDatumNodes = function (_opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n // Override point for sub-classes.\n return [2 /*return*/, opts.markerSelection];\n });\n });\n };\n CartesianSeries.prototype.updateMarkerNodes = function (_opts) {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n return CartesianSeries;\n}(Series));\nvar CartesianSeriesMarker = /** @class */ (function (_super) {\n __extends$2j(CartesianSeriesMarker, _super);\n function CartesianSeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1o([\n ValidateAndChangeDetection({\n validatePredicate: OPT_FUNCTION,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], CartesianSeriesMarker.prototype, \"formatter\", void 0);\n return CartesianSeriesMarker;\n}(SeriesMarker));\n\nfunction sleep(sleepTimeoutMs) {\n return new Promise(function (resolve) {\n setTimeout(function () { return resolve(undefined); }, sleepTimeoutMs);\n });\n}\n\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$h = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DEFAULT_TOOLTIP_CLASS = 'ag-chart-tooltip';\nvar defaultTooltipCss$1 = \"\\n.ag-chart-tooltip {\\n transition: transform 0.1s ease;\\n display: table;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n user-select: none;\\n pointer-events: none;\\n white-space: nowrap;\\n z-index: 99999;\\n font: 12px Verdana, sans-serif;\\n color: black;\\n background: rgb(244, 244, 244);\\n border-radius: 5px;\\n box-shadow: 0 0 1px rgba(3, 3, 3, 0.7), 0.5vh 0.5vh 1vh rgba(3, 3, 3, 0.25);\\n}\\n\\n.ag-chart-tooltip-no-animation {\\n transition: none !important;\\n}\\n\\n.ag-chart-tooltip-hidden {\\n visibility: hidden;\\n}\\n\\n.ag-chart-tooltip-title {\\n font-weight: bold;\\n padding: 7px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n color: white;\\n background-color: #888888;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n\\n.ag-chart-tooltip-content {\\n padding: 7px;\\n line-height: 1.7em;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n overflow: hidden;\\n}\\n\\n.ag-chart-tooltip-content:empty {\\n padding: 0;\\n height: 7px;\\n}\\n\\n.ag-chart-tooltip-arrow::before {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 6px solid #989898;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: #989898;\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.ag-chart-tooltip-arrow::after {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 5px solid black;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: rgb(244, 244, 244);\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.ag-chart-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\nfunction toTooltipHtml$1(input, defaults) {\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults || {};\n var _a = input.content, content = _a === void 0 ? defaults.content || '' : _a, _b = input.title, title = _b === void 0 ? defaults.title || undefined : _b, _c = input.color, color = _c === void 0 ? defaults.color || 'white' : _c, _d = input.backgroundColor, backgroundColor = _d === void 0 ? defaults.backgroundColor || '#888' : _d;\n var titleHtml = title\n ? \"
\" + title + \"
\"\n : '';\n return titleHtml + \"
\" + content + \"
\";\n}\nvar Tooltip = /** @class */ (function () {\n function Tooltip(canvasElement, document, container) {\n var _this = this;\n this.enabled = true;\n this.class = undefined;\n this.lastClass = undefined;\n this.delay = 0;\n /**\n * If `true`, the tooltip will be shown for the marker closest to the mouse cursor.\n * Only has effect on series with markers.\n */\n this.tracking = true;\n this.showTimeout = 0;\n this.constrained = false;\n var tooltipRoot = document.body;\n var element = document.createElement('div');\n this.element = tooltipRoot.appendChild(element);\n this.element.classList.add(DEFAULT_TOOLTIP_CLASS);\n this.container = container;\n this.observedElement = canvasElement;\n // Detect when the chart becomes invisible and hide the tooltip as well.\n if (window.IntersectionObserver) {\n var observer = new IntersectionObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$h(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n if (entry.target === _this.observedElement() && entry.intersectionRatio === 0) {\n _this.toggle(false);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, { root: tooltipRoot });\n observer.observe(this.observedElement());\n this.observer = observer;\n }\n if (Tooltip.tooltipDocuments.indexOf(document) < 0) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss$1;\n // Make sure the default tooltip style goes before other styles so it can be overridden.\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Tooltip.tooltipDocuments.push(document);\n }\n }\n Tooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n if (this.observer) {\n this.observer.unobserve(this.observedElement());\n }\n };\n Tooltip.prototype.isVisible = function () {\n var element = this.element;\n return !element.classList.contains(DEFAULT_TOOLTIP_CLASS + '-hidden');\n };\n Tooltip.prototype.updateClass = function (visible, constrained) {\n var _a = this, element = _a.element, newClass = _a.class, lastClass = _a.lastClass;\n var wasVisible = !element.classList.contains(DEFAULT_TOOLTIP_CLASS + \"-hidden\");\n var toggleClass = function (name, include) {\n var className = DEFAULT_TOOLTIP_CLASS + \"-\" + name;\n if (include) {\n element.classList.add(className);\n }\n else {\n element.classList.remove(className);\n }\n };\n toggleClass('no-animation', !wasVisible && !!visible); // No animation on first show.\n toggleClass('hidden', !visible); // Hide if not visible.\n toggleClass('arrow', !constrained); // Add arrow if tooltip is constrained.\n if (newClass !== lastClass) {\n if (lastClass) {\n element.classList.remove(lastClass);\n }\n if (newClass) {\n element.classList.add(newClass);\n }\n this.lastClass = newClass;\n }\n };\n /**\n * Shows tooltip at the given event's coordinates.\n * If the `html` parameter is missing, moves the existing tooltip to the new position.\n */\n Tooltip.prototype.show = function (meta, html, instantly) {\n var _this = this;\n if (instantly === void 0) { instantly = false; }\n var el = this.element;\n if (html !== undefined) {\n el.innerHTML = html;\n }\n else if (!el.innerHTML) {\n return;\n }\n var left = meta.pageX - el.clientWidth / 2;\n var top = meta.pageY - el.clientHeight - 8;\n this.constrained = false;\n if (this.container()) {\n var tooltipWidth = el.getBoundingClientRect().width;\n var minLeft = 0;\n var maxLeft = window.innerWidth - tooltipWidth - 1;\n if (left < minLeft) {\n left = minLeft;\n this.constrained = true;\n }\n else if (left > maxLeft) {\n left = maxLeft;\n this.constrained = true;\n }\n if (top < window.scrollY) {\n top = meta.pageY + 20;\n this.constrained = true;\n }\n }\n el.style.transform = \"translate(\" + Math.round(left) + \"px, \" + Math.round(top) + \"px)\";\n if (this.delay > 0 && !instantly) {\n this.toggle(false);\n this.showTimeout = window.setTimeout(function () {\n _this.toggle(true);\n }, this.delay);\n return;\n }\n this.toggle(true);\n };\n Tooltip.prototype.toggle = function (visible) {\n if (!visible) {\n window.clearTimeout(this.showTimeout);\n }\n this.updateClass(visible, this.constrained);\n };\n Tooltip.tooltipDocuments = [];\n __decorate$1n([\n Validate(BOOLEAN)\n ], Tooltip.prototype, \"enabled\", void 0);\n __decorate$1n([\n Validate(OPT_STRING)\n ], Tooltip.prototype, \"class\", void 0);\n __decorate$1n([\n Validate(NUMBER(0))\n ], Tooltip.prototype, \"delay\", void 0);\n __decorate$1n([\n Validate(BOOLEAN)\n ], Tooltip.prototype, \"tracking\", void 0);\n return Tooltip;\n}());\n\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$y = (undefined && undefined.__assign) || function () {\n __assign$y = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$y.apply(this, arguments);\n};\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$b = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$b = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$g = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$v = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$e = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$v(arguments[i]));\n return ar;\n};\n/** Types of chart-update, in pipeline execution order. */\nvar ChartUpdateType;\n(function (ChartUpdateType) {\n ChartUpdateType[ChartUpdateType[\"FULL\"] = 0] = \"FULL\";\n ChartUpdateType[ChartUpdateType[\"PROCESS_DATA\"] = 1] = \"PROCESS_DATA\";\n ChartUpdateType[ChartUpdateType[\"PERFORM_LAYOUT\"] = 2] = \"PERFORM_LAYOUT\";\n ChartUpdateType[ChartUpdateType[\"SERIES_UPDATE\"] = 3] = \"SERIES_UPDATE\";\n ChartUpdateType[ChartUpdateType[\"SCENE_RENDER\"] = 4] = \"SCENE_RENDER\";\n ChartUpdateType[ChartUpdateType[\"NONE\"] = 5] = \"NONE\";\n})(ChartUpdateType || (ChartUpdateType = {}));\nvar Chart = /** @class */ (function (_super) {\n __extends$2i(Chart, _super);\n function Chart(document, overrideDevicePixelRatio) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n _this.options = {};\n _this.userOptions = {};\n _this.background = new Background();\n _this.legend = new Legend();\n _this.legendAutoPadding = new Padding$1();\n _this._debug = false;\n _this.extraDebugStats = {};\n _this._container = undefined;\n _this._data = [];\n _this._autoSize = false;\n _this.padding = new Padding$1(20);\n _this._title = undefined;\n _this._subtitle = undefined;\n _this._destroyed = false;\n _this._pendingFactoryUpdates = [];\n _this._performUpdateNoRenderCount = 0;\n _this._performUpdateType = ChartUpdateType.NONE;\n _this.seriesToUpdate = new Set();\n _this.performUpdateTrigger = debouncedCallback(function (_a) {\n var count = _a.count;\n return __awaiter$b(_this, void 0, void 0, function () {\n var error_1;\n return __generator$b(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.performUpdate(count)];\n case 1:\n _b.sent();\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n this._lastPerformUpdateError = error_1;\n console.error(error_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n });\n _this._axes = [];\n _this._series = [];\n _this.legendBBox = new BBox$1(0, 0, 0, 0);\n _this._onMouseDown = _this.onMouseDown.bind(_this);\n _this._onMouseMove = _this.onMouseMove.bind(_this);\n _this._onMouseUp = _this.onMouseUp.bind(_this);\n _this._onMouseOut = _this.onMouseOut.bind(_this);\n _this._onClick = _this.onClick.bind(_this);\n _this.lastPointerMeta = undefined;\n _this.pointerScheduler = debouncedAnimationFrame(function () {\n _this.handlePointer(_this.lastPointerMeta);\n _this.lastPointerMeta = undefined;\n });\n _this.pointerInsideLegend = false;\n _this.pointerOverLegendDatum = false;\n var root = new Group$1({ name: 'root' });\n var background = _this.background;\n background.fill = 'white';\n root.appendChild(background.node);\n var element = (_this.element = document.createElement('div'));\n element.classList.add('ag-chart-wrapper');\n element.style.position = 'relative';\n _this.scene = new Scene$1({ document: document, overrideDevicePixelRatio: overrideDevicePixelRatio });\n _this.scene.debug.consoleLog = _this._debug;\n _this.scene.root = root;\n _this.scene.container = element;\n _this.autoSize = true;\n SizeMonitor.observe(_this.element, function (size) {\n var width = size.width, height = size.height;\n if (!_this.autoSize) {\n return;\n }\n if (width === 0 && height === 0) {\n return;\n }\n if (width === _this.width && height === _this.height) {\n return;\n }\n _this._lastAutoSize = [width, height];\n _this.resize(width, height);\n });\n _this.tooltip = new Tooltip(function () { return _this.scene.canvas.element; }, document, function () { return _this.container; });\n _this.setupDomListeners(_this.scene.canvas.element);\n return _this;\n }\n Object.defineProperty(Chart.prototype, \"debug\", {\n get: function () {\n return this._debug;\n },\n set: function (value) {\n this._debug = value;\n this.scene.debug.consoleLog = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n if (value && !this.destroyed) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (data) {\n this._data = data;\n this.series.forEach(function (series) { return (series.data = data); });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"width\", {\n get: function () {\n return this.scene.width;\n },\n set: function (value) {\n this.autoSize = false;\n if (this.width !== value) {\n this.resize(value, this.height);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"height\", {\n get: function () {\n return this.scene.height;\n },\n set: function (value) {\n this.autoSize = false;\n if (this.height !== value) {\n this.resize(this.width, value);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"autoSize\", {\n get: function () {\n return this._autoSize;\n },\n set: function (value) {\n if (this._autoSize === value) {\n return;\n }\n this._autoSize = value;\n var style = this.element.style;\n if (value) {\n style.display = 'block';\n style.width = '100%';\n style.height = '100%';\n if (!this._lastAutoSize) {\n return;\n }\n this.resize(this._lastAutoSize[0], this._lastAutoSize[1]);\n }\n else {\n style.display = 'inline-block';\n style.width = 'auto';\n style.height = 'auto';\n }\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.download = function (fileName, fileFormat) {\n this.scene.download(fileName, fileFormat);\n };\n Object.defineProperty(Chart.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (caption) {\n var _a, _b;\n var root = this.scene.root;\n if (this._title != null) {\n (_a = root) === null || _a === void 0 ? void 0 : _a.removeChild(this._title.node);\n }\n this._title = caption;\n if (this._title != null) {\n (_b = root) === null || _b === void 0 ? void 0 : _b.appendChild(this._title.node);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"subtitle\", {\n get: function () {\n return this._subtitle;\n },\n set: function (caption) {\n var _a, _b;\n var root = this.scene.root;\n if (this._subtitle != null) {\n (_a = root) === null || _a === void 0 ? void 0 : _a.removeChild(this._subtitle.node);\n }\n this._subtitle = caption;\n if (this._subtitle != null) {\n (_b = root) === null || _b === void 0 ? void 0 : _b.appendChild(this._subtitle.node);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"destroyed\", {\n get: function () {\n return this._destroyed;\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.destroy = function () {\n this._performUpdateType = ChartUpdateType.NONE;\n this._pendingFactoryUpdates.splice(0);\n this.tooltip.destroy();\n SizeMonitor.unobserve(this.element);\n this.container = undefined;\n this.cleanupDomListeners(this.scene.canvas.element);\n this.scene.destroy();\n this.series.forEach(function (s) { return s.destroy(); });\n this.series = [];\n this._destroyed = true;\n };\n Chart.prototype.log = function (opts) {\n if (this.debug) {\n console.log(opts);\n }\n };\n Chart.prototype.togglePointer = function (visible) {\n if (this.tooltip.enabled) {\n this.tooltip.toggle(visible);\n }\n else if (this.lastPick) {\n this.changeHighlightDatum();\n }\n };\n Chart.prototype.requestFactoryUpdate = function (cb) {\n var callbacks = this._pendingFactoryUpdates;\n var count = callbacks.length;\n if (count === 0) {\n callbacks.push(cb);\n this._processCallbacks();\n }\n else {\n // Factory callback process already running, the callback will be invoked asynchronously.\n // Clear the queue after the first callback to prevent unnecessary re-renderings.\n callbacks.splice(1, count - 1, cb);\n }\n };\n Chart.prototype._processCallbacks = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n var callbacks, e_1;\n return __generator$b(this, function (_a) {\n switch (_a.label) {\n case 0:\n callbacks = this._pendingFactoryUpdates;\n _a.label = 1;\n case 1:\n if (!(callbacks.length > 0)) return [3 /*break*/, 7];\n if (!this.updatePending) return [3 /*break*/, 3];\n return [4 /*yield*/, sleep(1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 1]; // Make sure to check queue has an item before continuing.\n case 3:\n _a.trys.push([3, 5, , 6]);\n return [4 /*yield*/, callbacks[0]()];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n e_1 = _a.sent();\n console.error(e_1);\n return [3 /*break*/, 6];\n case 6:\n callbacks.shift();\n return [3 /*break*/, 1];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(Chart.prototype, \"performUpdateType\", {\n get: function () {\n return this._performUpdateType;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"updatePending\", {\n get: function () {\n return this._performUpdateType !== ChartUpdateType.NONE || this.lastPointerMeta != null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"lastPerformUpdateError\", {\n get: function () {\n return this._lastPerformUpdateError;\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.awaitUpdateCompletion = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n return __generator$b(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.performUpdateTrigger.await()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.update = function (type, opts) {\n var e_2, _a;\n if (type === void 0) { type = ChartUpdateType.FULL; }\n var _b = opts || {}, _c = _b.forceNodeDataRefresh, forceNodeDataRefresh = _c === void 0 ? false : _c, _d = _b.seriesToUpdate, seriesToUpdate = _d === void 0 ? this.series : _d;\n if (forceNodeDataRefresh) {\n this.series.forEach(function (series) { return series.markNodeDataDirty(); });\n }\n try {\n for (var seriesToUpdate_1 = __values$g(seriesToUpdate), seriesToUpdate_1_1 = seriesToUpdate_1.next(); !seriesToUpdate_1_1.done; seriesToUpdate_1_1 = seriesToUpdate_1.next()) {\n var series = seriesToUpdate_1_1.value;\n this.seriesToUpdate.add(series);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (seriesToUpdate_1_1 && !seriesToUpdate_1_1.done && (_a = seriesToUpdate_1.return)) _a.call(seriesToUpdate_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (type < this._performUpdateType) {\n this._performUpdateType = type;\n this.performUpdateTrigger.schedule();\n }\n };\n Chart.prototype.performUpdate = function (count) {\n return __awaiter$b(this, void 0, void 0, function () {\n var _a, performUpdateType, extraDebugStats, splits, _b, count_1, seriesRect_1, seriesUpdates, end;\n return __generator$b(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this, performUpdateType = _a._performUpdateType, extraDebugStats = _a.extraDebugStats;\n splits = [performance.now()];\n _b = performUpdateType;\n switch (_b) {\n case ChartUpdateType.FULL: return [3 /*break*/, 1];\n case ChartUpdateType.PROCESS_DATA: return [3 /*break*/, 1];\n case ChartUpdateType.PERFORM_LAYOUT: return [3 /*break*/, 3];\n case ChartUpdateType.SERIES_UPDATE: return [3 /*break*/, 5];\n case ChartUpdateType.SCENE_RENDER: return [3 /*break*/, 7];\n case ChartUpdateType.NONE: return [3 /*break*/, 9];\n }\n return [3 /*break*/, 10];\n case 1: return [4 /*yield*/, this.processData()];\n case 2:\n _c.sent();\n splits.push(performance.now());\n // Disable tooltip/highlight if the data fundamentally shifted.\n this.disablePointer({ updateProcessing: false });\n _c.label = 3;\n case 3:\n if (this._autoSize && !this._lastAutoSize) {\n count_1 = this._performUpdateNoRenderCount++;\n if (count_1 < 5) {\n // Reschedule if canvas size hasn't been set yet to avoid a race.\n this._performUpdateType = ChartUpdateType.PERFORM_LAYOUT;\n this.performUpdateTrigger.schedule();\n return [3 /*break*/, 10];\n }\n // After several failed passes, continue and accept there maybe a redundant\n // render. Sometimes this case happens when we already have the correct\n // width/height, and we end up never rendering the chart in that scenario.\n }\n this._performUpdateNoRenderCount = 0;\n return [4 /*yield*/, this.performLayout()];\n case 4:\n _c.sent();\n splits.push(performance.now());\n _c.label = 5;\n case 5:\n seriesRect_1 = this.seriesRect;\n seriesUpdates = __spread$e(this.seriesToUpdate).map(function (series) { return series.update({ seriesRect: seriesRect_1 }); });\n this.seriesToUpdate.clear();\n return [4 /*yield*/, Promise.all(seriesUpdates)];\n case 6:\n _c.sent();\n splits.push(performance.now());\n _c.label = 7;\n case 7: return [4 /*yield*/, this.scene.render({ debugSplitTimes: splits, extraDebugStats: extraDebugStats })];\n case 8:\n _c.sent();\n this.extraDebugStats = {};\n _c.label = 9;\n case 9:\n // Do nothing.\n this._performUpdateType = ChartUpdateType.NONE;\n _c.label = 10;\n case 10:\n end = performance.now();\n this.log({\n chart: this,\n durationMs: Math.round((end - splits[0]) * 100) / 100,\n count: count,\n performUpdateType: ChartUpdateType[performUpdateType],\n });\n return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(Chart.prototype, \"axes\", {\n get: function () {\n return this._axes;\n },\n set: function (values) {\n var _this = this;\n this._axes.forEach(function (axis) { return _this.detachAxis(axis); });\n // make linked axes go after the regular ones (simulates stable sort by `linkedTo` property)\n this._axes = values.filter(function (a) { return !a.linkedTo; }).concat(values.filter(function (a) { return a.linkedTo; }));\n this._axes.forEach(function (axis) { return _this.attachAxis(axis); });\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.attachAxis = function (axis) {\n this.scene.root.insertBefore(axis.gridlineGroup, this.seriesRoot);\n this.scene.root.insertBefore(axis.axisGroup, this.seriesRoot);\n this.scene.root.insertBefore(axis.crossLineGroup, this.seriesRoot);\n };\n Chart.prototype.detachAxis = function (axis) {\n this.scene.root.removeChild(axis.axisGroup);\n this.scene.root.removeChild(axis.gridlineGroup);\n this.scene.root.removeChild(axis.crossLineGroup);\n };\n Object.defineProperty(Chart.prototype, \"series\", {\n get: function () {\n return this._series;\n },\n set: function (values) {\n var _this = this;\n this.removeAllSeries();\n values.forEach(function (series) { return _this.addSeries(series); });\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.addSeries = function (series, before) {\n var _a = this, allSeries = _a.series, seriesRoot = _a.seriesRoot;\n var canAdd = allSeries.indexOf(series) < 0;\n if (canAdd) {\n var beforeIndex = before ? allSeries.indexOf(before) : -1;\n if (beforeIndex >= 0) {\n allSeries.splice(beforeIndex, 0, series);\n seriesRoot.insertBefore(series.group, before.group);\n }\n else {\n allSeries.push(series);\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n return true;\n }\n return false;\n };\n Chart.prototype.initSeries = function (series) {\n series.chart = this;\n if (!series.data) {\n series.data = this.data;\n }\n series.addEventListener('nodeClick', this.onSeriesNodeClick, this);\n };\n Chart.prototype.freeSeries = function (series) {\n series.chart = undefined;\n series.removeEventListener('nodeClick', this.onSeriesNodeClick, this);\n };\n Chart.prototype.addSeriesAfter = function (series, after) {\n var _a = this, allSeries = _a.series, seriesRoot = _a.seriesRoot;\n var canAdd = allSeries.indexOf(series) < 0;\n if (canAdd) {\n var afterIndex = after ? this.series.indexOf(after) : -1;\n if (afterIndex >= 0) {\n if (afterIndex + 1 < allSeries.length) {\n seriesRoot.insertBefore(series.group, allSeries[afterIndex + 1].group);\n }\n else {\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n allSeries.splice(afterIndex + 1, 0, series);\n }\n else {\n if (allSeries.length > 0) {\n seriesRoot.insertBefore(series.group, allSeries[0].group);\n }\n else {\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n allSeries.unshift(series);\n }\n }\n return false;\n };\n Chart.prototype.removeSeries = function (series) {\n var index = this.series.indexOf(series);\n if (index >= 0) {\n this.series.splice(index, 1);\n this.freeSeries(series);\n this.seriesRoot.removeChild(series.group);\n return true;\n }\n return false;\n };\n Chart.prototype.removeAllSeries = function () {\n var _this = this;\n this.series.forEach(function (series) {\n _this.freeSeries(series);\n _this.seriesRoot.removeChild(series.group);\n });\n this._series = []; // using `_series` instead of `series` to prevent infinite recursion\n };\n Chart.prototype.assignSeriesToAxes = function () {\n var _this = this;\n this.axes.forEach(function (axis) {\n axis.boundSeries = _this.series.filter(function (s) {\n var seriesAxis = axis.direction === ChartAxisDirection.X ? s.xAxis : s.yAxis;\n return seriesAxis === axis;\n });\n });\n };\n Chart.prototype.assignAxesToSeries = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n // This method has to run before `assignSeriesToAxes`.\n var directionToAxesMap = {};\n this.axes.forEach(function (axis) {\n var direction = axis.direction;\n var directionAxes = directionToAxesMap[direction] || (directionToAxesMap[direction] = []);\n directionAxes.push(axis);\n });\n this.series.forEach(function (series) {\n series.directions.forEach(function (direction) {\n var currentAxis = direction === ChartAxisDirection.X ? series.xAxis : series.yAxis;\n if (currentAxis && !force) {\n return;\n }\n var directionAxes = directionToAxesMap[direction];\n if (!directionAxes) {\n console.warn(\"AG Charts - no available axis for direction [\" + direction + \"]; check series and axes configuration.\");\n return;\n }\n var seriesKeys = series.getKeys(direction);\n var newAxis = _this.findMatchingAxis(directionAxes, series.getKeys(direction));\n if (!newAxis) {\n console.warn(\"AG Charts - no matching axis for direction [\" + direction + \"] and keys [\" + seriesKeys + \"]; check series and axes configuration.\");\n return;\n }\n if (direction === ChartAxisDirection.X) {\n series.xAxis = newAxis;\n }\n else {\n series.yAxis = newAxis;\n }\n });\n });\n };\n Chart.prototype.findMatchingAxis = function (directionAxes, directionKeys) {\n var e_3, _a, e_4, _b;\n try {\n for (var directionAxes_1 = __values$g(directionAxes), directionAxes_1_1 = directionAxes_1.next(); !directionAxes_1_1.done; directionAxes_1_1 = directionAxes_1.next()) {\n var axis = directionAxes_1_1.value;\n var axisKeys = axis.keys;\n if (!axisKeys.length) {\n return axis;\n }\n if (!directionKeys) {\n continue;\n }\n try {\n for (var directionKeys_1 = (e_4 = void 0, __values$g(directionKeys)), directionKeys_1_1 = directionKeys_1.next(); !directionKeys_1_1.done; directionKeys_1_1 = directionKeys_1.next()) {\n var directionKey = directionKeys_1_1.value;\n if (axisKeys.indexOf(directionKey) >= 0) {\n return axis;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (directionKeys_1_1 && !directionKeys_1_1.done && (_b = directionKeys_1.return)) _b.call(directionKeys_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (directionAxes_1_1 && !directionAxes_1_1.done && (_a = directionAxes_1.return)) _a.call(directionAxes_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n Chart.prototype.resize = function (width, height) {\n if (this.scene.resize(width, height)) {\n this.background.width = this.width;\n this.background.height = this.height;\n this.update(ChartUpdateType.PERFORM_LAYOUT, { forceNodeDataRefresh: true });\n }\n };\n Chart.prototype.processData = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n return __generator$b(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.axes.length > 0 || this.series.some(function (s) { return s instanceof CartesianSeries; })) {\n this.assignAxesToSeries(true);\n this.assignSeriesToAxes();\n }\n return [4 /*yield*/, Promise.all(this.series.map(function (s) { return s.processData(); }))];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.updateLegend()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.placeLabels = function () {\n var e_5, _a;\n var visibleSeries = [];\n var data = [];\n try {\n for (var _b = __values$g(this.series), _c = _b.next(); !_c.done; _c = _b.next()) {\n var series = _c.value;\n if (!series.visible) {\n continue;\n }\n var labelData = series.getLabelData();\n if (!(labelData && isPointLabelDatum(labelData[0]))) {\n continue;\n }\n data.push(labelData);\n visibleSeries.push(series);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n var seriesRect = this.seriesRect;\n var labels = seriesRect && data.length > 0\n ? placeLabels(data, { x: 0, y: 0, width: seriesRect.width, height: seriesRect.height })\n : [];\n return new Map(labels.map(function (l, i) { return [visibleSeries[i], l]; }));\n };\n Chart.prototype.updateLegend = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n var legendData, formatter;\n return __generator$b(this, function (_a) {\n legendData = [];\n this.series\n .filter(function (s) { return s.showInLegend; })\n .forEach(function (series) {\n legendData.push.apply(legendData, __spread$e(series.getLegendData()));\n });\n formatter = this.legend.item.label.formatter;\n if (formatter) {\n legendData.forEach(function (datum) {\n return (datum.label.text = formatter({\n get id() {\n doOnce$1(function () {\n return console.warn(\"AG Charts - LegendLabelFormatterParams.id is deprecated, use seriesId instead\", datum);\n }, \"LegendLabelFormatterParams.id deprecated\");\n return datum.seriesId;\n },\n itemId: datum.itemId,\n value: datum.label.text,\n seriesId: datum.seriesId,\n }));\n });\n }\n this.legend.data = legendData;\n return [2 /*return*/];\n });\n });\n };\n Chart.prototype.positionCaptions = function () {\n var _a = this, title = _a._title, subtitle = _a._subtitle;\n var spacing = 10;\n var paddingTop = spacing;\n if (!title) {\n return {};\n }\n title.node.visible = title.enabled;\n if (title.enabled) {\n title.node.x = this.width / 2;\n title.node.y = paddingTop;\n var titleBBox = title.node.computeBBox(); // make sure to set node's x/y, then computeBBox\n if (titleBBox) {\n paddingTop = titleBBox.y + titleBBox.height;\n }\n }\n if (!subtitle) {\n return {};\n }\n subtitle.node.visible = title.enabled && subtitle.enabled;\n if (title.enabled && subtitle.enabled) {\n subtitle.node.x = this.width / 2;\n subtitle.node.y = paddingTop + spacing;\n var subtitleBBox = subtitle.node.computeBBox();\n if (subtitleBBox) {\n paddingTop = subtitleBBox.y + subtitleBBox.height;\n }\n }\n return { captionAutoPadding: Math.floor(paddingTop) };\n };\n Chart.prototype.positionLegend = function (captionAutoPadding) {\n var _a = this, legend = _a.legend, legendAutoPadding = _a.legendAutoPadding;\n legendAutoPadding.clear();\n if (!legend.enabled || !legend.data.length) {\n return;\n }\n var width = this.width;\n var height = this.height - captionAutoPadding;\n var legendGroup = legend.group;\n var legendSpacing = legend.spacing;\n var translationX = 0;\n var translationY = 0;\n var legendBBox;\n switch (legend.position) {\n case 'bottom':\n legend.performLayout(width - legendSpacing * 2, 0);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.height < Math.floor(height * 0.5); // Remove legend if it takes up more than 50% of the chart height.\n if (legendGroup.visible) {\n translationX = (width - legendBBox.width) / 2 - legendBBox.x;\n translationY = captionAutoPadding + height - legendBBox.height - legendBBox.y - legendSpacing;\n legendAutoPadding.bottom = legendBBox.height;\n }\n else {\n legendAutoPadding.bottom = 0;\n }\n break;\n case 'top':\n legend.performLayout(width - legendSpacing * 2, 0);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.height < Math.floor(height * 0.5);\n if (legendGroup.visible) {\n translationX = (width - legendBBox.width) / 2 - legendBBox.x;\n translationY = captionAutoPadding + legendSpacing - legendBBox.y;\n legendAutoPadding.top = legendBBox.height;\n }\n else {\n legendAutoPadding.top = 0;\n }\n break;\n case 'left':\n legend.performLayout(width, height - legendSpacing * 2);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.width < Math.floor(width * 0.5); // Remove legend if it takes up more than 50% of the chart width.\n if (legendGroup.visible) {\n translationX = legendSpacing - legendBBox.x;\n translationY = captionAutoPadding + (height - legendBBox.height) / 2 - legendBBox.y;\n legendAutoPadding.left = legendBBox.width;\n }\n else {\n legendAutoPadding.left = 0;\n }\n break;\n default: // case 'right':\n legend.performLayout(width, height - legendSpacing * 2);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.width < Math.floor(width * 0.5);\n if (legendGroup.visible) {\n translationX = width - legendBBox.width - legendBBox.x - legendSpacing;\n translationY = captionAutoPadding + (height - legendBBox.height) / 2 - legendBBox.y;\n legendAutoPadding.right = legendBBox.width;\n }\n else {\n legendAutoPadding.right = 0;\n }\n break;\n }\n if (legendGroup.visible) {\n // Round off for pixel grid alignment to work properly.\n legendGroup.translationX = Math.floor(translationX + legendGroup.translationX);\n legendGroup.translationY = Math.floor(translationY + legendGroup.translationY);\n this.legendBBox = legendGroup.computeBBox();\n }\n };\n Chart.prototype.setupDomListeners = function (chartElement) {\n chartElement.addEventListener('mousedown', this._onMouseDown);\n chartElement.addEventListener('mousemove', this._onMouseMove);\n chartElement.addEventListener('mouseup', this._onMouseUp);\n chartElement.addEventListener('mouseout', this._onMouseOut);\n chartElement.addEventListener('click', this._onClick);\n };\n Chart.prototype.cleanupDomListeners = function (chartElement) {\n chartElement.removeEventListener('mousedown', this._onMouseDown);\n chartElement.removeEventListener('mousemove', this._onMouseMove);\n chartElement.removeEventListener('mouseup', this._onMouseUp);\n chartElement.removeEventListener('mouseout', this._onMouseOut);\n chartElement.removeEventListener('click', this._onClick);\n };\n Chart.prototype.getSeriesRect = function () {\n return this.seriesRect;\n };\n // x/y are local canvas coordinates in CSS pixels, not actual pixels\n Chart.prototype.pickSeriesNode = function (point) {\n var e_6, _a;\n var _b, _c;\n var tracking = this.tooltip.tracking;\n var start = performance.now();\n // Disable 'nearest match' options if tooltip.tracking is enabled.\n var pickModes = tracking ? undefined : [SeriesNodePickMode.EXACT_SHAPE_MATCH];\n // Iterate through series in reverse, as later declared series appears on top of earlier\n // declared series.\n var reverseSeries = __spread$e(this.series).reverse();\n var result = undefined;\n try {\n for (var reverseSeries_1 = __values$g(reverseSeries), reverseSeries_1_1 = reverseSeries_1.next(); !reverseSeries_1_1.done; reverseSeries_1_1 = reverseSeries_1.next()) {\n var series = reverseSeries_1_1.value;\n if (!series.visible || !series.group.visible) {\n continue;\n }\n var _d = (_b = series.pickNode(point, pickModes), (_b !== null && _b !== void 0 ? _b : {})), match = _d.match, distance = _d.distance;\n if (!match || distance == null) {\n continue;\n }\n if (!result || result.distance > distance) {\n result = { series: series, distance: distance, datum: match };\n }\n if (distance === 0) {\n break;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (reverseSeries_1_1 && !reverseSeries_1_1.done && (_a = reverseSeries_1.return)) _a.call(reverseSeries_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n this.extraDebugStats['pickSeriesNode'] = Math.round((_c = this.extraDebugStats['pickSeriesNode'], (_c !== null && _c !== void 0 ? _c : 0)) + (performance.now() - start));\n return result;\n };\n Chart.prototype.onMouseMove = function (event) {\n this.handleLegendMouseMove(event);\n if (this.tooltip.enabled) {\n if (this.tooltip.delay > 0) {\n this.togglePointer(false);\n }\n }\n this.lastPointerMeta = {\n pageX: event.pageX,\n pageY: event.pageY,\n offsetX: event.offsetX,\n offsetY: event.offsetY,\n event: event,\n };\n this.pointerScheduler.schedule();\n this.extraDebugStats['mouseX'] = event.offsetX;\n this.extraDebugStats['mouseY'] = event.offsetY;\n this.update(ChartUpdateType.SCENE_RENDER);\n };\n Chart.prototype.disablePointer = function (_a) {\n var _b = (_a === void 0 ? {} : _a).updateProcessing, updateProcessing = _b === void 0 ? true : _b;\n this.changeHighlightDatum(undefined, { updateProcessing: updateProcessing });\n this.togglePointer(false);\n };\n Chart.prototype.handlePointer = function (meta) {\n var _this = this;\n var lastPick = this.lastPick;\n var offsetX = meta.offsetX, offsetY = meta.offsetY;\n var disablePointer = function () {\n if (lastPick) {\n // Cursor moved from a non-marker node to empty space.\n _this.disablePointer();\n }\n };\n if (!(this.seriesRect && this.seriesRect.containsPoint(offsetX, offsetY))) {\n disablePointer();\n return;\n }\n var pick = this.pickSeriesNode({ x: offsetX, y: offsetY });\n if (!pick) {\n disablePointer();\n return;\n }\n if (!lastPick || lastPick.datum !== pick.datum) {\n this.onSeriesDatumPick(meta, pick.datum);\n return;\n }\n lastPick.event = meta.event;\n if (this.tooltip.enabled && pick.series.tooltip.enabled) {\n this.tooltip.show(this.mergePointerDatum(meta, pick.datum));\n }\n };\n Chart.prototype.onMouseDown = function (_event) {\n // Override point for subclasses.\n };\n Chart.prototype.onMouseUp = function (_event) {\n // Override point for subclasses.\n };\n Chart.prototype.onMouseOut = function (_event) {\n this.togglePointer(false);\n };\n Chart.prototype.onClick = function (event) {\n if (this.checkSeriesNodeClick()) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n return;\n }\n if (this.checkLegendClick(event)) {\n this.update(ChartUpdateType.PROCESS_DATA, { forceNodeDataRefresh: true });\n return;\n }\n this.fireEvent({\n type: 'click',\n event: event,\n });\n };\n Chart.prototype.checkSeriesNodeClick = function () {\n var lastPick = this.lastPick;\n if (lastPick && lastPick.event) {\n var event_1 = lastPick.event, datum = lastPick.datum;\n datum.series.fireNodeClickEvent(event_1, datum);\n return true;\n }\n return false;\n };\n Chart.prototype.onSeriesNodeClick = function (event) {\n var seriesNodeClickEvent = __assign$y(__assign$y({}, event), { type: 'seriesNodeClick' });\n Object.defineProperty(seriesNodeClickEvent, 'series', {\n enumerable: false,\n // Should display the deprecation warning\n get: function () { return event.series; },\n });\n this.fireEvent(seriesNodeClickEvent);\n };\n Chart.prototype.checkLegendClick = function (event) {\n var _a;\n var _b = this, legend = _b.legend, legendItemClick = _b.legend.listeners.legendItemClick;\n var datum = legend.getDatumForPoint(event.offsetX, event.offsetY);\n if (!datum) {\n return false;\n }\n var id = datum.id, itemId = datum.itemId, enabled = datum.enabled;\n var series = find(this.series, function (s) { return s.id === id; });\n if (!series) {\n return false;\n }\n series.toggleSeriesItem(itemId, !enabled);\n if (enabled) {\n this.togglePointer(false);\n }\n if (enabled && ((_a = this.highlightedDatum) === null || _a === void 0 ? void 0 : _a.series) === series) {\n this.highlightedDatum = undefined;\n }\n if (!enabled) {\n this.highlightedDatum = {\n series: series,\n itemId: itemId,\n datum: undefined,\n };\n }\n legendItemClick({ enabled: !enabled, itemId: itemId, seriesId: series.id });\n return true;\n };\n Chart.prototype.handleLegendMouseMove = function (event) {\n if (!this.legend.enabled) {\n return;\n }\n var offsetX = event.offsetX, offsetY = event.offsetY;\n var datum = this.legend.getDatumForPoint(offsetX, offsetY);\n var pointerInsideLegend = this.legendBBox.containsPoint(offsetX, offsetY);\n var pointerOverLegendDatum = pointerInsideLegend && datum !== undefined;\n if (!pointerInsideLegend && this.pointerInsideLegend) {\n this.pointerInsideLegend = false;\n this.element.style.cursor = 'default';\n // Dehighlight if the pointer was inside the legend and is now leaving it.\n this.changeHighlightDatum();\n return;\n }\n if (pointerOverLegendDatum && !this.pointerOverLegendDatum) {\n this.element.style.cursor = 'pointer';\n if (datum && this.legend.truncatedItems.has(datum.itemId || datum.id)) {\n this.element.title = datum.label.text;\n }\n else {\n this.element.title = '';\n }\n }\n if (!pointerOverLegendDatum && this.pointerOverLegendDatum) {\n this.element.style.cursor = 'default';\n }\n this.pointerInsideLegend = pointerInsideLegend;\n this.pointerOverLegendDatum = pointerOverLegendDatum;\n var oldHighlightedDatum = this.highlightedDatum;\n if (datum) {\n var id_1 = datum.id, itemId = datum.itemId, enabled = datum.enabled;\n if (enabled) {\n var series = find(this.series, function (series) { return series.id === id_1; });\n if (series) {\n this.highlightedDatum = {\n series: series,\n itemId: itemId,\n datum: undefined,\n };\n }\n }\n else {\n this.highlightedDatum = undefined;\n }\n }\n // Careful to only schedule updates when necessary.\n if ((this.highlightedDatum && !oldHighlightedDatum) ||\n (!this.highlightedDatum && oldHighlightedDatum) ||\n (this.highlightedDatum &&\n oldHighlightedDatum &&\n (this.highlightedDatum.series !== oldHighlightedDatum.series ||\n this.highlightedDatum.itemId !== oldHighlightedDatum.itemId))) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n }\n };\n Chart.prototype.onSeriesDatumPick = function (meta, datum) {\n var lastPick = this.lastPick;\n if (lastPick) {\n if (lastPick.datum === datum) {\n return;\n }\n }\n this.changeHighlightDatum({\n datum: datum,\n event: meta.event,\n });\n if (datum) {\n meta = this.mergePointerDatum(meta, datum);\n }\n var tooltipEnabled = this.tooltip.enabled && datum.series.tooltip.enabled;\n var html = tooltipEnabled && datum.series.getTooltipHtml(datum);\n if (html) {\n this.tooltip.show(meta, html);\n }\n };\n Chart.prototype.mergePointerDatum = function (meta, datum) {\n if (datum.point) {\n var _a = datum.point, x = _a.x, y = _a.y;\n var canvas = this.scene.canvas;\n var point = datum.series.group.inverseTransformPoint(x, y);\n var canvasRect = canvas.element.getBoundingClientRect();\n return __assign$y(__assign$y({}, meta), { pageX: Math.round(canvasRect.left + window.scrollX + point.x), pageY: Math.round(canvasRect.top + window.scrollY + point.y), offsetX: Math.round(canvasRect.left + point.y), offsetY: Math.round(canvasRect.top + point.y) });\n }\n return meta;\n };\n Chart.prototype.changeHighlightDatum = function (newPick, opts) {\n var _a = (opts !== null && opts !== void 0 ? opts : {}).updateProcessing, updateProcessing = _a === void 0 ? true : _a;\n var seriesToUpdate = new Set();\n var _b = newPick || {}, _c = _b.datum, _d = (_c === void 0 ? {} : _c).series, newSeries = _d === void 0 ? undefined : _d, _e = _b.datum, datum = _e === void 0 ? undefined : _e;\n var _f = this.lastPick, _g = (_f === void 0 ? {} : _f).datum, _h = (_g === void 0 ? {} : _g).series, lastSeries = _h === void 0 ? undefined : _h;\n if (lastSeries) {\n seriesToUpdate.add(lastSeries);\n }\n if (newSeries) {\n seriesToUpdate.add(newSeries);\n this.element.style.cursor = newSeries.cursor;\n }\n this.lastPick = newPick;\n this.highlightedDatum = datum;\n if (!updateProcessing) {\n return;\n }\n var updateAll = newSeries == null || lastSeries == null;\n if (updateAll) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n }\n else {\n this.update(ChartUpdateType.SERIES_UPDATE, { seriesToUpdate: seriesToUpdate });\n }\n };\n Chart.prototype.waitForUpdate = function (timeoutMs) {\n if (timeoutMs === void 0) { timeoutMs = 5000; }\n return __awaiter$b(this, void 0, void 0, function () {\n var start;\n return __generator$b(this, function (_a) {\n switch (_a.label) {\n case 0:\n start = performance.now();\n _a.label = 1;\n case 1:\n if (!(this._pendingFactoryUpdates.length > 0 || this.updatePending)) return [3 /*break*/, 3];\n if (performance.now() - start > timeoutMs) {\n throw new Error('waitForUpdate() timeout reached.');\n }\n return [4 /*yield*/, sleep(5)];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [4 /*yield*/, this.awaitUpdateCompletion()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n __decorate$1m([\n Validate(BOOLEAN)\n ], Chart.prototype, \"_autoSize\", void 0);\n return Chart;\n}(Observable$1));\n\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$x = (undefined && undefined.__assign) || function () {\n __assign$x = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$x.apply(this, arguments);\n};\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$f = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Acts as `Group` node but with specified bounds that form a rectangle.\n * Any parts of the child nodes outside that rectangle will not be visible.\n * Unlike the `Group` node, the `ClipRect` node cannot be transformed.\n */\nvar ClipRect = /** @class */ (function (_super) {\n __extends$2h(ClipRect, _super);\n function ClipRect() {\n var _this = _super.call(this) || this;\n _this.path = new Path2D$1();\n _this.enabled = true;\n _this._dirtyPath = true;\n _this.x = 0;\n _this.y = 0;\n _this.width = 10;\n _this.height = 10;\n _this.isContainerNode = true;\n return _this;\n }\n ClipRect.prototype.containsPoint = function (x, y) {\n var point = this.transformPoint(x, y);\n return (point.x >= this.x && point.x <= this.x + this.width && point.y >= this.y && point.y <= this.y + this.height);\n };\n ClipRect.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, path = _a.path;\n path.clear();\n path.rect(x, y, width, height);\n this._dirtyPath = false;\n };\n ClipRect.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n ClipRect.prototype.render = function (renderCtx) {\n var e_1, _a;\n var _b = this, enabled = _b.enabled, dirty = _b.dirty, _dirtyPath = _b._dirtyPath, children = _b.children;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n if (_dirtyPath) {\n this.updatePath();\n }\n if (enabled) {\n ctx.save();\n this.path.draw(ctx);\n ctx.clip();\n }\n var clipBBox = enabled ? this.computeBBox() : undefined;\n var childRenderContext = __assign$x(__assign$x({}, renderCtx), { clipBBox: clipBBox });\n try {\n for (var children_1 = __values$f(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n if (child.visible && (forceRender || child.dirty > RedrawType.NONE)) {\n ctx.save();\n child.render(childRenderContext);\n ctx.restore();\n }\n else if (!child.visible) {\n child.markClean();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n _super.prototype.render.call(this, renderCtx);\n if (enabled) {\n ctx.restore();\n }\n };\n ClipRect.className = 'ClipRect';\n __decorate$1l([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], ClipRect.prototype, \"enabled\", void 0);\n __decorate$1l([\n ScenePathChangeDetection()\n ], ClipRect.prototype, \"x\", void 0);\n __decorate$1l([\n ScenePathChangeDetection()\n ], ClipRect.prototype, \"y\", void 0);\n __decorate$1l([\n ScenePathChangeDetection()\n ], ClipRect.prototype, \"width\", void 0);\n __decorate$1l([\n ScenePathChangeDetection()\n ], ClipRect.prototype, \"height\", void 0);\n return ClipRect;\n}(Node$1));\n\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RangeHandle$1 = /** @class */ (function (_super) {\n __extends$2g(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._fill = '#f2f2f2';\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._lineCap = 'square';\n _this._centerX = 0;\n _this._centerY = 0;\n // Use an even number for better looking results.\n _this._width = 8;\n // Use an even number for better looking results.\n _this._gripLineGap = 2;\n // Use an even number for better looking results.\n _this._gripLineLength = 8;\n _this._height = 16;\n return _this;\n }\n Object.defineProperty(RangeHandle.prototype, \"centerX\", {\n get: function () {\n return this._centerX;\n },\n set: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"centerY\", {\n get: function () {\n return this._centerY;\n },\n set: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this._gripLineGap;\n },\n set: function (value) {\n if (this._gripLineGap !== value) {\n this._gripLineGap = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this._gripLineLength;\n },\n set: function (value) {\n if (this._gripLineLength !== value) {\n this._gripLineLength = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n RangeHandle.prototype.computeBBox = function () {\n var _a = this, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n return new BBox$1(x, y, width, height);\n };\n RangeHandle.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n RangeHandle.prototype.updatePath = function () {\n var _a = this, path = _a.path, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n path.clear();\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n var ax = this.align(x);\n var ay = this.align(y);\n var axw = ax + this.align(x, width);\n var ayh = ay + this.align(y, height);\n // Handle.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n // Grip lines.\n var dx = this.gripLineGap / 2;\n var dy = this.gripLineLength / 2;\n path.moveTo(this.align(centerX - dx), this.align(centerY - dy));\n path.lineTo(this.align(centerX - dx), this.align(centerY + dy));\n path.moveTo(this.align(centerX + dx), this.align(centerY - dy));\n path.lineTo(this.align(centerX + dx), this.align(centerY + dy));\n };\n RangeHandle.className = 'RangeHandle';\n __decorate$1k([\n Validate(COLOR_STRING)\n ], RangeHandle.prototype, \"_fill\", void 0);\n __decorate$1k([\n Validate(COLOR_STRING)\n ], RangeHandle.prototype, \"_stroke\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_strokeWidth\", void 0);\n __decorate$1k([\n Validate(LINE_CAP)\n ], RangeHandle.prototype, \"_lineCap\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_width\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_gripLineGap\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_gripLineLength\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_height\", void 0);\n return RangeHandle;\n}(Path$1));\n\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RangeMask = /** @class */ (function (_super) {\n __extends$2f(RangeMask, _super);\n function RangeMask() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._fill = '#999999';\n _this._fillOpacity = 0.2;\n _this._lineCap = 'square';\n _this._x = 0;\n _this._y = 0;\n _this._width = 200;\n _this._height = 30;\n _this.minRange = 0.05;\n _this._min = 0;\n _this._max = 1;\n return _this;\n }\n Object.defineProperty(RangeMask.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"min\", {\n get: function () {\n return this._min;\n },\n set: function (value) {\n var _a, _b;\n value = Math.min(Math.max(value, 0), this.max - this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._min !== value) {\n this._min = value;\n this.dirtyPath = true;\n (_b = (_a = this).onRangeChange) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"max\", {\n get: function () {\n return this._max;\n },\n set: function (value) {\n var _a, _b;\n value = Math.max(Math.min(value, 1), this.min + this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._max !== value) {\n this._max = value;\n this.dirtyPath = true;\n (_b = (_a = this).onRangeChange) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n },\n enumerable: true,\n configurable: true\n });\n RangeMask.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n RangeMask.prototype.computeVisibleRangeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var minX = x + width * min;\n var maxX = x + width * max;\n return new BBox$1(minX, y, maxX - minX, height);\n };\n RangeMask.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n path.clear();\n var ax = this.align(x);\n var ay = this.align(y);\n var axw = ax + this.align(x, width);\n var ayh = ay + this.align(y, height);\n // Whole range.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n var minX = this.align(x + width * min);\n var maxX = this.align(x + width * max);\n // Visible range.\n path.moveTo(minX, ay);\n path.lineTo(minX, ayh);\n path.lineTo(maxX, ayh);\n path.lineTo(maxX, ay);\n path.lineTo(minX, ay);\n };\n RangeMask.className = 'RangeMask';\n __decorate$1j([\n Validate(COLOR_STRING)\n ], RangeMask.prototype, \"_stroke\", void 0);\n __decorate$1j([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_strokeWidth\", void 0);\n __decorate$1j([\n Validate(COLOR_STRING)\n ], RangeMask.prototype, \"_fill\", void 0);\n __decorate$1j([\n Validate(NUMBER(0, 1))\n ], RangeMask.prototype, \"_fillOpacity\", void 0);\n __decorate$1j([\n Validate(LINE_CAP)\n ], RangeMask.prototype, \"_lineCap\", void 0);\n __decorate$1j([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_width\", void 0);\n __decorate$1j([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_height\", void 0);\n __decorate$1j([\n Validate(NUMBER())\n ], RangeMask.prototype, \"_min\", void 0);\n __decorate$1j([\n Validate(NUMBER())\n ], RangeMask.prototype, \"_max\", void 0);\n return RangeMask;\n}(Path$1));\n\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$w = (undefined && undefined.__assign) || function () {\n __assign$w = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$w.apply(this, arguments);\n};\nvar RangeSelector = /** @class */ (function (_super) {\n __extends$2e(RangeSelector, _super);\n function RangeSelector() {\n var _this = _super.call(this) || this;\n _this.minHandle = new RangeHandle$1();\n _this.maxHandle = new RangeHandle$1();\n _this.mask = (function () {\n var _a = RangeSelector.defaults, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var mask = new RangeMask();\n mask.x = x;\n mask.y = y;\n mask.width = width;\n mask.height = height;\n mask.min = min;\n mask.max = max;\n var _b = _this, minHandle = _b.minHandle, maxHandle = _b.maxHandle;\n minHandle.centerX = x;\n maxHandle.centerX = x + width;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n _this.append([mask, minHandle, maxHandle]);\n mask.onRangeChange = function () {\n var _a, _b;\n _this.updateHandles();\n (_b = (_a = _this).onRangeChange) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n return mask;\n })();\n _this._x = RangeSelector.defaults.x;\n _this._y = RangeSelector.defaults.y;\n _this._width = RangeSelector.defaults.width;\n _this._height = RangeSelector.defaults.height;\n _this._min = RangeSelector.defaults.min;\n _this._max = RangeSelector.defaults.max;\n _this.isContainerNode = true;\n return _this;\n }\n Object.defineProperty(RangeSelector.prototype, \"x\", {\n get: function () {\n return this.mask.x;\n },\n set: function (value) {\n this.mask.x = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"y\", {\n get: function () {\n return this.mask.y;\n },\n set: function (value) {\n this.mask.y = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"width\", {\n get: function () {\n return this.mask.width;\n },\n set: function (value) {\n this.mask.width = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"height\", {\n get: function () {\n return this.mask.height;\n },\n set: function (value) {\n this.mask.height = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"min\", {\n get: function () {\n return this.mask.min;\n },\n set: function (value) {\n this.mask.min = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"max\", {\n get: function () {\n return this.mask.max;\n },\n set: function (value) {\n this.mask.max = value;\n },\n enumerable: true,\n configurable: true\n });\n RangeSelector.prototype.updateHandles = function () {\n var _a = this, minHandle = _a.minHandle, maxHandle = _a.maxHandle, x = _a.x, y = _a.y, width = _a.width, height = _a.height, mask = _a.mask;\n minHandle.centerX = x + width * mask.min;\n maxHandle.centerX = x + width * mask.max;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n };\n RangeSelector.prototype.computeBBox = function () {\n return this.mask.computeBBox();\n };\n RangeSelector.prototype.computeVisibleRangeBBox = function () {\n return this.mask.computeVisibleRangeBBox();\n };\n RangeSelector.prototype.render = function (renderCtx) {\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped++;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _a = this, mask = _a.mask, minHandle = _a.minHandle, maxHandle = _a.maxHandle;\n [mask, minHandle, maxHandle].forEach(function (child) {\n if (child.visible && (forceRender || child.dirty > RedrawType.NONE)) {\n ctx.save();\n child.render(__assign$w(__assign$w({}, renderCtx), { ctx: ctx, forceRender: forceRender }));\n ctx.restore();\n }\n });\n this.markClean({ force: true });\n if (stats)\n stats.nodesRendered++;\n };\n RangeSelector.className = 'Range';\n RangeSelector.defaults = {\n x: 0,\n y: 0,\n width: 200,\n height: 30,\n min: 0,\n max: 1,\n };\n return RangeSelector;\n}(Group$1));\n\nvar NavigatorMask = /** @class */ (function () {\n function NavigatorMask(rangeMask) {\n this.rm = rangeMask;\n }\n Object.defineProperty(NavigatorMask.prototype, \"fill\", {\n get: function () {\n return this.rm.fill;\n },\n set: function (value) {\n this.rm.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"stroke\", {\n get: function () {\n return this.rm.stroke;\n },\n set: function (value) {\n this.rm.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"strokeWidth\", {\n get: function () {\n return this.rm.strokeWidth;\n },\n set: function (value) {\n this.rm.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"fillOpacity\", {\n get: function () {\n return this.rm.fillOpacity;\n },\n set: function (value) {\n this.rm.fillOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n return NavigatorMask;\n}());\n\nvar NavigatorHandle = /** @class */ (function () {\n function NavigatorHandle(rangeHandle) {\n this.rh = rangeHandle;\n }\n Object.defineProperty(NavigatorHandle.prototype, \"fill\", {\n get: function () {\n return this.rh.fill;\n },\n set: function (value) {\n this.rh.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"stroke\", {\n get: function () {\n return this.rh.stroke;\n },\n set: function (value) {\n this.rh.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"strokeWidth\", {\n get: function () {\n return this.rh.strokeWidth;\n },\n set: function (value) {\n this.rh.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"width\", {\n get: function () {\n return this.rh.width;\n },\n set: function (value) {\n this.rh.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"height\", {\n get: function () {\n return this.rh.height;\n },\n set: function (value) {\n this.rh.height = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this.rh.gripLineGap;\n },\n set: function (value) {\n this.rh.gripLineGap = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this.rh.gripLineLength;\n },\n set: function (value) {\n this.rh.gripLineLength = value;\n },\n enumerable: true,\n configurable: true\n });\n return NavigatorHandle;\n}());\n\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Navigator = /** @class */ (function () {\n function Navigator(chart) {\n this.rs = new RangeSelector();\n this.mask = new NavigatorMask(this.rs.mask);\n this.minHandle = new NavigatorHandle(this.rs.minHandle);\n this.maxHandle = new NavigatorHandle(this.rs.maxHandle);\n this.minHandleDragging = false;\n this.maxHandleDragging = false;\n this.panHandleOffset = NaN;\n this.changedCursor = false;\n this._margin = 10;\n this.chart = chart;\n chart.scene.root.append(this.rs);\n this.rs.onRangeChange = function () { return chart.update(ChartUpdateType.PERFORM_LAYOUT, { forceNodeDataRefresh: true }); };\n }\n Object.defineProperty(Navigator.prototype, \"enabled\", {\n get: function () {\n return this.rs.visible;\n },\n set: function (value) {\n this.rs.visible = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"x\", {\n get: function () {\n return this.rs.x;\n },\n set: function (value) {\n this.rs.x = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"y\", {\n get: function () {\n return this.rs.y;\n },\n set: function (value) {\n this.rs.y = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"width\", {\n get: function () {\n return this.rs.width;\n },\n set: function (value) {\n this.rs.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"height\", {\n get: function () {\n return this.rs.height;\n },\n set: function (value) {\n this.rs.height = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"margin\", {\n get: function () {\n return this._margin;\n },\n set: function (value) {\n this._margin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"min\", {\n get: function () {\n return this.rs.min;\n },\n set: function (value) {\n this.rs.min = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"max\", {\n get: function () {\n return this.rs.max;\n },\n set: function (value) {\n this.rs.max = value;\n },\n enumerable: true,\n configurable: true\n });\n Navigator.prototype.onDragStart = function (offset) {\n if (!this.enabled) {\n return;\n }\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var rs = this.rs;\n var minHandle = rs.minHandle, maxHandle = rs.maxHandle, x = rs.x, width = rs.width, min = rs.min;\n var visibleRange = rs.computeVisibleRangeBBox();\n if (!(this.minHandleDragging || this.maxHandleDragging)) {\n if (minHandle.containsPoint(offsetX, offsetY)) {\n this.minHandleDragging = true;\n }\n else if (maxHandle.containsPoint(offsetX, offsetY)) {\n this.maxHandleDragging = true;\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.panHandleOffset = (offsetX - x) / width - min;\n }\n }\n };\n Navigator.prototype.onDrag = function (offset) {\n if (!this.enabled) {\n return;\n }\n var _a = this, rs = _a.rs, panHandleOffset = _a.panHandleOffset;\n var x = rs.x, y = rs.y, width = rs.width, height = rs.height, minHandle = rs.minHandle, maxHandle = rs.maxHandle;\n var style = this.chart.element.style;\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var minX = x + width * rs.min;\n var maxX = x + width * rs.max;\n var visibleRange = new BBox$1(minX, y, maxX - minX, height);\n function getRatio() {\n return Math.min(Math.max((offsetX - x) / width, 0), 1);\n }\n if (minHandle.containsPoint(offsetX, offsetY) || maxHandle.containsPoint(offsetX, offsetY)) {\n this.changedCursor = true;\n style.cursor = 'ew-resize';\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.changedCursor = true;\n style.cursor = 'grab';\n }\n else if (this.changedCursor) {\n this.changedCursor = false;\n style.cursor = 'default';\n }\n if (this.minHandleDragging) {\n rs.min = getRatio();\n }\n else if (this.maxHandleDragging) {\n rs.max = getRatio();\n }\n else if (!isNaN(panHandleOffset)) {\n var span = rs.max - rs.min;\n var min = Math.min(getRatio() - panHandleOffset, 1 - span);\n if (min <= rs.min) {\n // pan left\n rs.min = min;\n rs.max = rs.min + span;\n }\n else {\n // pan right\n rs.max = min + span;\n rs.min = rs.max - span;\n }\n }\n };\n Navigator.prototype.onDragStop = function () {\n this.stopHandleDragging();\n };\n Navigator.prototype.stopHandleDragging = function () {\n this.minHandleDragging = this.maxHandleDragging = false;\n this.panHandleOffset = NaN;\n };\n __decorate$1i([\n Validate(NUMBER(0))\n ], Navigator.prototype, \"_margin\", void 0);\n return Navigator;\n}());\n\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$v = (undefined && undefined.__assign) || function () {\n __assign$v = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$v.apply(this, arguments);\n};\nvar __awaiter$a = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$a = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$e = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$u = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar CartesianChart = /** @class */ (function (_super) {\n __extends$2d(CartesianChart, _super);\n function CartesianChart(document, overrideDevicePixelRatio) {\n var _a;\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio) || this;\n _this.seriesRoot = new ClipRect();\n _this.navigator = new Navigator(_this);\n _this._lastAxisWidths = (_a = {},\n _a[ChartAxisPosition.Top] = 0,\n _a[ChartAxisPosition.Bottom] = 0,\n _a[ChartAxisPosition.Left] = 0,\n _a[ChartAxisPosition.Right] = 0,\n _a);\n // Prevent the scene from rendering chart components in an invalid state\n // (before first layout is performed).\n _this.scene.root.visible = false;\n var root = _this.scene.root;\n root.append(_this.seriesRoot);\n root.append(_this.legend.group);\n _this.navigator.enabled = false;\n return _this;\n }\n CartesianChart.prototype.performLayout = function () {\n return __awaiter$a(this, void 0, void 0, function () {\n var _a, width, height, legend, navigator, shrinkRect, _b, captionAutoPadding, legendAutoPadding, legendPadding, padding, navigatorTotalHeight, seriesRect, seriesRoot;\n return __generator$a(this, function (_c) {\n this.scene.root.visible = true;\n _a = this, width = _a.width, height = _a.height, legend = _a.legend, navigator = _a.navigator;\n shrinkRect = new BBox$1(0, 0, width, height);\n _b = this.positionCaptions().captionAutoPadding, captionAutoPadding = _b === void 0 ? 0 : _b;\n this.positionLegend(captionAutoPadding);\n if (legend.enabled && legend.data.length) {\n legendAutoPadding = this.legendAutoPadding;\n legendPadding = this.legend.spacing;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n padding = this.padding;\n shrinkRect.x += padding.left;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.y += padding.top + captionAutoPadding;\n shrinkRect.height -= padding.top + captionAutoPadding + padding.bottom;\n if (navigator.enabled) {\n navigatorTotalHeight = navigator.height + navigator.margin;\n shrinkRect.height -= navigatorTotalHeight;\n navigator.x = shrinkRect.x;\n navigator.y = shrinkRect.y + shrinkRect.height + navigator.margin;\n navigator.width = shrinkRect.width;\n }\n seriesRect = this.updateAxes(shrinkRect).seriesRect;\n this.seriesRect = seriesRect;\n this.series.forEach(function (series) {\n series.group.translationX = Math.floor(seriesRect.x);\n series.group.translationY = Math.floor(seriesRect.y);\n });\n seriesRoot = this.seriesRoot;\n seriesRoot.x = seriesRect.x;\n seriesRoot.y = seriesRect.y;\n seriesRoot.width = seriesRect.width;\n seriesRoot.height = seriesRect.height;\n return [2 /*return*/];\n });\n });\n };\n CartesianChart.prototype.setupDomListeners = function (chartElement) {\n _super.prototype.setupDomListeners.call(this, chartElement);\n this._onTouchStart = this.onTouchStart.bind(this);\n this._onTouchMove = this.onTouchMove.bind(this);\n this._onTouchEnd = this.onTouchEnd.bind(this);\n this._onTouchCancel = this.onTouchCancel.bind(this);\n chartElement.addEventListener('touchstart', this._onTouchStart, { passive: true });\n chartElement.addEventListener('touchmove', this._onTouchMove, { passive: true });\n chartElement.addEventListener('touchend', this._onTouchEnd, { passive: true });\n chartElement.addEventListener('touchcancel', this._onTouchCancel, { passive: true });\n };\n CartesianChart.prototype.cleanupDomListeners = function (chartElement) {\n _super.prototype.cleanupDomListeners.call(this, chartElement);\n chartElement.removeEventListener('touchstart', this._onTouchStart);\n chartElement.removeEventListener('touchmove', this._onTouchMove);\n chartElement.removeEventListener('touchend', this._onTouchEnd);\n chartElement.removeEventListener('touchcancel', this._onTouchCancel);\n };\n CartesianChart.prototype.getTouchOffset = function (event) {\n var rect = this.scene.canvas.element.getBoundingClientRect();\n var touch = event.touches[0];\n return touch\n ? {\n offsetX: touch.clientX - rect.left,\n offsetY: touch.clientY - rect.top,\n }\n : undefined;\n };\n CartesianChart.prototype.onTouchStart = function (event) {\n var offset = this.getTouchOffset(event);\n if (offset) {\n this.navigator.onDragStart(offset);\n }\n };\n CartesianChart.prototype.onTouchMove = function (event) {\n var offset = this.getTouchOffset(event);\n if (offset) {\n this.navigator.onDrag(offset);\n }\n };\n CartesianChart.prototype.onTouchEnd = function (_event) {\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onTouchCancel = function (_event) {\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onMouseDown = function (event) {\n _super.prototype.onMouseDown.call(this, event);\n this.navigator.onDragStart(event);\n };\n CartesianChart.prototype.onMouseMove = function (event) {\n _super.prototype.onMouseMove.call(this, event);\n this.navigator.onDrag(event);\n };\n CartesianChart.prototype.onMouseUp = function (event) {\n _super.prototype.onMouseUp.call(this, event);\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onMouseOut = function (event) {\n _super.prototype.onMouseOut.call(this, event);\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.updateAxes = function (inputShrinkRect) {\n var e_1, _a;\n var _b;\n // Start with a good approximation from the last update - this should mean that in many resize\n // cases that only a single pass is needed \\o/.\n var axisWidths = __assign$v({}, this._lastAxisWidths);\n // Clean any positions which aren't valid with the current axis status (otherwise we end up\n // never being able to find a stable result).\n var liveAxisWidths = this._axes\n .map(function (a) { return a.position; })\n .reduce(function (r, n) { return r.add(n); }, new Set());\n try {\n for (var _c = __values$e(Object.keys(axisWidths)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var position = _d.value;\n if (!liveAxisWidths.has(position)) {\n delete axisWidths[position];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var stableWidths = function (other) {\n return Object.entries(axisWidths).every(function (_a) {\n var _b = __read$u(_a, 2), p = _b[0], w = _b[1];\n var otherW = other[p];\n if (w != null || otherW != null) {\n return w === otherW;\n }\n return true;\n });\n };\n var ceilValues = function (records) {\n return Object.entries(records).reduce(function (out, _a) {\n var _b = __read$u(_a, 2), key = _b[0], value = _b[1];\n if (value && Math.abs(value) === Infinity) {\n value = 0;\n }\n out[key] = value != null ? Math.ceil(value) : value;\n return out;\n }, {});\n };\n // Iteratively try to resolve axis widths - since X axis width affects Y axis range,\n // and vice-versa, we need to iteratively try and find a fit for the axes and their\n // ticks/labels.\n var lastPass = {};\n var clipSeries = false;\n var seriesRect = (_b = this.seriesRect) === null || _b === void 0 ? void 0 : _b.clone();\n var count = 0;\n do {\n Object.assign(axisWidths, lastPass);\n var result = this.updateAxesPass(axisWidths, inputShrinkRect.clone(), seriesRect);\n lastPass = ceilValues(result.axisWidths);\n clipSeries = result.clipSeries;\n seriesRect = result.seriesRect;\n if (count++ > 10) {\n console.warn('AG Charts - unable to find stable axis layout.');\n break;\n }\n } while (!stableWidths(lastPass));\n this.seriesRoot.enabled = clipSeries;\n this._lastAxisWidths = axisWidths;\n return { seriesRect: seriesRect };\n };\n CartesianChart.prototype.updateAxesPass = function (axisWidths, bounds, lastPassSeriesRect) {\n var _this = this;\n var axes = this.axes;\n var visited = {};\n var newAxisWidths = {};\n var clipSeries = false;\n var primaryTickCounts = {};\n var crossLinePadding = lastPassSeriesRect ? this.buildCrossLinePadding(lastPassSeriesRect, axisWidths) : {};\n var axisBound = this.buildAxisBound(bounds, crossLinePadding);\n var seriesRect = this.buildSeriesRect(axisBound, axisWidths);\n // Set the number of ticks for continuous axes based on the available range\n // before updating the axis domain via `this.updateAxes()` as the tick count has an effect on the calculated `nice` domain extent\n axes.forEach(function (axis) {\n var _a, _b;\n var position = axis.position;\n var _c = _this.calculateAxisDimensions({\n axis: axis,\n seriesRect: seriesRect,\n axisWidths: axisWidths,\n newAxisWidths: newAxisWidths,\n primaryTickCounts: primaryTickCounts,\n clipSeries: clipSeries,\n addInterAxisPadding: (_a = visited[position], (_a !== null && _a !== void 0 ? _a : 0)) > 0,\n }), newClipSeries = _c.clipSeries, axisThickness = _c.axisThickness, axisOffset = _c.axisOffset;\n visited[position] = (_b = visited[position], (_b !== null && _b !== void 0 ? _b : 0)) + 1;\n clipSeries = clipSeries || newClipSeries;\n _this.positionAxis({\n axis: axis,\n axisBound: axisBound,\n axisOffset: axisOffset,\n axisThickness: axisThickness,\n axisWidths: axisWidths,\n primaryTickCounts: primaryTickCounts,\n seriesRect: seriesRect,\n });\n });\n return { clipSeries: clipSeries, seriesRect: seriesRect, axisWidths: newAxisWidths };\n };\n CartesianChart.prototype.buildCrossLinePadding = function (lastPassSeriesRect, axisWidths) {\n var e_2, _a;\n var _b;\n var crossLinePadding = {};\n this.axes.forEach(function (axis) {\n if (axis.crossLines) {\n axis.crossLines.forEach(function (crossLine) {\n crossLine.calculatePadding(crossLinePadding, lastPassSeriesRect);\n });\n }\n });\n try {\n // Reduce cross-line padding to account for overlap with axes.\n for (var _c = __values$e(Object.entries(crossLinePadding)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read$u(_d.value, 2), side = _e[0], _f = _e[1], padding = _f === void 0 ? 0 : _f;\n crossLinePadding[side] = Math.max(padding - (_b = axisWidths[side], (_b !== null && _b !== void 0 ? _b : 0)), 0);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return crossLinePadding;\n };\n CartesianChart.prototype.buildAxisBound = function (bounds, crossLinePadding) {\n var result = bounds.clone();\n var _a = crossLinePadding.top, top = _a === void 0 ? 0 : _a, _b = crossLinePadding.right, right = _b === void 0 ? 0 : _b, _c = crossLinePadding.bottom, bottom = _c === void 0 ? 0 : _c, _d = crossLinePadding.left, left = _d === void 0 ? 0 : _d;\n result.x += left;\n result.y += top;\n result.width -= left + right;\n result.height -= top + bottom;\n return result;\n };\n CartesianChart.prototype.buildSeriesRect = function (axisBound, axisWidths) {\n var result = axisBound.clone();\n var top = axisWidths.top, bottom = axisWidths.bottom, left = axisWidths.left, right = axisWidths.right;\n result.x += (left !== null && left !== void 0 ? left : 0);\n result.y += (top !== null && top !== void 0 ? top : 0);\n result.width -= ((left !== null && left !== void 0 ? left : 0)) + ((right !== null && right !== void 0 ? right : 0));\n result.height -= ((top !== null && top !== void 0 ? top : 0)) + ((bottom !== null && bottom !== void 0 ? bottom : 0));\n // Width and height should not be negative.\n result.width = Math.max(0, result.width);\n result.height = Math.max(0, result.height);\n return result;\n };\n CartesianChart.prototype.clampToOutsideSeriesRect = function (seriesRect, value, dimension, direction) {\n var x = seriesRect.x, y = seriesRect.y, width = seriesRect.width, height = seriesRect.height;\n var clampBounds = [x, y, x + width, y + height];\n var fn = direction === 1 ? Math.min : Math.max;\n var compareTo = clampBounds[(dimension === 'x' ? 0 : 1) + (direction === 1 ? 0 : 2)];\n return fn(value, compareTo);\n };\n CartesianChart.prototype.calculateAxisDimensions = function (opts) {\n var _a, _b, _c, _d, _e;\n var axis = opts.axis, seriesRect = opts.seriesRect, axisWidths = opts.axisWidths, newAxisWidths = opts.newAxisWidths, primaryTickCounts = opts.primaryTickCounts, addInterAxisPadding = opts.addInterAxisPadding;\n var clipSeries = opts.clipSeries;\n var navigator = this.navigator;\n var position = axis.position, direction = axis.direction;\n var axisLeftRightRange = function (axis) {\n if (axis instanceof CategoryAxis || axis instanceof GroupedCategoryAxis) {\n return [0, seriesRect.height];\n }\n return [seriesRect.height, 0];\n };\n axis.label.mirrored = ['top', 'right'].includes(position);\n var axisOffset = (_a = newAxisWidths[position], (_a !== null && _a !== void 0 ? _a : 0));\n switch (position) {\n case ChartAxisPosition.Top:\n case ChartAxisPosition.Bottom:\n axis.range = [0, seriesRect.width];\n axis.gridLength = seriesRect.height;\n break;\n case ChartAxisPosition.Right:\n case ChartAxisPosition.Left:\n axis.range = axisLeftRightRange(axis);\n axis.gridLength = seriesRect.width;\n break;\n }\n if (axis.direction === ChartAxisDirection.X) {\n var min = navigator.min, max = navigator.max, enabled = navigator.enabled;\n if (enabled) {\n axis.visibleRange = [min, max];\n }\n else {\n axis.visibleRange = [0, 1];\n }\n }\n if (!clipSeries && (axis.visibleRange[0] > 0 || axis.visibleRange[1] < 1)) {\n clipSeries = true;\n }\n var primaryTickCount = axis.nice ? primaryTickCounts[direction] : undefined;\n primaryTickCount = axis.update(primaryTickCount);\n primaryTickCounts[direction] = (_b = primaryTickCounts[direction], (_b !== null && _b !== void 0 ? _b : primaryTickCount));\n var axisThickness = 0;\n if (axis.thickness) {\n axisThickness = axis.thickness;\n }\n else {\n var bbox = axis.computeBBox();\n axisThickness = direction === ChartAxisDirection.X ? bbox.height : bbox.width;\n }\n // for multiple axes in the same direction and position, apply padding at the top of each inner axis (i.e. between axes).\n var axisPadding = 15;\n if (addInterAxisPadding) {\n axisThickness += axisPadding;\n }\n axisThickness = Math.ceil(axisThickness);\n newAxisWidths[position] = (_c = newAxisWidths[position], (_c !== null && _c !== void 0 ? _c : 0)) + axisThickness;\n axis.gridPadding = (_d = axisWidths[position], (_d !== null && _d !== void 0 ? _d : 0)) - (_e = newAxisWidths[position], (_e !== null && _e !== void 0 ? _e : 0));\n return { clipSeries: clipSeries, axisThickness: axisThickness, axisOffset: axisOffset };\n };\n CartesianChart.prototype.positionAxis = function (opts) {\n var _a, _b, _c, _d;\n var axis = opts.axis, axisBound = opts.axisBound, axisWidths = opts.axisWidths, seriesRect = opts.seriesRect, axisOffset = opts.axisOffset, axisThickness = opts.axisThickness;\n var position = axis.position;\n switch (position) {\n case ChartAxisPosition.Top:\n axis.translation.x = axisBound.x + (_a = axisWidths.left, (_a !== null && _a !== void 0 ? _a : 0));\n axis.translation.y = this.clampToOutsideSeriesRect(seriesRect, axisBound.y + 1 + axisOffset + axisThickness, 'y', 1);\n break;\n case ChartAxisPosition.Bottom:\n axis.translation.x = axisBound.x + (_b = axisWidths.left, (_b !== null && _b !== void 0 ? _b : 0));\n axis.translation.y = this.clampToOutsideSeriesRect(seriesRect, axisBound.y + axisBound.height + 1 - axisThickness - axisOffset, 'y', -1);\n break;\n case ChartAxisPosition.Left:\n axis.translation.y = axisBound.y + (_c = axisWidths.top, (_c !== null && _c !== void 0 ? _c : 0));\n axis.translation.x = this.clampToOutsideSeriesRect(seriesRect, axisBound.x + axisOffset + axisThickness, 'x', 1);\n break;\n case ChartAxisPosition.Right:\n axis.translation.y = axisBound.y + (_d = axisWidths.top, (_d !== null && _d !== void 0 ? _d : 0));\n axis.translation.x = this.clampToOutsideSeriesRect(seriesRect, axisBound.x + axisBound.width - axisThickness - axisOffset, 'x', -1);\n break;\n }\n axis.updatePosition();\n };\n CartesianChart.className = 'CartesianChart';\n CartesianChart.type = 'cartesian';\n return CartesianChart;\n}(Chart));\n\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter$9 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$9 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar HierarchyChart = /** @class */ (function (_super) {\n __extends$2c(HierarchyChart, _super);\n function HierarchyChart(document, overrideDevicePixelRatio) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio) || this;\n _this._data = {};\n _this._seriesRoot = new ClipRect();\n // Prevent the scene from rendering chart components in an invalid state\n // (before first layout is performed).\n _this.scene.root.visible = false;\n var root = _this.scene.root;\n root.append(_this.seriesRoot);\n root.append(_this.legend.group);\n return _this;\n }\n Object.defineProperty(HierarchyChart.prototype, \"seriesRoot\", {\n get: function () {\n return this._seriesRoot;\n },\n enumerable: true,\n configurable: true\n });\n HierarchyChart.prototype.performLayout = function () {\n return __awaiter$9(this, void 0, void 0, function () {\n var _a, width, height, legend, shrinkRect, _b, captionAutoPadding, legendAutoPadding, legendPadding, padding, seriesRoot;\n return __generator$9(this, function (_c) {\n this.scene.root.visible = true;\n _a = this, width = _a.width, height = _a.height, legend = _a.legend;\n shrinkRect = new BBox$1(0, 0, width, height);\n _b = this.positionCaptions().captionAutoPadding, captionAutoPadding = _b === void 0 ? 0 : _b;\n this.positionLegend(captionAutoPadding);\n if (legend.enabled && legend.data.length) {\n legendAutoPadding = this.legendAutoPadding;\n legendPadding = this.legend.spacing;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n padding = this.padding;\n shrinkRect.x += padding.left;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.y += padding.top + captionAutoPadding;\n shrinkRect.height -= padding.top + captionAutoPadding + padding.bottom;\n this.seriesRect = shrinkRect;\n this.series.forEach(function (series) {\n series.group.translationX = Math.floor(shrinkRect.x);\n series.group.translationY = Math.floor(shrinkRect.y);\n series.update({ seriesRect: shrinkRect }); // this has to happen after the `updateAxes` call\n });\n seriesRoot = this.seriesRoot;\n seriesRoot.x = shrinkRect.x;\n seriesRoot.y = shrinkRect.y;\n seriesRoot.width = shrinkRect.width;\n seriesRoot.height = shrinkRect.height;\n return [2 /*return*/];\n });\n });\n };\n HierarchyChart.className = 'HierarchyChart';\n HierarchyChart.type = 'hierarchy';\n return HierarchyChart;\n}(Chart));\n\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar GroupedCategoryChart = /** @class */ (function (_super) {\n __extends$2b(GroupedCategoryChart, _super);\n function GroupedCategoryChart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupedCategoryChart.className = 'GroupedCategoryChart';\n GroupedCategoryChart.type = 'groupedCategory';\n return GroupedCategoryChart;\n}(CartesianChart));\n\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarSeries = /** @class */ (function (_super) {\n __extends$2a(PolarSeries, _super);\n function PolarSeries(_a) {\n var _b;\n var _c = _a.useLabelLayer, useLabelLayer = _c === void 0 ? false : _c;\n var _this = _super.call(this, { useLabelLayer: useLabelLayer, pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH] }) || this;\n _this.directionKeys = (_b = {},\n _b[ChartAxisDirection.X] = ['angleKey'],\n _b[ChartAxisDirection.Y] = ['radiusKey'],\n _b);\n /**\n * The center of the polar series (for example, the center of a pie).\n * If the polar chart has multiple series, all of them will have their\n * center set to the same value as a result of the polar chart layout.\n * The center coordinates are not supposed to be set by the user.\n */\n _this.centerX = 0;\n _this.centerY = 0;\n /**\n * The maximum radius the series can use.\n * This value is set automatically as a result of the polar chart layout\n * and is not supposed to be set by the user.\n */\n _this.radius = 0;\n return _this;\n }\n PolarSeries.prototype.getLabelData = function () {\n return [];\n };\n return PolarSeries;\n}(Series));\n\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter$8 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$8 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar PolarChart = /** @class */ (function (_super) {\n __extends$29(PolarChart, _super);\n function PolarChart(document, overrideDevicePixelRatio) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio) || this;\n _this.padding = new Padding$1(40);\n _this.scene.root.append(_this.legend.group);\n return _this;\n }\n Object.defineProperty(PolarChart.prototype, \"seriesRoot\", {\n get: function () {\n return this.scene.root;\n },\n enumerable: true,\n configurable: true\n });\n PolarChart.prototype.performLayout = function () {\n return __awaiter$8(this, void 0, void 0, function () {\n var shrinkRect, _a, captionAutoPadding, legendAutoPadding, legendPadding, padding, centerX, centerY, radius;\n return __generator$8(this, function (_b) {\n shrinkRect = new BBox$1(0, 0, this.width, this.height);\n _a = this.positionCaptions().captionAutoPadding, captionAutoPadding = _a === void 0 ? 0 : _a;\n this.positionLegend(captionAutoPadding);\n shrinkRect.y += captionAutoPadding;\n shrinkRect.height -= captionAutoPadding;\n if (this.legend.enabled && this.legend.data.length) {\n legendAutoPadding = this.legendAutoPadding;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n legendPadding = this.legend.spacing;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n padding = this.padding;\n shrinkRect.x += padding.left;\n shrinkRect.y += padding.top;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.height -= padding.top + padding.bottom;\n this.seriesRect = shrinkRect;\n centerX = shrinkRect.x + shrinkRect.width / 2;\n centerY = shrinkRect.y + shrinkRect.height / 2;\n radius = Math.max(0, Math.min(shrinkRect.width, shrinkRect.height) / 2);\n this.series.forEach(function (series) {\n if (series instanceof PolarSeries) {\n series.centerX = centerX;\n series.centerY = centerY;\n series.radius = radius;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n PolarChart.className = 'PolarChart';\n PolarChart.type = 'polar';\n return PolarChart;\n}(Chart));\n\nfunction equal(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor)\n return false;\n var length_1, i = void 0;\n if (Array.isArray(a)) {\n length_1 = a.length;\n if (length_1 != b.length)\n return false;\n for (i = length_1; i-- !== 0;)\n if (!equal(a[i], b[i]))\n return false;\n return true;\n }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n var keys = Object.keys(a);\n length_1 = keys.length;\n if (length_1 !== Object.keys(b).length)\n return false;\n for (i = length_1; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length_1; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key]))\n return false;\n }\n return true;\n }\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}\n\nvar __read$t = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar interpolatePattern = /(#\\{(.*?)\\})/g;\nfunction interpolate(input, values, formats) {\n return input.replace(interpolatePattern, function () {\n var name = arguments[2];\n var _a = __read$t(name.split(':'), 2), valueName = _a[0], formatName = _a[1];\n var value = values[valueName];\n if (typeof value === 'number') {\n var format = formatName && formats && formats[formatName];\n if (format) {\n var _b = format, locales = _b.locales, options = _b.options;\n return value.toLocaleString(locales, options);\n }\n return String(value);\n }\n if (value instanceof Date) {\n var format = formatName && formats && formats[formatName];\n if (typeof format === 'string') {\n var formatter = locale$1.format(format);\n return formatter(value);\n }\n return value.toDateString();\n }\n if (typeof value === 'string' || (value && value.toString)) {\n return String(value);\n }\n return '';\n });\n}\n\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Label$1 = /** @class */ (function () {\n function Label() {\n this.enabled = true;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.color = 'rgba(70, 70, 70, 1)';\n }\n Label.prototype.getFont = function () {\n return getFont$2(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n };\n __decorate$1h([\n Validate(BOOLEAN)\n ], Label.prototype, \"enabled\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], Label.prototype, \"fontSize\", void 0);\n __decorate$1h([\n Validate(STRING)\n ], Label.prototype, \"fontFamily\", void 0);\n __decorate$1h([\n Validate(OPT_FONT_STYLE)\n ], Label.prototype, \"fontStyle\", void 0);\n __decorate$1h([\n Validate(OPT_FONT_WEIGHT)\n ], Label.prototype, \"fontWeight\", void 0);\n __decorate$1h([\n Validate(COLOR_STRING)\n ], Label.prototype, \"color\", void 0);\n return Label;\n}());\n\nvar element = null;\nfunction sanitizeHtml(text) {\n element = element || document.createElement('div');\n if (!text) {\n return '';\n }\n element.textContent = text;\n return element.innerHTML;\n}\n\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$7 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$7 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$d = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$s = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$d = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$s(arguments[i]));\n return ar;\n};\nvar AreaSeriesLabel = /** @class */ (function (_super) {\n __extends$28(AreaSeriesLabel, _super);\n function AreaSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1g([\n Validate(OPT_FUNCTION)\n ], AreaSeriesLabel.prototype, \"formatter\", void 0);\n return AreaSeriesLabel;\n}(Label$1));\nvar AreaSeriesTooltip = /** @class */ (function (_super) {\n __extends$28(AreaSeriesTooltip, _super);\n function AreaSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n _this.format = undefined;\n return _this;\n }\n __decorate$1g([\n Validate(OPT_FUNCTION)\n ], AreaSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$1g([\n Validate(OPT_STRING)\n ], AreaSeriesTooltip.prototype, \"format\", void 0);\n return AreaSeriesTooltip;\n}(SeriesTooltip));\nvar AreaSeriesTag;\n(function (AreaSeriesTag) {\n AreaSeriesTag[AreaSeriesTag[\"Fill\"] = 0] = \"Fill\";\n AreaSeriesTag[AreaSeriesTag[\"Stroke\"] = 1] = \"Stroke\";\n AreaSeriesTag[AreaSeriesTag[\"Marker\"] = 2] = \"Marker\";\n AreaSeriesTag[AreaSeriesTag[\"Label\"] = 3] = \"Label\";\n})(AreaSeriesTag || (AreaSeriesTag = {}));\nvar AreaSeries = /** @class */ (function (_super) {\n __extends$28(AreaSeries, _super);\n function AreaSeries() {\n var _this = _super.call(this, {\n pathsPerSeries: 2,\n pathsZIndexSubOrderOffset: [0, 1000],\n pickGroupIncludes: ['markers'],\n features: ['markers'],\n renderLayerPerSubSeries: false,\n }) || this;\n _this.tooltip = new AreaSeriesTooltip();\n _this.xData = [];\n _this.yData = [];\n _this.yDomain = [];\n _this.xDomain = [];\n _this.directionKeys = {\n x: ['xKey'],\n y: ['yKeys'],\n };\n _this.marker = new CartesianSeriesMarker();\n _this.label = new AreaSeriesLabel();\n _this.fills = ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'];\n _this.strokes = ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this._xKey = '';\n _this.xName = '';\n _this._yKeys = [];\n _this._visibles = [];\n _this.yNames = [];\n _this.strokeWidth = 2;\n _this.shadow = undefined;\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.enabled = false;\n label.enabled = false;\n return _this;\n }\n Object.defineProperty(AreaSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n this._xKey = value;\n this.xData = [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AreaSeries.prototype, \"yKeys\", {\n get: function () {\n return this._yKeys;\n },\n set: function (values) {\n if (!equal(this._yKeys, values)) {\n this._yKeys = values;\n this.yData = [];\n this.processSeriesItemEnabled();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AreaSeries.prototype, \"visibles\", {\n get: function () {\n return this._visibles;\n },\n set: function (visibles) {\n this._visibles = visibles;\n this.processSeriesItemEnabled();\n },\n enumerable: true,\n configurable: true\n });\n AreaSeries.prototype.processSeriesItemEnabled = function () {\n var _a = this, seriesItemEnabled = _a.seriesItemEnabled, _b = _a._visibles, visibles = _b === void 0 ? [] : _b;\n seriesItemEnabled.clear();\n this._yKeys.forEach(function (key, idx) { var _a; return seriesItemEnabled.set(key, (_a = visibles[idx], (_a !== null && _a !== void 0 ? _a : true))); });\n };\n AreaSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n };\n Object.defineProperty(AreaSeries.prototype, \"normalizedTo\", {\n get: function () {\n return this._normalizedTo;\n },\n set: function (value) {\n var absValue = value ? Math.abs(value) : undefined;\n if (this._normalizedTo !== absValue) {\n this._normalizedTo = absValue;\n }\n },\n enumerable: true,\n configurable: true\n });\n AreaSeries.prototype.processData = function () {\n return __awaiter$7(this, void 0, void 0, function () {\n var _a, xKey, yKeys, seriesItemEnabled, xAxis, yAxis, normalizedTo, data, isContinuousX, isContinuousY, normalized, yData, xData, xValues, missingYKeys, _loop_1, data_1, data_1_1, datum, missingYKeysString_1, yMin, yMax, i, total, yData_1, yData_1_1, seriesYs, y, normalizedTotal, yData_2, yData_2_1, seriesYs, normalizedY, domainWhitespaceAdjustment;\n var e_1, _b, e_2, _c, e_3, _d;\n return __generator$7(this, function (_e) {\n _a = this, xKey = _a.xKey, yKeys = _a.yKeys, seriesItemEnabled = _a.seriesItemEnabled, xAxis = _a.xAxis, yAxis = _a.yAxis, normalizedTo = _a.normalizedTo;\n data = xKey && yKeys.length && this.data ? this.data : [];\n if (!xAxis || !yAxis) {\n return [2 /*return*/];\n }\n isContinuousX = xAxis.scale instanceof ContinuousScale$1;\n isContinuousY = yAxis.scale instanceof ContinuousScale$1;\n normalized = normalizedTo && isFinite(normalizedTo);\n yData = [];\n xData = [];\n xValues = [];\n missingYKeys = new Set(yKeys);\n _loop_1 = function (datum) {\n // X datum\n if (!(xKey in datum)) {\n doOnce$1(function () { return console.warn(\"AG Charts - The key '\" + xKey + \"' was not found in the data: \", datum); }, xKey + \" not found in data\");\n return \"continue\";\n }\n var xDatum = checkDatum(datum[xKey], isContinuousX);\n if (isContinuousX && xDatum === undefined) {\n return \"continue\";\n }\n else {\n xValues.push(xDatum);\n xData.push({ xDatum: xDatum, seriesDatum: datum });\n }\n // Y datum\n yKeys.forEach(function (yKey, i) {\n var seriesYs = yData[i] || (yData[i] = []);\n if (!(yKey in datum)) {\n seriesYs.push(NaN);\n return;\n }\n missingYKeys.delete(yKey);\n var value = datum[yKey];\n if (!seriesItemEnabled.get(yKey)) {\n seriesYs.push(NaN);\n }\n else {\n var yDatum = checkDatum(value, isContinuousY);\n seriesYs.push(yDatum);\n }\n });\n };\n try {\n for (data_1 = __values$d(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n datum = data_1_1.value;\n _loop_1(datum);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_b = data_1.return)) _b.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (missingYKeys.size > 0) {\n missingYKeysString_1 = JSON.stringify(__spread$d(missingYKeys));\n doOnce$1(function () { return console.log(\"AG Charts - yKeys \" + missingYKeysString_1 + \" were not found in the data.\"); }, missingYKeysString_1 + \" not found in data.\");\n }\n this.yData = yData;\n this.xData = xData;\n this.xDomain = isContinuousX ? this.fixNumericExtent(extent$1(xValues, isContinuous$1), xAxis) : xValues;\n yMin = undefined;\n yMax = undefined;\n for (i = 0; i < xData.length; i++) {\n total = { sum: 0, absSum: 0 };\n try {\n for (yData_1 = (e_2 = void 0, __values$d(yData)), yData_1_1 = yData_1.next(); !yData_1_1.done; yData_1_1 = yData_1.next()) {\n seriesYs = yData_1_1.value;\n if (seriesYs[i] === undefined || isNaN(seriesYs[i])) {\n continue;\n }\n y = +seriesYs[i];\n total.absSum += Math.abs(y);\n total.sum += y;\n if (total.sum >= ((yMax !== null && yMax !== void 0 ? yMax : 0))) {\n yMax = total.sum;\n }\n else if (total.sum <= ((yMin !== null && yMin !== void 0 ? yMin : 0))) {\n yMin = total.sum;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (yData_1_1 && !yData_1_1.done && (_c = yData_1.return)) _c.call(yData_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (!(normalized && normalizedTo)) {\n continue;\n }\n normalizedTotal = undefined;\n try {\n // normalize y values using the absolute sum of y values in the stack\n for (yData_2 = (e_3 = void 0, __values$d(yData)), yData_2_1 = yData_2.next(); !yData_2_1.done; yData_2_1 = yData_2.next()) {\n seriesYs = yData_2_1.value;\n normalizedY = (+seriesYs[i] / total.absSum) * normalizedTo;\n seriesYs[i] = normalizedY;\n if (!isNaN(normalizedY)) {\n // sum normalized values to get updated yMin and yMax of normalized area\n normalizedTotal = ((normalizedTotal !== null && normalizedTotal !== void 0 ? normalizedTotal : 0)) + normalizedY;\n }\n else {\n continue;\n }\n if (normalizedTotal >= ((yMax !== null && yMax !== void 0 ? yMax : 0))) {\n yMax = normalizedTotal;\n }\n else if (normalizedTotal <= ((yMin !== null && yMin !== void 0 ? yMin : 0))) {\n yMin = normalizedTotal;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (yData_2_1 && !yData_2_1.done && (_d = yData_2.return)) _d.call(yData_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n if (normalized && normalizedTo) {\n domainWhitespaceAdjustment = 0.5;\n // set the yMin and yMax based on cumulative sum of normalized values\n yMin = ((yMin !== null && yMin !== void 0 ? yMin : 0)) < -normalizedTo * domainWhitespaceAdjustment ? -normalizedTo : yMin;\n yMax = ((yMax !== null && yMax !== void 0 ? yMax : 0)) > normalizedTo * domainWhitespaceAdjustment ? normalizedTo : yMax;\n }\n this.yDomain = this.fixNumericExtent(yMin === undefined && yMax === undefined ? undefined : [(yMin !== null && yMin !== void 0 ? yMin : 0), (yMax !== null && yMax !== void 0 ? yMax : 0)], yAxis);\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n AreaSeries.prototype.createNodeData = function () {\n return __awaiter$7(this, void 0, void 0, function () {\n var _a, data, xAxis, yAxis, xData, yData, contexts, _b, yKeys, marker, label, fills, strokes, seriesId, xScale, yScale, continuousY, xOffset, cumulativePathValues, cumulativeMarkerValues, createPathCoordinates, createMarkerCoordinate;\n var _this = this;\n return __generator$7(this, function (_c) {\n _a = this, data = _a.data, xAxis = _a.xAxis, yAxis = _a.yAxis, xData = _a.xData, yData = _a.yData;\n if (!data || !xAxis || !yAxis || !xData.length || !yData.length) {\n return [2 /*return*/, []];\n }\n contexts = [];\n _b = this, yKeys = _b.yKeys, marker = _b.marker, label = _b.label, fills = _b.fills, strokes = _b.strokes, seriesId = _b.id;\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n continuousY = yScale instanceof ContinuousScale$1;\n xOffset = (xScale.bandwidth || 0) / 2;\n cumulativePathValues = new Array(xData.length)\n .fill(null)\n .map(function () { return ({ left: 0, right: 0 }); });\n cumulativeMarkerValues = new Array(xData.length).fill(0);\n createPathCoordinates = function (xDatum, yDatum, idx, side) {\n var x = xScale.convert(xDatum) + xOffset;\n var prevY = cumulativePathValues[idx][side];\n var currY = cumulativePathValues[idx][side] + yDatum;\n var prevYCoordinate = yScale.convert(prevY, continuousY ? clamper$1 : undefined);\n var currYCoordinate = yScale.convert(currY, continuousY ? clamper$1 : undefined);\n cumulativePathValues[idx][side] = currY;\n return [\n { x: x, y: currYCoordinate, size: marker.size },\n { x: x, y: prevYCoordinate, size: marker.size },\n ];\n };\n createMarkerCoordinate = function (xDatum, yDatum, idx, rawYDatum) {\n var currY;\n // if not normalized, the invalid data points will be processed as `undefined` in processData()\n // if normalized, the invalid data points will be processed as 0 rather than `undefined`\n // check if unprocessed datum is valid as we only want to show markers for valid points\n var normalized = _this.normalizedTo && isFinite(_this.normalizedTo);\n var normalizedAndValid = normalized && continuousY && isContinuous$1(rawYDatum);\n var valid = (!normalized && !isNaN(rawYDatum)) || normalizedAndValid;\n if (valid) {\n currY = cumulativeMarkerValues[idx] += yDatum;\n }\n var x = xScale.convert(xDatum) + xOffset;\n var y = yScale.convert(currY, continuousY ? clamper$1 : undefined);\n return { x: x, y: y, size: marker.size };\n };\n yData.forEach(function (seriesYs, seriesIdx) {\n var yKey = yKeys[seriesIdx];\n var labelSelectionData = [];\n var markerSelectionData = [];\n var strokeSelectionData = { itemId: yKey, points: [], yValues: [] };\n var fillSelectionData = { itemId: yKey, points: [] };\n contexts[seriesIdx] = {\n itemId: yKey,\n fillSelectionData: fillSelectionData,\n labelData: labelSelectionData,\n nodeData: markerSelectionData,\n strokeSelectionData: strokeSelectionData,\n };\n if (!_this.seriesItemEnabled.get(yKey)) {\n return;\n }\n var fillPoints = fillSelectionData.points;\n var fillPhantomPoints = [];\n var strokePoints = strokeSelectionData.points;\n var yValues = strokeSelectionData.yValues;\n seriesYs.forEach(function (rawYDatum, datumIdx) {\n var _a;\n var yDatum = isNaN(rawYDatum) ? undefined : rawYDatum;\n var _b = xData[datumIdx], xDatum = _b.xDatum, seriesDatum = _b.seriesDatum;\n var nextXDatum = (_a = xData[datumIdx + 1]) === null || _a === void 0 ? void 0 : _a.xDatum;\n var rawNextYDatum = seriesYs[datumIdx + 1];\n var nextYDatum = isNaN(rawNextYDatum) ? undefined : rawNextYDatum;\n // marker data\n var point = createMarkerCoordinate(xDatum, +yDatum, datumIdx, seriesDatum[yKey]);\n if (marker) {\n markerSelectionData.push({\n index: datumIdx,\n series: _this,\n itemId: yKey,\n datum: seriesDatum,\n yValue: yDatum,\n yKey: yKey,\n point: point,\n fill: fills[seriesIdx % fills.length],\n stroke: strokes[seriesIdx % strokes.length],\n });\n }\n // label data\n var labelText;\n if (label.formatter) {\n labelText = label.formatter({ value: yDatum, seriesId: seriesId });\n }\n else {\n labelText = isNumber$1(yDatum) ? Number(yDatum).toFixed(2) : String(yDatum);\n }\n if (label) {\n labelSelectionData.push({\n index: datumIdx,\n itemId: yKey,\n point: point,\n label: _this.seriesItemEnabled.get(yKey) && labelText\n ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color,\n }\n : undefined,\n });\n }\n // fill data\n // Handle data in pairs of current and next x and y values\n var windowX = [xDatum, nextXDatum];\n var windowY = [yDatum, nextYDatum];\n if (windowX.some(function (v) { return v == undefined; })) {\n return;\n }\n if (windowY.some(function (v) { return v == undefined; })) {\n windowY[0] = 0;\n windowY[1] = 0;\n }\n var currCoordinates = createPathCoordinates(windowX[0], +windowY[0], datumIdx, 'right');\n fillPoints.push(currCoordinates[0]);\n fillPhantomPoints.push(currCoordinates[1]);\n var nextCoordinates = createPathCoordinates(windowX[1], +windowY[1], datumIdx, 'left');\n fillPoints.push(nextCoordinates[0]);\n fillPhantomPoints.push(nextCoordinates[1]);\n // stroke data\n strokePoints.push({ x: NaN, y: NaN }); // moveTo\n yValues.push(undefined);\n strokePoints.push(currCoordinates[0]);\n yValues.push(yDatum);\n if (nextYDatum !== undefined) {\n strokePoints.push(nextCoordinates[0]);\n yValues.push(yDatum);\n }\n });\n for (var i = fillPhantomPoints.length - 1; i >= 0; i--) {\n fillPoints.push(fillPhantomPoints[i]);\n }\n });\n return [2 /*return*/, contexts];\n });\n });\n };\n AreaSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n AreaSeries.prototype.updatePaths = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var _a, fillSelectionData, strokeSelectionData, _b, fill, stroke;\n return __generator$7(this, function (_c) {\n _a = opts.contextData, fillSelectionData = _a.fillSelectionData, strokeSelectionData = _a.strokeSelectionData, _b = __read$s(opts.paths, 2), fill = _b[0], stroke = _b[1];\n fill.datum = fillSelectionData;\n fill.tag = AreaSeriesTag.Fill;\n fill.lineJoin = 'round';\n fill.stroke = undefined;\n fill.pointerEvents = PointerEvents$1.None;\n stroke.datum = strokeSelectionData;\n stroke.tag = AreaSeriesTag.Stroke;\n stroke.fill = undefined;\n stroke.lineJoin = stroke.lineCap = 'round';\n stroke.pointerEvents = PointerEvents$1.None;\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.updatePathNodes = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var _a, fill, stroke, seriesIdx, itemId, _b, strokes, fills, fillOpacity, strokeOpacity, strokeWidth, shadow, points, path, i, points_1, points_1_1, p, _c, points, yValues, moveTo_1, path, i, points_2, points_2_1, p;\n var e_4, _d, e_5, _e;\n return __generator$7(this, function (_f) {\n _a = __read$s(opts.paths, 2), fill = _a[0], stroke = _a[1], seriesIdx = opts.seriesIdx, itemId = opts.itemId;\n _b = this, strokes = _b.strokes, fills = _b.fills, fillOpacity = _b.fillOpacity, strokeOpacity = _b.strokeOpacity, strokeWidth = _b.strokeWidth, shadow = _b.shadow;\n {\n points = fill.datum.points;\n fill.fill = fills[seriesIdx % fills.length];\n fill.fillOpacity = fillOpacity;\n fill.strokeOpacity = strokeOpacity;\n fill.strokeWidth = strokeWidth;\n fill.lineDash = this.lineDash;\n fill.lineDashOffset = this.lineDashOffset;\n fill.fillShadow = shadow;\n path = fill.path;\n path.clear({ trackChanges: true });\n i = 0;\n try {\n for (points_1 = __values$d(points), points_1_1 = points_1.next(); !points_1_1.done; points_1_1 = points_1.next()) {\n p = points_1_1.value;\n if (i++ > 0) {\n path.lineTo(p.x, p.y);\n }\n else {\n path.moveTo(p.x, p.y);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (points_1_1 && !points_1_1.done && (_d = points_1.return)) _d.call(points_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n path.closePath();\n fill.checkPathDirty();\n }\n {\n _c = stroke.datum, points = _c.points, yValues = _c.yValues;\n moveTo_1 = true;\n stroke.stroke = strokes[seriesIdx % strokes.length];\n stroke.strokeWidth = this.getStrokeWidth(this.strokeWidth, { itemId: itemId });\n stroke.strokeOpacity = strokeOpacity;\n stroke.lineDash = this.lineDash;\n stroke.lineDashOffset = this.lineDashOffset;\n path = stroke.path;\n path.clear({ trackChanges: true });\n i = 0;\n try {\n for (points_2 = __values$d(points), points_2_1 = points_2.next(); !points_2_1.done; points_2_1 = points_2.next()) {\n p = points_2_1.value;\n if (yValues[i++] === undefined) {\n moveTo_1 = true;\n }\n else if (moveTo_1) {\n path.moveTo(p.x, p.y);\n moveTo_1 = false;\n }\n else {\n path.lineTo(p.x, p.y);\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (points_2_1 && !points_2_1.done && (_e = points_2.return)) _e.call(points_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n stroke.checkPathDirty();\n }\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var nodeData, markerSelection, _a, enabled, shape, data, MarkerShape, updateMarkerSelection, enterMarkers;\n return __generator$7(this, function (_b) {\n nodeData = opts.nodeData, markerSelection = opts.markerSelection;\n _a = this.marker, enabled = _a.enabled, shape = _a.shape;\n data = enabled && nodeData ? nodeData : [];\n MarkerShape = getMarker$1(shape);\n if (this.marker.isDirty()) {\n markerSelection = markerSelection.setData([]);\n markerSelection.exit.remove();\n }\n updateMarkerSelection = markerSelection.setData(data);\n updateMarkerSelection.exit.remove();\n enterMarkers = updateMarkerSelection.enter.append(MarkerShape).each(function (marker) {\n marker.tag = AreaSeriesTag.Marker;\n });\n return [2 /*return*/, updateMarkerSelection.merge(enterMarkers)];\n });\n });\n };\n AreaSeries.prototype.updateMarkerNodes = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _a, seriesId, xKey, marker, seriesItemEnabled, yKeys, fills, strokes, seriesFillOpacity, _b, markerFillOpacity, strokeOpacity, _c, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _d, _e, highlightedFill, _f, highlightFillOpacity, _g, highlightedStroke, _h, highlightedDatumStrokeWidth, size, formatter, markerStrokeWidth;\n return __generator$7(this, function (_j) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, seriesId = _a.id, xKey = _a.xKey, marker = _a.marker, seriesItemEnabled = _a.seriesItemEnabled, yKeys = _a.yKeys, fills = _a.fills, strokes = _a.strokes, seriesFillOpacity = _a.fillOpacity, _b = _a.marker.fillOpacity, markerFillOpacity = _b === void 0 ? seriesFillOpacity : _b, strokeOpacity = _a.strokeOpacity, _c = _a.highlightStyle, deprecatedFill = _c.fill, deprecatedStroke = _c.stroke, deprecatedStrokeWidth = _c.strokeWidth, _d = _c.item, _e = _d.fill, highlightedFill = _e === void 0 ? deprecatedFill : _e, _f = _d.fillOpacity, highlightFillOpacity = _f === void 0 ? markerFillOpacity : _f, _g = _d.stroke, highlightedStroke = _g === void 0 ? deprecatedStroke : _g, _h = _d.strokeWidth, highlightedDatumStrokeWidth = _h === void 0 ? deprecatedStrokeWidth : _h;\n size = marker.size, formatter = marker.formatter;\n markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : this.strokeWidth;\n markerSelection.each(function (node, datum) {\n var _a, _b;\n var yKeyIndex = yKeys.indexOf(datum.yKey);\n var fill = isDatumHighlighted && highlightedFill !== undefined\n ? highlightedFill\n : marker.fill || fills[yKeyIndex % fills.length];\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined\n ? highlightedStroke\n : marker.stroke || strokes[yKeyIndex % fills.length];\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: datum.yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (format && format.fill) || fill;\n node.stroke = (format && format.stroke) || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n node.fillOpacity = (fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1);\n node.strokeOpacity = (_b = (_a = marker.strokeOpacity, (_a !== null && _a !== void 0 ? _a : strokeOpacity)), (_b !== null && _b !== void 0 ? _b : 1));\n node.size = format && format.size !== undefined ? format.size : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.visible =\n node.size > 0 && !!seriesItemEnabled.get(datum.yKey) && !isNaN(datum.point.x) && !isNaN(datum.point.y);\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var labelData, labelSelection, updateLabels, enterLabels;\n return __generator$7(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n updateLabels = labelSelection.setData(labelData);\n updateLabels.exit.remove();\n enterLabels = updateLabels.enter.append(Text$1).each(function (text) {\n text.tag = AreaSeriesTag.Label;\n });\n return [2 /*return*/, updateLabels.merge(enterLabels)];\n });\n });\n };\n AreaSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var labelSelection, _a, labelEnabled, fontStyle, fontWeight, fontSize, fontFamily, color;\n return __generator$7(this, function (_b) {\n labelSelection = opts.labelSelection;\n _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n labelSelection.each(function (text, datum) {\n var point = datum.point, label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new CartesianSeriesNodeClickEvent(this.xKey, datum.yKey, event, datum, this);\n };\n AreaSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, seriesId = _a.id;\n var yKey = nodeDatum.yKey;\n if (!(xKey && yKey) || !this.seriesItemEnabled.get(yKey)) {\n return '';\n }\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var _b = this, xAxis = _b.xAxis, yAxis = _b.yAxis;\n if (!(xAxis && yAxis && isNumber$1(yValue))) {\n return '';\n }\n var _c = this, xName = _c.xName, yKeys = _c.yKeys, yNames = _c.yNames, yData = _c.yData, fills = _c.fills, strokes = _c.strokes, tooltip = _c.tooltip, marker = _c.marker;\n var size = marker.size, markerFormatter = marker.formatter, markerStrokeWidth = marker.strokeWidth, markerFill = marker.fill, markerStroke = marker.stroke;\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var yKeyIndex = yKeys.indexOf(yKey);\n var seriesYs = yData[yKeyIndex];\n var processedYValue = seriesYs[nodeDatum.index];\n var yName = yNames[yKeyIndex];\n var title = sanitizeHtml(yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var strokeWidth = markerStrokeWidth !== undefined ? markerStrokeWidth : this.strokeWidth;\n var fill = markerFill || fills[yKeyIndex % fills.length];\n var stroke = markerStroke || strokes[yKeyIndex % fills.length];\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (format && format.fill) || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xName: xName,\n xValue: xValue,\n yKey: yKey,\n yValue: yValue,\n processedYValue: processedYValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params),\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n AreaSeries.prototype.getLegendData = function () {\n var _a, _b;\n var _c = this, data = _c.data, id = _c.id, xKey = _c.xKey, yKeys = _c.yKeys, yNames = _c.yNames, seriesItemEnabled = _c.seriesItemEnabled, marker = _c.marker, fills = _c.fills, strokes = _c.strokes, fillOpacity = _c.fillOpacity, strokeOpacity = _c.strokeOpacity;\n if (!data || !data.length || !xKey || !yKeys.length) {\n return [];\n }\n var legendData = [];\n // Area stacks should be listed in the legend in reverse order, for symmetry with the\n // vertical stack display order.\n for (var index = yKeys.length - 1; index >= 0; index--) {\n var yKey = yKeys[index];\n legendData.push({\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: seriesItemEnabled.get(yKey) || false,\n label: {\n text: yNames[index] || yKeys[index],\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || fills[index % fills.length],\n stroke: marker.stroke || strokes[index % strokes.length],\n fillOpacity: (_a = marker.fillOpacity, (_a !== null && _a !== void 0 ? _a : fillOpacity)),\n strokeOpacity: (_b = marker.strokeOpacity, (_b !== null && _b !== void 0 ? _b : strokeOpacity)),\n },\n });\n }\n return legendData;\n };\n AreaSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n AreaSeries.className = 'AreaSeries';\n AreaSeries.type = 'area';\n __decorate$1g([\n Validate(COLOR_STRING_ARRAY)\n ], AreaSeries.prototype, \"fills\", void 0);\n __decorate$1g([\n Validate(COLOR_STRING_ARRAY)\n ], AreaSeries.prototype, \"strokes\", void 0);\n __decorate$1g([\n Validate(NUMBER(0, 1))\n ], AreaSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1g([\n Validate(NUMBER(0, 1))\n ], AreaSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1g([\n Validate(OPT_LINE_DASH)\n ], AreaSeries.prototype, \"lineDash\", void 0);\n __decorate$1g([\n Validate(NUMBER(0))\n ], AreaSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1g([\n Validate(STRING)\n ], AreaSeries.prototype, \"_xKey\", void 0);\n __decorate$1g([\n Validate(STRING)\n ], AreaSeries.prototype, \"xName\", void 0);\n __decorate$1g([\n Validate(STRING_ARRAY)\n ], AreaSeries.prototype, \"_yKeys\", void 0);\n __decorate$1g([\n Validate(BOOLEAN_ARRAY)\n ], AreaSeries.prototype, \"_visibles\", void 0);\n __decorate$1g([\n Validate(STRING_ARRAY)\n ], AreaSeries.prototype, \"yNames\", void 0);\n __decorate$1g([\n Validate(NUMBER())\n ], AreaSeries.prototype, \"_normalizedTo\", void 0);\n __decorate$1g([\n Validate(NUMBER(0))\n ], AreaSeries.prototype, \"strokeWidth\", void 0);\n return AreaSeries;\n}(CartesianSeries));\n\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$6 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$6 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$r = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$c = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$r(arguments[i]));\n return ar;\n};\nvar __values$c = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BAR_LABEL_PLACEMENTS = ['inside', 'outside'];\nvar OPT_BAR_LABEL_PLACEMENT = function (v, ctx) {\n return OPTIONAL(v, ctx, function (v) { return BAR_LABEL_PLACEMENTS.includes(v); });\n};\nvar BarSeriesNodeTag;\n(function (BarSeriesNodeTag) {\n BarSeriesNodeTag[BarSeriesNodeTag[\"Bar\"] = 0] = \"Bar\";\n BarSeriesNodeTag[BarSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarSeriesNodeTag || (BarSeriesNodeTag = {}));\nvar BarLabelPlacement;\n(function (BarLabelPlacement) {\n BarLabelPlacement[\"Inside\"] = \"inside\";\n BarLabelPlacement[\"Outside\"] = \"outside\";\n})(BarLabelPlacement || (BarLabelPlacement = {}));\nvar BarSeriesLabel = /** @class */ (function (_super) {\n __extends$27(BarSeriesLabel, _super);\n function BarSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n _this.placement = BarLabelPlacement.Inside;\n return _this;\n }\n __decorate$1f([\n Validate(OPT_FUNCTION)\n ], BarSeriesLabel.prototype, \"formatter\", void 0);\n __decorate$1f([\n Validate(OPT_BAR_LABEL_PLACEMENT)\n ], BarSeriesLabel.prototype, \"placement\", void 0);\n return BarSeriesLabel;\n}(Label$1));\nvar BarSeriesTooltip = /** @class */ (function (_super) {\n __extends$27(BarSeriesTooltip, _super);\n function BarSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1f([\n Validate(OPT_FUNCTION)\n ], BarSeriesTooltip.prototype, \"renderer\", void 0);\n return BarSeriesTooltip;\n}(SeriesTooltip));\nfunction flat(arr, target) {\n if (target === void 0) { target = []; }\n arr.forEach(function (v) {\n if (Array.isArray(v)) {\n flat(v, target);\n }\n else {\n target.push(v);\n }\n });\n return target;\n}\nfunction is2dArray$1(array) {\n return array.length > 0 && Array.isArray(array[0]);\n}\nvar BarSeries = /** @class */ (function (_super) {\n __extends$27(BarSeries, _super);\n function BarSeries() {\n var _a;\n var _this = _super.call(this, {\n pickGroupIncludes: ['datumNodes'],\n pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH],\n pathsPerSeries: 0,\n }) || this;\n _this.xData = [];\n _this.yData = [];\n _this.yDomain = [];\n _this.label = new BarSeriesLabel();\n _this.tooltip = new BarSeriesTooltip();\n _this.flipXY = false;\n _this.fills = ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'];\n _this.strokes = ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.formatter = undefined;\n /**\n * Used to get the position of bars within each group.\n */\n _this.groupScale = new BandScale$1();\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKeys'],\n _a);\n _this._xKey = '';\n _this.xName = '';\n _this.cumYKeyCount = [];\n _this.flatYKeys = undefined; // only set when a user used a flat array for yKeys\n _this.hideInLegend = [];\n /**\n * yKeys: [['coffee']] - regular bars, each category has a single bar that shows a value for coffee\n * yKeys: [['coffee'], ['tea'], ['milk']] - each category has three bars that show values for coffee, tea and milk\n * yKeys: [['coffee', 'tea', 'milk']] - each category has a single bar with three stacks that show values for coffee, tea and milk\n * yKeys: [['coffee', 'tea', 'milk'], ['paper', 'ink']] - each category has 2 stacked bars,\n * first showing values for coffee, tea and milk and second values for paper and ink\n */\n _this._yKeys = [];\n _this._visibles = [];\n _this._grouped = false;\n /**\n * A map of `yKeys` to their names (used in legends and tooltips).\n * For example, if a key is `product_name` it's name can be a more presentable `Product Name`.\n */\n _this._yNames = {};\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.smallestDataInterval = undefined;\n _this.label.enabled = false;\n return _this;\n }\n BarSeries.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[this.flipXY ? flipChartAxisDirection(direction) : direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values = values.concat(flat(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n Object.defineProperty(BarSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n this._xKey = value;\n this.xData = [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"yKeys\", {\n get: function () {\n return this._yKeys;\n },\n set: function (yKeys) {\n var _this = this;\n var flatYKeys = undefined;\n // Convert from flat y-keys to grouped y-keys.\n if (!is2dArray$1(yKeys)) {\n flatYKeys = yKeys;\n yKeys = this.grouped ? flatYKeys.map(function (k) { return [k]; }) : [flatYKeys];\n }\n if (!equal(this._yKeys, yKeys)) {\n this.flatYKeys = flatYKeys ? flatYKeys : undefined;\n this._yKeys = yKeys;\n var prevYKeyCount_1 = 0;\n this.cumYKeyCount = [];\n var visibleStacks_1 = [];\n yKeys.forEach(function (stack, index) {\n if (stack.length > 0) {\n visibleStacks_1.push(String(index));\n }\n _this.cumYKeyCount.push(prevYKeyCount_1);\n prevYKeyCount_1 += stack.length;\n });\n this.yData = [];\n this.processSeriesItemEnabled();\n var groupScale = this.groupScale;\n groupScale.domain = visibleStacks_1;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"visibles\", {\n get: function () {\n return this._visibles;\n },\n set: function (visibles) {\n var flattenFn = function (r, n) { return r.concat.apply(r, __spread$c((Array.isArray(n) ? n : [n]))); };\n this._visibles = visibles.reduce(flattenFn, []);\n this.processSeriesItemEnabled();\n },\n enumerable: true,\n configurable: true\n });\n BarSeries.prototype.processSeriesItemEnabled = function () {\n var _a = this, seriesItemEnabled = _a.seriesItemEnabled, _b = _a._visibles, visibles = _b === void 0 ? [] : _b;\n seriesItemEnabled.clear();\n var visiblesIdx = 0;\n this._yKeys.forEach(function (stack) {\n stack.forEach(function (yKey) { var _a, _b; return seriesItemEnabled.set(yKey, (_b = (_a = visibles) === null || _a === void 0 ? void 0 : _a[visiblesIdx++], (_b !== null && _b !== void 0 ? _b : true))); });\n });\n };\n Object.defineProperty(BarSeries.prototype, \"grouped\", {\n get: function () {\n return this._grouped;\n },\n set: function (value) {\n if (this._grouped !== value) {\n this._grouped = value;\n if (this.flatYKeys) {\n this.yKeys = this.flatYKeys;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"yNames\", {\n get: function () {\n return this._yNames;\n },\n set: function (values) {\n if (Array.isArray(values) && this.flatYKeys) {\n var map_1 = {};\n this.flatYKeys.forEach(function (k, i) {\n map_1[k] = values[i];\n });\n values = map_1;\n }\n this._yNames = values;\n },\n enumerable: true,\n configurable: true\n });\n BarSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n };\n Object.defineProperty(BarSeries.prototype, \"normalizedTo\", {\n get: function () {\n return this._normalizedTo;\n },\n set: function (value) {\n var absValue = value ? Math.abs(value) : undefined;\n this._normalizedTo = absValue;\n },\n enumerable: true,\n configurable: true\n });\n BarSeries.prototype.processData = function () {\n return __awaiter$6(this, void 0, void 0, function () {\n var _a, xKey, yKeys, seriesItemEnabled, data, xAxis, yAxis, setSmallestXInterval, isContinuousX, isContinuousY, keysFound, prevX, yMinMax, _b, yData, normalizedTo, yAbsTotal, _c, yMin, yMax;\n var _this = this;\n return __generator$6(this, function (_d) {\n _a = this, xKey = _a.xKey, yKeys = _a.yKeys, seriesItemEnabled = _a.seriesItemEnabled;\n data = xKey && yKeys.length && this.data ? this.data : [];\n xAxis = this.getCategoryAxis();\n yAxis = this.getValueAxis();\n if (!(xAxis && yAxis)) {\n return [2 /*return*/];\n }\n setSmallestXInterval = function (curr, prev) {\n if (_this.smallestDataInterval === undefined) {\n _this.smallestDataInterval = { x: Infinity, y: Infinity };\n }\n var x = _this.smallestDataInterval.x;\n var interval = Math.abs(curr - prev);\n if (interval > 0 && interval < x) {\n _this.smallestDataInterval.x = interval;\n }\n };\n isContinuousX = xAxis.scale instanceof ContinuousScale$1;\n isContinuousY = yAxis.scale instanceof ContinuousScale$1;\n keysFound = true;\n prevX = Infinity;\n this.xData = data.map(function (datum) {\n if (keysFound && !(xKey in datum)) {\n keysFound = false;\n console.warn(\"The key '\" + xKey + \"' was not found in the data: \", datum);\n }\n var x = checkDatum(datum[xKey], isContinuousX);\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n prevX = x;\n return x;\n });\n this.yData = data.map(function (datum) {\n return yKeys.map(function (stack) {\n return stack.map(function (yKey) {\n if (keysFound && !(yKey in datum)) {\n keysFound = false;\n console.warn(\"The key '\" + yKey + \"' was not found in the data: \", datum);\n }\n var yDatum = checkDatum(datum[yKey], isContinuousY);\n if (!seriesItemEnabled.get(yKey) || yDatum === undefined) {\n return NaN;\n }\n return yDatum;\n });\n });\n });\n yMinMax = this.yData.map(function (group) { return group.map(function (stack) { return findMinMax(stack); }); });\n _b = this, yData = _b.yData, normalizedTo = _b.normalizedTo;\n yAbsTotal = this.yData.map(function (group) {\n return group.map(function (stack) {\n return stack.reduce(function (acc, stack) {\n acc += isNaN(stack) ? 0 : Math.abs(stack);\n return acc;\n }, 0);\n });\n });\n _c = this.findLargestMinMax(yMinMax), yMin = _c.min, yMax = _c.max;\n if (yMin === Infinity && yMax === -Infinity) {\n // There's no data in the domain.\n this.yDomain = [];\n return [2 /*return*/];\n }\n if (normalizedTo && isFinite(normalizedTo)) {\n yMin = yMin < 0 ? -normalizedTo : 0;\n yMax = yMax > 0 ? normalizedTo : 0;\n yData.forEach(function (group, i) {\n group.forEach(function (stack, j) {\n stack.forEach(function (y, k) {\n stack[k] = (y / yAbsTotal[i][j]) * normalizedTo;\n });\n });\n });\n }\n this.yDomain = this.fixNumericExtent([yMin, yMax], this.yAxis);\n return [2 /*return*/];\n });\n });\n };\n BarSeries.prototype.findLargestMinMax = function (groups) {\n var e_1, _a, e_2, _b;\n var tallestStackMin = Infinity;\n var tallestStackMax = -Infinity;\n try {\n for (var groups_1 = __values$c(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {\n var group = groups_1_1.value;\n try {\n for (var group_1 = (e_2 = void 0, __values$c(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {\n var stack = group_1_1.value;\n var _c = stack.min, min = _c === void 0 ? Infinity : _c, _d = stack.max, max = _d === void 0 ? -Infinity : _d;\n if (min < tallestStackMin) {\n tallestStackMin = min;\n }\n if (max > tallestStackMax) {\n tallestStackMax = max;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (group_1_1 && !group_1_1.done && (_b = group_1.return)) _b.call(group_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { min: tallestStackMin, max: tallestStackMax };\n };\n BarSeries.prototype.getDomain = function (direction) {\n var _a, _b, _c, _d, _e;\n var flipXY = this.flipXY;\n if (this.flipXY) {\n direction = flipChartAxisDirection(direction);\n }\n if (direction === ChartAxisDirection.X) {\n if (!(((_a = this.getCategoryAxis()) === null || _a === void 0 ? void 0 : _a.scale) instanceof ContinuousScale$1)) {\n return this.xData;\n }\n // The last node will be clipped if the scale is not a band scale\n // Extend the domain by the smallest data interval so that the last band is not clipped\n var xDomain = extent$1(this.xData, isContinuous$1, Number) || [NaN, NaN];\n if (flipXY) {\n xDomain[0] = xDomain[0] - (_c = (_b = this.smallestDataInterval) === null || _b === void 0 ? void 0 : _b.x, (_c !== null && _c !== void 0 ? _c : 0));\n }\n else {\n xDomain[1] = xDomain[1] + (_e = (_d = this.smallestDataInterval) === null || _d === void 0 ? void 0 : _d.x, (_e !== null && _e !== void 0 ? _e : 0));\n }\n return xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n BarSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new CartesianSeriesNodeClickEvent(this.xKey, datum.yKey, event, datum, this);\n };\n BarSeries.prototype.getCategoryAxis = function () {\n return this.flipXY ? this.yAxis : this.xAxis;\n };\n BarSeries.prototype.getValueAxis = function () {\n return this.flipXY ? this.xAxis : this.yAxis;\n };\n BarSeries.prototype.calculateStep = function (range) {\n var _a, _b;\n var smallestInterval = this.smallestDataInterval;\n var xAxis = this.getCategoryAxis();\n if (!xAxis) {\n return;\n }\n // calculate step\n var domainLength = xAxis.dataDomain[1] - xAxis.dataDomain[0];\n var intervals = domainLength / (_b = (_a = smallestInterval) === null || _a === void 0 ? void 0 : _a.x, (_b !== null && _b !== void 0 ? _b : 1)) + 1;\n // The number of intervals/bands is used to determine the width of individual bands by dividing the available range.\n // Allow a maximum number of bands to ensure the step does not fall below 1 pixel.\n // This means there could be some overlap of the bands in the chart.\n var maxBands = Math.floor(range); // A minimum of 1px per bar/column means the maximum number of bands will equal the available range\n var bands = Math.min(intervals, maxBands);\n var step = range / Math.max(1, bands);\n return step;\n };\n BarSeries.prototype.createNodeData = function () {\n return __awaiter$6(this, void 0, void 0, function () {\n var _a, chart, data, visible, xAxis, yAxis, xScale, yScale, _b, groupScale, yKeys, cumYKeyCount, fills, strokes, strokeWidth, seriesItemEnabled, xData, yData, label, flipXY, seriesId, labelFontStyle, labelFontWeight, labelFontSize, labelFontFamily, labelColor, labelFormatter, labelPlacement, xBandWidth, availableRange, step, barWidth, contexts;\n var _this = this;\n return __generator$6(this, function (_c) {\n _a = this, chart = _a.chart, data = _a.data, visible = _a.visible;\n xAxis = this.getCategoryAxis();\n yAxis = this.getValueAxis();\n if (!(chart && data && visible && xAxis && yAxis)) {\n return [2 /*return*/, []];\n }\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n _b = this, groupScale = _b.groupScale, yKeys = _b.yKeys, cumYKeyCount = _b.cumYKeyCount, fills = _b.fills, strokes = _b.strokes, strokeWidth = _b.strokeWidth, seriesItemEnabled = _b.seriesItemEnabled, xData = _b.xData, yData = _b.yData, label = _b.label, flipXY = _b.flipXY, seriesId = _b.id;\n labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n xBandWidth = xScale.bandwidth;\n if (xScale instanceof ContinuousScale$1) {\n availableRange = Math.max(xAxis.range[0], xAxis.range[1]);\n step = this.calculateStep(availableRange);\n xBandWidth = step;\n }\n groupScale.range = [0, xBandWidth];\n if (xAxis instanceof CategoryAxis) {\n groupScale.padding = xAxis.groupPaddingInner;\n }\n else if (xAxis instanceof GroupedCategoryAxis) {\n groupScale.padding = 0.1;\n }\n else {\n // Number or Time axis\n groupScale.padding = 0;\n }\n // To get exactly `0` padding we need to turn off rounding\n if (groupScale.padding === 0) {\n groupScale.round = false;\n }\n else {\n groupScale.round = true;\n }\n barWidth = groupScale.bandwidth >= 1\n ? // Pixel-rounded value for low-volume bar charts.\n groupScale.bandwidth\n : // Handle high-volume bar charts gracefully.\n groupScale.rawBandwidth;\n contexts = [];\n xData.forEach(function (group, groupIndex) {\n var _a, _b;\n var seriesDatum = data[groupIndex];\n var x = xScale.convert(group);\n var groupYs = yData[groupIndex]; // y-data for groups of stacks\n for (var stackIndex = 0; stackIndex < groupYs.length; stackIndex++) {\n var stackYs = groupYs[stackIndex]; // y-data for a stack within a group\n contexts[stackIndex] = (_a = contexts[stackIndex], (_a !== null && _a !== void 0 ? _a : []));\n var prevMinY = 0;\n var prevMaxY = 0;\n for (var levelIndex = 0; levelIndex < stackYs.length; levelIndex++) {\n var currY = +stackYs[levelIndex];\n var yKey = yKeys[stackIndex][levelIndex];\n var barX = x + groupScale.convert(String(stackIndex));\n contexts[stackIndex][levelIndex] = (_b = contexts[stackIndex][levelIndex], (_b !== null && _b !== void 0 ? _b : {\n itemId: yKey,\n nodeData: [],\n labelData: [],\n }));\n // Bars outside of visible range are not rendered, so we create node data\n // only for the visible subset of user data.\n if (!xAxis.inRange(barX, barWidth)) {\n continue;\n }\n if (isNaN(currY)) {\n continue;\n }\n var prevY = currY < 0 ? prevMinY : prevMaxY;\n var continuousY = yScale instanceof ContinuousScale$1;\n var y = yScale.convert(prevY + currY, continuousY ? clamper$1 : undefined);\n var bottomY = yScale.convert(prevY, continuousY ? clamper$1 : undefined);\n var yValue = seriesDatum[yKey]; // unprocessed y-value\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({\n value: isNumber$1(yValue) ? yValue : undefined,\n seriesId: seriesId,\n });\n }\n else {\n labelText = isNumber$1(yValue) ? yValue.toFixed(2) : '';\n }\n var labelX = void 0;\n var labelY = void 0;\n if (flipXY) {\n labelY = barX + barWidth / 2;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelX = y + ((yValue >= 0 ? -1 : 1) * Math.abs(bottomY - y)) / 2;\n }\n else {\n labelX = y + (yValue >= 0 ? 1 : -1) * 4;\n }\n }\n else {\n labelX = barX + barWidth / 2;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelY = y + ((yValue >= 0 ? 1 : -1) * Math.abs(bottomY - y)) / 2;\n }\n else {\n labelY = y + (yValue >= 0 ? -3 : 4);\n }\n }\n var labelTextAlign = void 0;\n var labelTextBaseline = void 0;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelTextAlign = 'center';\n labelTextBaseline = 'middle';\n }\n else {\n labelTextAlign = flipXY ? (yValue >= 0 ? 'start' : 'end') : 'center';\n labelTextBaseline = flipXY ? 'middle' : yValue >= 0 ? 'bottom' : 'top';\n }\n var colorIndex = cumYKeyCount[stackIndex] + levelIndex;\n var nodeData = {\n index: groupIndex,\n series: _this,\n itemId: yKey,\n datum: seriesDatum,\n yValue: yValue,\n yKey: yKey,\n x: flipXY ? Math.min(y, bottomY) : barX,\n y: flipXY ? barX : Math.min(y, bottomY),\n width: flipXY ? Math.abs(bottomY - y) : barWidth,\n height: flipXY ? barWidth : Math.abs(bottomY - y),\n colorIndex: colorIndex,\n fill: fills[colorIndex % fills.length],\n stroke: strokes[colorIndex % strokes.length],\n strokeWidth: strokeWidth,\n label: seriesItemEnabled.get(yKey) && labelText\n ? {\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n x: labelX,\n y: labelY,\n }\n : undefined,\n };\n contexts[stackIndex][levelIndex].nodeData.push(nodeData);\n contexts[stackIndex][levelIndex].labelData.push(nodeData);\n if (currY < 0) {\n prevMinY += currY;\n }\n else {\n prevMaxY += currY;\n }\n }\n }\n });\n return [2 /*return*/, contexts.reduce(function (r, n) { return r.concat.apply(r, __spread$c(n)); }, [])];\n });\n });\n };\n BarSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var nodeData, datumSelection, updateRects, enterRects;\n return __generator$6(this, function (_a) {\n nodeData = opts.nodeData, datumSelection = opts.datumSelection;\n updateRects = datumSelection.setData(nodeData);\n updateRects.exit.remove();\n enterRects = updateRects.enter.append(Rect).each(function (rect) {\n rect.tag = BarSeriesNodeTag.Bar;\n });\n return [2 /*return*/, updateRects.merge(enterRects)];\n });\n });\n };\n BarSeries.prototype.updateDatumNodes = function (opts) {\n var _a, _b;\n return __awaiter$6(this, void 0, void 0, function () {\n var datumSelection, isDatumHighlighted, _c, fills, strokes, seriesFillOpacity, strokeOpacity, shadow, formatter, xKey, flipXY, _d, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _e, _f, highlightedFill, _g, highlightFillOpacity, _h, highlightedStroke, _j, highlightedDatumStrokeWidth, seriesId, _k, visibleMin, visibleMax, isZoomed, crisp;\n var _this = this;\n return __generator$6(this, function (_l) {\n datumSelection = opts.datumSelection, isDatumHighlighted = opts.isHighlight;\n _c = this, fills = _c.fills, strokes = _c.strokes, seriesFillOpacity = _c.fillOpacity, strokeOpacity = _c.strokeOpacity, shadow = _c.shadow, formatter = _c.formatter, xKey = _c.xKey, flipXY = _c.flipXY, _d = _c.highlightStyle, deprecatedFill = _d.fill, deprecatedStroke = _d.stroke, deprecatedStrokeWidth = _d.strokeWidth, _e = _d.item, _f = _e.fill, highlightedFill = _f === void 0 ? deprecatedFill : _f, _g = _e.fillOpacity, highlightFillOpacity = _g === void 0 ? seriesFillOpacity : _g, _h = _e.stroke, highlightedStroke = _h === void 0 ? deprecatedStroke : _h, _j = _e.strokeWidth, highlightedDatumStrokeWidth = _j === void 0 ? deprecatedStrokeWidth : _j, seriesId = _c.id;\n _k = __read$r((_b = (_a = this.xAxis) === null || _a === void 0 ? void 0 : _a.visibleRange, (_b !== null && _b !== void 0 ? _b : [])), 2), visibleMin = _k[0], visibleMax = _k[1];\n isZoomed = visibleMin !== 0 || visibleMax !== 1;\n crisp = !isZoomed;\n datumSelection.each(function (rect, datum) {\n var colorIndex = datum.colorIndex;\n var fill = isDatumHighlighted && highlightedFill !== undefined\n ? highlightedFill\n : fills[colorIndex % fills.length];\n var stroke = isDatumHighlighted && highlightedStroke !== undefined\n ? highlightedStroke\n : strokes[colorIndex % fills.length];\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(_this.strokeWidth, datum);\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : seriesFillOpacity;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: isDatumHighlighted,\n xKey: xKey,\n yKey: datum.yKey,\n seriesId: seriesId,\n });\n }\n rect.crisp = crisp;\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n rect.fill = (format && format.fill) || fill;\n rect.stroke = (format && format.stroke) || stroke;\n rect.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.lineDash = _this.lineDash;\n rect.lineDashOffset = _this.lineDashOffset;\n rect.fillShadow = shadow;\n // Prevent stroke from rendering for zero height columns and zero width bars.\n rect.visible = flipXY ? datum.width > 0 : datum.height > 0;\n });\n return [2 /*return*/];\n });\n });\n };\n BarSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var labelData, labelSelection, enabled, data, updateLabels, enterLabels;\n return __generator$6(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n enabled = this.label.enabled;\n data = enabled ? labelData : [];\n updateLabels = labelSelection.setData(data);\n updateLabels.exit.remove();\n enterLabels = updateLabels.enter.append(Text$1).each(function (text) {\n text.tag = BarSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents$1.None;\n });\n return [2 /*return*/, updateLabels.merge(enterLabels)];\n });\n });\n };\n BarSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var labelSelection, _a, labelEnabled, fontStyle, fontWeight, fontSize, fontFamily, color;\n return __generator$6(this, function (_b) {\n labelSelection = opts.labelSelection;\n _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n BarSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKeys = _a.yKeys, yData = _a.yData;\n var xAxis = this.getCategoryAxis();\n var yAxis = this.getValueAxis();\n var yKey = nodeDatum.yKey;\n if (!yData.length || !xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var yGroup = yData[nodeDatum.index];\n var fillIndex = 0;\n var i = 0;\n var j = 0;\n for (; j < yKeys.length; j++) {\n var stack = yKeys[j];\n i = stack.indexOf(yKey);\n if (i >= 0) {\n fillIndex += i;\n break;\n }\n fillIndex += stack.length;\n }\n var _b = this, xName = _b.xName, yNames = _b.yNames, fills = _b.fills, strokes = _b.strokes, tooltip = _b.tooltip, formatter = _b.formatter, seriesId = _b.id;\n var tooltipRenderer = tooltip.renderer;\n var datum = nodeDatum.datum;\n var yName = yNames[yKey];\n var fill = fills[fillIndex % fills.length];\n var stroke = strokes[fillIndex % fills.length];\n var strokeWidth = this.getStrokeWidth(this.strokeWidth);\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var processedYValue = yGroup[j][i];\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var title = sanitizeHtml(yName);\n var content = xString + ': ' + yString;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: false,\n xKey: xKey,\n yKey: yKey,\n seriesId: seriesId,\n });\n }\n var color = (format && format.fill) || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n processedYValue: processedYValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n BarSeries.prototype.getLegendData = function () {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yKeys = _a.yKeys, yNames = _a.yNames, cumYKeyCount = _a.cumYKeyCount, seriesItemEnabled = _a.seriesItemEnabled, hideInLegend = _a.hideInLegend, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, flipXY = _a.flipXY;\n if (!data || !data.length || !xKey || !yKeys.length) {\n return [];\n }\n var legendData = [];\n this.yKeys.forEach(function (stack, stackIndex) {\n // Column stacks should be listed in the legend in reverse order, for symmetry with the\n // vertical stack display order. Bar stacks are already consistent left-to-right with\n // the legend.\n var startLevel = flipXY ? 0 : stack.length - 1;\n var direction = flipXY ? 1 : -1;\n for (var levelIndex = startLevel, step = 0; step < stack.length; levelIndex += direction, step++) {\n var yKey = stack[levelIndex];\n if (hideInLegend.indexOf(yKey) >= 0) {\n return;\n }\n var colorIndex = cumYKeyCount[stackIndex] + levelIndex;\n legendData.push({\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: seriesItemEnabled.get(yKey) || false,\n label: {\n text: yNames[yKey] || yKey,\n },\n marker: {\n fill: fills[colorIndex % fills.length],\n stroke: strokes[colorIndex % strokes.length],\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n },\n });\n }\n });\n return legendData;\n };\n BarSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n _super.prototype.toggleSeriesItem.call(this, itemId, enabled);\n var yKeys = this.yKeys.map(function (stack) { return stack.slice(); }); // deep clone\n this.seriesItemEnabled.forEach(function (enabled, yKey) {\n if (!enabled) {\n yKeys.forEach(function (stack) {\n var index = stack.indexOf(yKey);\n if (index >= 0) {\n stack.splice(index, 1);\n }\n });\n }\n });\n var visibleStacks = [];\n yKeys.forEach(function (stack, index) {\n if (stack.length > 0) {\n visibleStacks.push(String(index));\n }\n });\n this.groupScale.domain = visibleStacks;\n this.nodeDataRefresh = true;\n };\n BarSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n BarSeries.className = 'BarSeries';\n BarSeries.type = 'bar';\n __decorate$1f([\n Validate(BOOLEAN)\n ], BarSeries.prototype, \"flipXY\", void 0);\n __decorate$1f([\n Validate(COLOR_STRING_ARRAY)\n ], BarSeries.prototype, \"fills\", void 0);\n __decorate$1f([\n Validate(COLOR_STRING_ARRAY)\n ], BarSeries.prototype, \"strokes\", void 0);\n __decorate$1f([\n Validate(NUMBER(0, 1))\n ], BarSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1f([\n Validate(NUMBER(0, 1))\n ], BarSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1f([\n Validate(OPT_LINE_DASH)\n ], BarSeries.prototype, \"lineDash\", void 0);\n __decorate$1f([\n Validate(NUMBER(0))\n ], BarSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1f([\n Validate(OPT_FUNCTION)\n ], BarSeries.prototype, \"formatter\", void 0);\n __decorate$1f([\n Validate(STRING)\n ], BarSeries.prototype, \"_xKey\", void 0);\n __decorate$1f([\n Validate(STRING)\n ], BarSeries.prototype, \"xName\", void 0);\n __decorate$1f([\n Validate(STRING_ARRAY)\n ], BarSeries.prototype, \"hideInLegend\", void 0);\n __decorate$1f([\n Validate(BOOLEAN_ARRAY)\n ], BarSeries.prototype, \"_visibles\", void 0);\n __decorate$1f([\n Validate(BOOLEAN)\n ], BarSeries.prototype, \"_grouped\", void 0);\n __decorate$1f([\n Validate(OPT_NUMBER())\n ], BarSeries.prototype, \"_normalizedTo\", void 0);\n __decorate$1f([\n Validate(NUMBER(0))\n ], BarSeries.prototype, \"strokeWidth\", void 0);\n return BarSeries;\n}(CartesianSeries));\n\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$5 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$5 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$b = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LineSeriesLabel = /** @class */ (function (_super) {\n __extends$26(LineSeriesLabel, _super);\n function LineSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1e([\n Validate(OPT_FUNCTION)\n ], LineSeriesLabel.prototype, \"formatter\", void 0);\n return LineSeriesLabel;\n}(Label$1));\nvar LineSeriesTooltip = /** @class */ (function (_super) {\n __extends$26(LineSeriesTooltip, _super);\n function LineSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n _this.format = undefined;\n return _this;\n }\n __decorate$1e([\n Validate(OPT_FUNCTION)\n ], LineSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$1e([\n Validate(OPT_STRING)\n ], LineSeriesTooltip.prototype, \"format\", void 0);\n return LineSeriesTooltip;\n}(SeriesTooltip));\nvar LineSeries = /** @class */ (function (_super) {\n __extends$26(LineSeries, _super);\n function LineSeries() {\n var _this = _super.call(this, {\n pickGroupIncludes: ['markers'],\n features: ['markers'],\n pickModes: [\n SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST,\n SeriesNodePickMode.NEAREST_NODE,\n SeriesNodePickMode.EXACT_SHAPE_MATCH,\n ],\n }) || this;\n _this.xDomain = [];\n _this.yDomain = [];\n _this.pointsData = [];\n _this.marker = new CartesianSeriesMarker();\n _this.label = new LineSeriesLabel();\n _this.title = undefined;\n _this.stroke = '#874349';\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.strokeWidth = 2;\n _this.strokeOpacity = 1;\n _this.tooltip = new LineSeriesTooltip();\n _this._xKey = '';\n _this.xName = '';\n _this._yKey = '';\n _this.yName = '';\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.fill = '#c16068';\n marker.stroke = '#874349';\n label.enabled = false;\n return _this;\n }\n LineSeries.prototype.setColors = function (fills, strokes) {\n this.stroke = fills[0];\n this.marker.stroke = strokes[0];\n this.marker.fill = fills[0];\n };\n Object.defineProperty(LineSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n this._xKey = value;\n this.pointsData.splice(0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LineSeries.prototype, \"yKey\", {\n get: function () {\n return this._yKey;\n },\n set: function (value) {\n this._yKey = value;\n this.pointsData.splice(0);\n },\n enumerable: true,\n configurable: true\n });\n LineSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n return this.yDomain;\n };\n LineSeries.prototype.processData = function () {\n return __awaiter$5(this, void 0, void 0, function () {\n var _a, xAxis, yAxis, xKey, yKey, pointsData, data, isContinuousX, isContinuousY, xData, yData, data_1, data_1_1, datum, x, y, xDatum, yDatum;\n var e_1, _b;\n return __generator$5(this, function (_c) {\n _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis, xKey = _a.xKey, yKey = _a.yKey, pointsData = _a.pointsData;\n data = xKey && yKey && this.data ? this.data : [];\n if (!xAxis || !yAxis) {\n return [2 /*return*/];\n }\n isContinuousX = xAxis.scale instanceof ContinuousScale$1;\n isContinuousY = yAxis.scale instanceof ContinuousScale$1;\n xData = [];\n yData = [];\n pointsData.splice(0);\n try {\n for (data_1 = __values$b(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n datum = data_1_1.value;\n x = datum[xKey];\n y = datum[yKey];\n xDatum = checkDatum(x, isContinuousX);\n if (isContinuousX && xDatum === undefined) {\n continue;\n }\n yDatum = checkDatum(y, isContinuousY);\n xData.push(xDatum);\n yData.push(yDatum);\n pointsData.push({\n xDatum: xDatum,\n yDatum: yDatum,\n datum: datum,\n });\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_b = data_1.return)) _b.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.xDomain = isContinuousX ? this.fixNumericExtent(extent$1(xData, isContinuous$1), xAxis) : xData;\n this.yDomain = isContinuousY ? this.fixNumericExtent(extent$1(yData, isContinuous$1), yAxis) : yData;\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.createNodeData = function () {\n var _a;\n return __awaiter$5(this, void 0, void 0, function () {\n var _b, data, xAxis, yAxis, _c, markerEnabled, markerSize, strokeWidth, _d, pointsData, label, yKey, seriesId, xScale, yScale, xOffset, yOffset, nodeData, size, moveTo, prevXInRange, nextPoint, actualLength, i, point, xDatum, yDatum, datum, x, tolerance, xInRange, nextXInRange, y, labelText;\n return __generator$5(this, function (_e) {\n _b = this, data = _b.data, xAxis = _b.xAxis, yAxis = _b.yAxis, _c = _b.marker, markerEnabled = _c.enabled, markerSize = _c.size, strokeWidth = _c.strokeWidth;\n if (!data || !xAxis || !yAxis) {\n return [2 /*return*/, []];\n }\n _d = this, pointsData = _d.pointsData, label = _d.label, yKey = _d.yKey, seriesId = _d.id;\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n xOffset = (xScale.bandwidth || 0) / 2;\n yOffset = (yScale.bandwidth || 0) / 2;\n nodeData = new Array(data.length);\n size = markerEnabled ? markerSize : 0;\n moveTo = true;\n prevXInRange = undefined;\n nextPoint = undefined;\n actualLength = 0;\n for (i = 0; i < pointsData.length; i++) {\n point = nextPoint || pointsData[i];\n if (point.yDatum === undefined) {\n prevXInRange = undefined;\n moveTo = true;\n }\n else {\n xDatum = point.xDatum, yDatum = point.yDatum, datum = point.datum;\n x = xScale.convert(xDatum) + xOffset;\n if (isNaN(x)) {\n prevXInRange = undefined;\n moveTo = true;\n continue;\n }\n tolerance = (xScale.bandwidth || markerSize * 0.5 + (strokeWidth || 0)) + 1;\n nextPoint = ((_a = pointsData[i + 1]) === null || _a === void 0 ? void 0 : _a.yDatum) === undefined ? undefined : pointsData[i + 1];\n xInRange = xAxis.inRangeEx(x, 0, tolerance);\n nextXInRange = nextPoint && xAxis.inRangeEx(xScale.convert(nextPoint.xDatum) + xOffset, 0, tolerance);\n if (xInRange === -1 && nextXInRange === -1) {\n moveTo = true;\n continue;\n }\n if (xInRange === 1 && prevXInRange === 1) {\n moveTo = true;\n continue;\n }\n prevXInRange = xInRange;\n y = yScale.convert(yDatum) + yOffset;\n labelText = void 0;\n if (label.formatter) {\n labelText = label.formatter({ value: yDatum, seriesId: seriesId });\n }\n else {\n labelText =\n typeof yDatum === 'number' && isFinite(yDatum)\n ? yDatum.toFixed(2)\n : yDatum\n ? String(yDatum)\n : '';\n }\n nodeData[actualLength++] = {\n series: this,\n datum: datum,\n point: { x: x, y: y, moveTo: moveTo, size: size },\n label: labelText\n ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color,\n }\n : undefined,\n };\n moveTo = false;\n }\n }\n nodeData.length = actualLength;\n return [2 /*return*/, [{ itemId: yKey, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n LineSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n LineSeries.prototype.updatePaths = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var nodeData, _a, lineNode, linePath, nodeData_1, nodeData_1_1, data;\n var e_2, _b;\n return __generator$5(this, function (_c) {\n nodeData = opts.contextData.nodeData, _a = __read$q(opts.paths, 1), lineNode = _a[0];\n linePath = lineNode.path;\n lineNode.fill = undefined;\n lineNode.lineJoin = 'round';\n lineNode.pointerEvents = PointerEvents$1.None;\n linePath.clear({ trackChanges: true });\n try {\n for (nodeData_1 = __values$b(nodeData), nodeData_1_1 = nodeData_1.next(); !nodeData_1_1.done; nodeData_1_1 = nodeData_1.next()) {\n data = nodeData_1_1.value;\n if (data.point.moveTo) {\n linePath.moveTo(data.point.x, data.point.y);\n }\n else {\n linePath.lineTo(data.point.x, data.point.y);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (nodeData_1_1 && !nodeData_1_1.done && (_b = nodeData_1.return)) _b.call(nodeData_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n lineNode.checkPathDirty();\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.updatePathNodes = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var _a, lineNode;\n return __generator$5(this, function (_b) {\n _a = __read$q(opts.paths, 1), lineNode = _a[0];\n lineNode.stroke = this.stroke;\n lineNode.strokeWidth = this.getStrokeWidth(this.strokeWidth);\n lineNode.strokeOpacity = this.strokeOpacity;\n lineNode.lineDash = this.lineDash;\n lineNode.lineDashOffset = this.lineDashOffset;\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var nodeData, markerSelection, _a, shape, enabled, MarkerShape, updateMarkerSelection, enterDatumSelection;\n return __generator$5(this, function (_b) {\n nodeData = opts.nodeData, markerSelection = opts.markerSelection;\n _a = this.marker, shape = _a.shape, enabled = _a.enabled;\n nodeData = shape && enabled ? nodeData : [];\n MarkerShape = getMarker$1(shape);\n if (this.marker.isDirty()) {\n markerSelection = markerSelection.setData([]);\n markerSelection.exit.remove();\n }\n updateMarkerSelection = markerSelection.setData(nodeData);\n updateMarkerSelection.exit.remove();\n enterDatumSelection = updateMarkerSelection.enter.append(MarkerShape);\n return [2 /*return*/, updateMarkerSelection.merge(enterDatumSelection)];\n });\n });\n };\n LineSeries.prototype.updateMarkerNodes = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _a, marker, markerFillOpacity, xKey, yKey, lineStroke, strokeOpacity, _b, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _c, _d, highlightedFill, _e, highlightFillOpacity, _f, highlightedStroke, _g, highlightedDatumStrokeWidth, seriesId, size, formatter, markerStrokeWidth;\n return __generator$5(this, function (_h) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, marker = _a.marker, markerFillOpacity = _a.marker.fillOpacity, xKey = _a.xKey, yKey = _a.yKey, lineStroke = _a.stroke, strokeOpacity = _a.strokeOpacity, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.fillOpacity, highlightFillOpacity = _e === void 0 ? markerFillOpacity : _e, _f = _c.stroke, highlightedStroke = _f === void 0 ? deprecatedStroke : _f, _g = _c.strokeWidth, highlightedDatumStrokeWidth = _g === void 0 ? deprecatedStrokeWidth : _g, seriesId = _a.id;\n size = marker.size, formatter = marker.formatter;\n markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : this.strokeWidth;\n markerSelection.each(function (node, datum) {\n var _a, _b;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke || lineStroke;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (format && format.fill) || fill;\n node.stroke = (format && format.stroke) || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n node.fillOpacity = (fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1);\n node.strokeOpacity = (_b = (_a = marker.strokeOpacity, (_a !== null && _a !== void 0 ? _a : strokeOpacity)), (_b !== null && _b !== void 0 ? _b : 1));\n node.size = format && format.size !== undefined ? format.size : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.visible = node.size > 0 && !isNaN(datum.point.x) && !isNaN(datum.point.y);\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var labelData, labelSelection, _a, shape, enabled, updateTextSelection, enterTextSelection;\n return __generator$5(this, function (_b) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n _a = this.marker, shape = _a.shape, enabled = _a.enabled;\n labelData = shape && enabled ? labelData : [];\n updateTextSelection = labelSelection.setData(labelData);\n updateTextSelection.exit.remove();\n enterTextSelection = updateTextSelection.enter.append(Text$1);\n return [2 /*return*/, updateTextSelection.merge(enterTextSelection)];\n });\n });\n };\n LineSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var labelSelection, _a, labelEnabled, fontStyle, fontWeight, fontSize, fontFamily, color;\n return __generator$5(this, function (_b) {\n labelSelection = opts.labelSelection;\n _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n labelSelection.each(function (text, datum) {\n var point = datum.point, label = datum.label;\n if (datum && label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new CartesianSeriesNodeClickEvent(this.xKey, this.yKey, event, datum, this);\n };\n LineSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _b = this, xName = _b.xName, yName = _b.yName, tooltip = _b.tooltip, marker = _b.marker, seriesId = _b.id;\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var title = sanitizeHtml(this.title || yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var markerFormatter = marker.formatter, fill = marker.fill, stroke = marker.stroke, markerStrokeWidth = marker.strokeWidth, size = marker.size;\n var strokeWidth = markerStrokeWidth !== undefined ? markerStrokeWidth : this.strokeWidth;\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (format && format.fill) || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n title: title,\n color: color,\n seriesId: seriesId,\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params),\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n LineSeries.prototype.getLegendData = function () {\n var _a, _b, _c;\n var _d = this, id = _d.id, data = _d.data, xKey = _d.xKey, yKey = _d.yKey, yName = _d.yName, visible = _d.visible, title = _d.title, marker = _d.marker, stroke = _d.stroke, strokeOpacity = _d.strokeOpacity;\n if (!(data && data.length && xKey && yKey)) {\n return [];\n }\n return [\n {\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: title || yName || yKey,\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || 'rgba(0, 0, 0, 0)',\n stroke: marker.stroke || stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: (_a = marker.fillOpacity, (_a !== null && _a !== void 0 ? _a : 1)),\n strokeOpacity: (_c = (_b = marker.strokeOpacity, (_b !== null && _b !== void 0 ? _b : strokeOpacity)), (_c !== null && _c !== void 0 ? _c : 1)),\n },\n },\n ];\n };\n LineSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n LineSeries.className = 'LineSeries';\n LineSeries.type = 'line';\n __decorate$1e([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"title\", void 0);\n __decorate$1e([\n Validate(OPT_COLOR_STRING)\n ], LineSeries.prototype, \"stroke\", void 0);\n __decorate$1e([\n Validate(OPT_LINE_DASH)\n ], LineSeries.prototype, \"lineDash\", void 0);\n __decorate$1e([\n Validate(NUMBER(0))\n ], LineSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1e([\n Validate(NUMBER(0))\n ], LineSeries.prototype, \"strokeWidth\", void 0);\n __decorate$1e([\n Validate(NUMBER(0, 1))\n ], LineSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1e([\n Validate(STRING)\n ], LineSeries.prototype, \"_xKey\", void 0);\n __decorate$1e([\n Validate(STRING)\n ], LineSeries.prototype, \"xName\", void 0);\n __decorate$1e([\n Validate(STRING)\n ], LineSeries.prototype, \"_yKey\", void 0);\n __decorate$1e([\n Validate(STRING)\n ], LineSeries.prototype, \"yName\", void 0);\n return LineSeries;\n}(CartesianSeries));\n\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$u = (undefined && undefined.__assign) || function () {\n __assign$u = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$u.apply(this, arguments);\n};\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$4 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$4 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar ScatterSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$25(ScatterSeriesNodeClickEvent, _super);\n function ScatterSeriesNodeClickEvent(sizeKey, xKey, yKey, nativeEvent, datum, series) {\n var _this = _super.call(this, xKey, yKey, nativeEvent, datum, series) || this;\n _this.sizeKey = sizeKey;\n return _this;\n }\n return ScatterSeriesNodeClickEvent;\n}(CartesianSeriesNodeClickEvent));\nvar ScatterSeriesTooltip = /** @class */ (function (_super) {\n __extends$25(ScatterSeriesTooltip, _super);\n function ScatterSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1d([\n Validate(OPT_FUNCTION)\n ], ScatterSeriesTooltip.prototype, \"renderer\", void 0);\n return ScatterSeriesTooltip;\n}(SeriesTooltip));\nvar ScatterSeries = /** @class */ (function (_super) {\n __extends$25(ScatterSeries, _super);\n function ScatterSeries() {\n var _this = _super.call(this, {\n pickGroupIncludes: ['markers'],\n pickModes: [\n SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST,\n SeriesNodePickMode.NEAREST_NODE,\n SeriesNodePickMode.EXACT_SHAPE_MATCH,\n ],\n pathsPerSeries: 0,\n features: ['markers'],\n }) || this;\n _this.xDomain = [];\n _this.yDomain = [];\n _this.xData = [];\n _this.yData = [];\n _this.validData = [];\n _this.sizeData = [];\n _this.sizeScale = new LinearScale$1();\n _this.marker = new CartesianSeriesMarker();\n _this.label = new Label$1();\n /**\n * @deprecated Use {@link marker.fill} instead.\n */\n _this.fill = '#c16068';\n /**\n * @deprecated Use {@link marker.stroke} instead.\n */\n _this.stroke = '#874349';\n /**\n * @deprecated Use {@link marker.strokeWidth} instead.\n */\n _this.strokeWidth = 2;\n /**\n * @deprecated Use {@link marker.fillOpacity} instead.\n */\n _this.fillOpacity = 1;\n /**\n * @deprecated Use {@link marker.strokeOpacity} instead.\n */\n _this.strokeOpacity = 1;\n _this.title = undefined;\n _this.labelKey = undefined;\n _this.xName = '';\n _this.yName = '';\n _this.sizeName = 'Size';\n _this.labelName = 'Label';\n _this._xKey = '';\n _this._yKey = '';\n _this._sizeKey = undefined;\n _this.tooltip = new ScatterSeriesTooltip();\n var label = _this.label;\n label.enabled = false;\n return _this;\n }\n Object.defineProperty(ScatterSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n this._xKey = value;\n this.xData = [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"yKey\", {\n get: function () {\n return this._yKey;\n },\n set: function (value) {\n this._yKey = value;\n this.yData = [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"sizeKey\", {\n get: function () {\n return this._sizeKey;\n },\n set: function (value) {\n this._sizeKey = value;\n this.sizeData = [];\n },\n enumerable: true,\n configurable: true\n });\n ScatterSeries.prototype.setColors = function (fills, strokes) {\n this.marker.fill = fills[0];\n this.marker.stroke = strokes[0];\n };\n ScatterSeries.prototype.processData = function () {\n return __awaiter$4(this, void 0, void 0, function () {\n var _a, xKey, yKey, sizeKey, xAxis, yAxis, marker, data, xScale, yScale, isContinuousX, isContinuousY;\n return __generator$4(this, function (_b) {\n _a = this, xKey = _a.xKey, yKey = _a.yKey, sizeKey = _a.sizeKey, xAxis = _a.xAxis, yAxis = _a.yAxis, marker = _a.marker;\n if (!xAxis || !yAxis) {\n return [2 /*return*/];\n }\n data = xKey && yKey && this.data ? this.data : [];\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n isContinuousX = xScale instanceof ContinuousScale$1;\n isContinuousY = yScale instanceof ContinuousScale$1;\n this.validData = data.filter(function (d) { return checkDatum(d[xKey], isContinuousX) !== undefined && checkDatum(d[yKey], isContinuousY) !== undefined; });\n this.xData = this.validData.map(function (d) { return d[xKey]; });\n this.yData = this.validData.map(function (d) { return d[yKey]; });\n this.sizeData = sizeKey ? this.validData.map(function (d) { return d[sizeKey]; }) : [];\n this.sizeScale.domain = marker.domain ? marker.domain : extent$1(this.sizeData, isContinuous$1) || [1, 1];\n if (xAxis.scale instanceof ContinuousScale$1) {\n this.xDomain = this.fixNumericExtent(extent$1(this.xData, isContinuous$1), xAxis);\n }\n else {\n this.xDomain = this.xData;\n }\n if (yAxis.scale instanceof ContinuousScale$1) {\n this.yDomain = this.fixNumericExtent(extent$1(this.yData, isContinuous$1), yAxis);\n }\n else {\n this.yDomain = this.yData;\n }\n return [2 /*return*/];\n });\n });\n };\n ScatterSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n ScatterSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new ScatterSeriesNodeClickEvent(this.sizeKey, this.xKey, this.yKey, event, datum, this);\n };\n ScatterSeries.prototype.createNodeData = function () {\n return __awaiter$4(this, void 0, void 0, function () {\n var _a, chart, data, visible, xAxis, yAxis, yKey, label, labelKey, xScale, yScale, isContinuousX, isContinuousY, xOffset, yOffset, _b, xData, yData, validData, sizeData, sizeScale, marker, nodeData, font, actualLength, i, xy, x, y, text, size, markerSize;\n return __generator$4(this, function (_c) {\n _a = this, chart = _a.chart, data = _a.data, visible = _a.visible, xAxis = _a.xAxis, yAxis = _a.yAxis, yKey = _a.yKey, label = _a.label, labelKey = _a.labelKey;\n if (!(chart && data && visible && xAxis && yAxis)) {\n return [2 /*return*/, []];\n }\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n isContinuousX = xScale instanceof ContinuousScale$1;\n isContinuousY = yScale instanceof ContinuousScale$1;\n xOffset = (xScale.bandwidth || 0) / 2;\n yOffset = (yScale.bandwidth || 0) / 2;\n _b = this, xData = _b.xData, yData = _b.yData, validData = _b.validData, sizeData = _b.sizeData, sizeScale = _b.sizeScale, marker = _b.marker;\n nodeData = new Array(xData.length);\n sizeScale.range = [marker.size, marker.maxSize];\n font = label.getFont();\n actualLength = 0;\n for (i = 0; i < xData.length; i++) {\n xy = this.checkDomainXY(xData[i], yData[i], isContinuousX, isContinuousY);\n if (!xy) {\n continue;\n }\n x = xScale.convert(xy[0]) + xOffset;\n y = yScale.convert(xy[1]) + yOffset;\n if (!this.checkRangeXY(x, y, xAxis, yAxis)) {\n continue;\n }\n text = labelKey ? String(validData[i][labelKey]) : '';\n size = HdpiCanvas$1.getTextSize(text, font);\n markerSize = sizeData.length ? sizeScale.convert(sizeData[i]) : marker.size;\n nodeData[actualLength++] = {\n series: this,\n itemId: yKey,\n datum: validData[i],\n point: { x: x, y: y, size: markerSize },\n label: __assign$u({ text: text }, size),\n };\n }\n nodeData.length = actualLength;\n return [2 /*return*/, [{ itemId: this.yKey, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n ScatterSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n ScatterSeries.prototype.getLabelData = function () {\n var _a;\n return (_a = this.contextNodeData) === null || _a === void 0 ? void 0 : _a.reduce(function (r, n) { return r.concat(n.labelData); }, []);\n };\n ScatterSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var nodeData, markerSelection, _a, enabled, shape, MarkerShape, data, updateMarkers, enterMarkers;\n return __generator$4(this, function (_b) {\n nodeData = opts.nodeData, markerSelection = opts.markerSelection;\n _a = this.marker, enabled = _a.enabled, shape = _a.shape;\n MarkerShape = getMarker$1(shape);\n if (this.marker.isDirty()) {\n markerSelection = markerSelection.setData([]);\n markerSelection.exit.remove();\n }\n data = enabled ? nodeData : [];\n updateMarkers = markerSelection.setData(data);\n updateMarkers.exit.remove();\n enterMarkers = updateMarkers.enter.append(MarkerShape);\n return [2 /*return*/, updateMarkers.merge(enterMarkers)];\n });\n });\n };\n ScatterSeries.prototype.updateMarkerNodes = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _a, marker, xKey, yKey, strokeWidth, seriesFillOpacity, seriesStrokeOpacity, seriesFill, seriesStroke, sizeScale, _b, _c, markerFillOpacity, _d, markerStrokeOpacity, _e, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _f, _g, highlightedFill, _h, highlightFillOpacity, _j, highlightedStroke, _k, highlightedDatumStrokeWidth, seriesId, markerStrokeWidth, formatter;\n return __generator$4(this, function (_l) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, marker = _a.marker, xKey = _a.xKey, yKey = _a.yKey, strokeWidth = _a.strokeWidth, seriesFillOpacity = _a.fillOpacity, seriesStrokeOpacity = _a.strokeOpacity, seriesFill = _a.fill, seriesStroke = _a.stroke, sizeScale = _a.sizeScale, _b = _a.marker, _c = _b.fillOpacity, markerFillOpacity = _c === void 0 ? seriesFillOpacity : _c, _d = _b.strokeOpacity, markerStrokeOpacity = _d === void 0 ? seriesStrokeOpacity : _d, _e = _a.highlightStyle, deprecatedFill = _e.fill, deprecatedStroke = _e.stroke, deprecatedStrokeWidth = _e.strokeWidth, _f = _e.item, _g = _f.fill, highlightedFill = _g === void 0 ? deprecatedFill : _g, _h = _f.fillOpacity, highlightFillOpacity = _h === void 0 ? markerFillOpacity : _h, _j = _f.stroke, highlightedStroke = _j === void 0 ? deprecatedStroke : _j, _k = _f.strokeWidth, highlightedDatumStrokeWidth = _k === void 0 ? deprecatedStrokeWidth : _k, seriesId = _a.id;\n markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : strokeWidth;\n formatter = marker.formatter;\n sizeScale.range = [marker.size, marker.maxSize];\n markerSelection.each(function (node, datum) {\n var _a, _b, _c, _d, _e, _f;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill || seriesFill;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined\n ? highlightedStroke\n : marker.stroke || seriesStroke;\n var strokeOpacity = markerStrokeOpacity;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size, (_b !== null && _b !== void 0 ? _b : 0));\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (format && format.fill) || fill;\n node.stroke = (format && format.stroke) || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n node.size = format && format.size !== undefined ? format.size : size;\n node.fillOpacity = (fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1);\n node.strokeOpacity = (strokeOpacity !== null && strokeOpacity !== void 0 ? strokeOpacity : 1);\n node.translationX = (_d = (_c = datum.point) === null || _c === void 0 ? void 0 : _c.x, (_d !== null && _d !== void 0 ? _d : 0));\n node.translationY = (_f = (_e = datum.point) === null || _e === void 0 ? void 0 : _e.y, (_f !== null && _f !== void 0 ? _f : 0));\n node.visible = node.size > 0;\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n ScatterSeries.prototype.updateLabelSelection = function (opts) {\n var _a, _b;\n return __awaiter$4(this, void 0, void 0, function () {\n var labelSelection, enabled, placedLabels, placedNodeDatum, updateLabels, enterLabels;\n return __generator$4(this, function (_c) {\n labelSelection = opts.labelSelection;\n enabled = this.label.enabled;\n placedLabels = enabled ? (_b = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.placeLabels().get(this), (_b !== null && _b !== void 0 ? _b : [])) : [];\n placedNodeDatum = placedLabels.map(function (v) { return (__assign$u(__assign$u({}, v.datum), { point: {\n x: v.x,\n y: v.y,\n size: v.datum.point.size,\n } })); });\n updateLabels = labelSelection.setData(placedNodeDatum);\n updateLabels.exit.remove();\n enterLabels = updateLabels.enter.append(Text$1);\n return [2 /*return*/, updateLabels.merge(enterLabels)];\n });\n });\n };\n ScatterSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var labelSelection, label;\n return __generator$4(this, function (_a) {\n labelSelection = opts.labelSelection;\n label = this.label;\n labelSelection.each(function (text, datum) {\n var _a, _b, _c, _d;\n text.text = datum.label.text;\n text.fill = label.color;\n text.x = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.x, (_b !== null && _b !== void 0 ? _b : 0));\n text.y = (_d = (_c = datum.point) === null || _c === void 0 ? void 0 : _c.y, (_d !== null && _d !== void 0 ? _d : 0));\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textAlign = 'left';\n text.textBaseline = 'top';\n });\n return [2 /*return*/];\n });\n });\n };\n ScatterSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a, _b, _c, _d;\n var _e = this, xKey = _e.xKey, yKey = _e.yKey, xAxis = _e.xAxis, yAxis = _e.yAxis;\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _f = this, seriesFill = _f.fill, seriesStroke = _f.stroke, marker = _f.marker, tooltip = _f.tooltip, xName = _f.xName, yName = _f.yName, sizeKey = _f.sizeKey, sizeName = _f.sizeName, labelKey = _f.labelKey, labelName = _f.labelName, seriesId = _f.id;\n var fill = (_a = marker.fill, (_a !== null && _a !== void 0 ? _a : seriesFill));\n var stroke = (_b = marker.stroke, (_b !== null && _b !== void 0 ? _b : seriesStroke));\n var strokeWidth = this.getStrokeWidth(marker.strokeWidth || this.strokeWidth);\n var formatter = this.marker.formatter;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: nodeDatum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: (_d = (_c = nodeDatum.point) === null || _c === void 0 ? void 0 : _c.size, (_d !== null && _d !== void 0 ? _d : 0)),\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (format && format.fill) || fill || 'gray';\n var title = this.title || yName;\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var content = \"\" + sanitizeHtml(xName || xKey) + \": \" + xString + \"
\" +\n (\"\" + sanitizeHtml(yName || yKey) + \": \" + yString);\n if (sizeKey) {\n content += \"
\" + sanitizeHtml(sizeName || sizeKey) + \": \" + sanitizeHtml(datum[sizeKey]);\n }\n if (labelKey) {\n content = \"\" + sanitizeHtml(labelName || labelKey) + \": \" + sanitizeHtml(datum[labelKey]) + \"
\" + content;\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n var tooltipRenderer = tooltip.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n sizeKey: sizeKey,\n sizeName: sizeName,\n labelKey: labelKey,\n labelName: labelName,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n ScatterSeries.prototype.getLegendData = function () {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yKey = _a.yKey, yName = _a.yName, title = _a.title, visible = _a.visible, marker = _a.marker, fill = _a.fill, stroke = _a.stroke, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (!(data && data.length && xKey && yKey)) {\n return [];\n }\n return [\n {\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: title || yName || yKey,\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || fill || 'rgba(0, 0, 0, 0)',\n stroke: marker.stroke || stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: marker.fillOpacity !== undefined ? marker.fillOpacity : fillOpacity,\n strokeOpacity: marker.strokeOpacity !== undefined ? marker.strokeOpacity : strokeOpacity,\n },\n },\n ];\n };\n ScatterSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n ScatterSeries.className = 'ScatterSeries';\n ScatterSeries.type = 'scatter';\n __decorate$1d([\n Deprecated('Use marker.fill instead.', { default: '#c16068' })\n ], ScatterSeries.prototype, \"fill\", void 0);\n __decorate$1d([\n Deprecated('Use marker.stroke instead.', { default: '#874349' })\n ], ScatterSeries.prototype, \"stroke\", void 0);\n __decorate$1d([\n Deprecated('Use marker.strokeWidth instead.', { default: 2 })\n ], ScatterSeries.prototype, \"strokeWidth\", void 0);\n __decorate$1d([\n Deprecated('Use marker.fillOpacity instead.', { default: 1 })\n ], ScatterSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1d([\n Deprecated('Use marker.strokeOpacity instead.', { default: 1 })\n ], ScatterSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1d([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"title\", void 0);\n __decorate$1d([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"labelKey\", void 0);\n __decorate$1d([\n Validate(STRING)\n ], ScatterSeries.prototype, \"xName\", void 0);\n __decorate$1d([\n Validate(STRING)\n ], ScatterSeries.prototype, \"yName\", void 0);\n __decorate$1d([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"sizeName\", void 0);\n __decorate$1d([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"labelName\", void 0);\n __decorate$1d([\n Validate(STRING)\n ], ScatterSeries.prototype, \"_xKey\", void 0);\n __decorate$1d([\n Validate(STRING)\n ], ScatterSeries.prototype, \"_yKey\", void 0);\n __decorate$1d([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"_sizeKey\", void 0);\n return ScatterSeries;\n}(CartesianSeries));\n\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$3 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$3 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$b = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$p(arguments[i]));\n return ar;\n};\nvar HISTOGRAM_AGGREGATIONS = ['count', 'sum', 'mean'];\nvar HISTOGRAM_AGGREGATION = predicateWithMessage(function (v) { return HISTOGRAM_AGGREGATIONS.includes(v); }, \"expecting a histogram aggregation keyword such as 'count', 'sum' or 'mean\");\nvar HistogramSeriesNodeTag;\n(function (HistogramSeriesNodeTag) {\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Bin\"] = 0] = \"Bin\";\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(HistogramSeriesNodeTag || (HistogramSeriesNodeTag = {}));\nvar HistogramSeriesLabel = /** @class */ (function (_super) {\n __extends$24(HistogramSeriesLabel, _super);\n function HistogramSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1c([\n Validate(OPT_FUNCTION)\n ], HistogramSeriesLabel.prototype, \"formatter\", void 0);\n return HistogramSeriesLabel;\n}(Label$1));\nvar defaultBinCount = 10;\nvar aggregationFunctions = {\n count: function (bin) { return bin.data.length; },\n sum: function (bin, yKey) { return bin.data.reduce(function (acc, datum) { return acc + datum[yKey]; }, 0); },\n mean: function (bin, yKey) { return aggregationFunctions.sum(bin, yKey) / aggregationFunctions.count(bin, yKey); },\n};\nvar HistogramBin = /** @class */ (function () {\n function HistogramBin(_a) {\n var _b = __read$p(_a, 2), domainMin = _b[0], domainMax = _b[1];\n this.data = [];\n this.aggregatedValue = 0;\n this.frequency = 0;\n this.domain = [domainMin, domainMax];\n }\n HistogramBin.prototype.addDatum = function (datum) {\n this.data.push(datum);\n this.frequency++;\n };\n Object.defineProperty(HistogramBin.prototype, \"domainWidth\", {\n get: function () {\n var _a = __read$p(this.domain, 2), domainMin = _a[0], domainMax = _a[1];\n return domainMax - domainMin;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramBin.prototype, \"relativeHeight\", {\n get: function () {\n return this.aggregatedValue / this.domainWidth;\n },\n enumerable: true,\n configurable: true\n });\n HistogramBin.prototype.calculateAggregatedValue = function (aggregationName, yKey) {\n if (!yKey) {\n // not having a yKey forces us into a frequency plot\n aggregationName = 'count';\n }\n var aggregationFunction = aggregationFunctions[aggregationName];\n this.aggregatedValue = aggregationFunction(this, yKey);\n };\n HistogramBin.prototype.getY = function (areaPlot) {\n return areaPlot ? this.relativeHeight : this.aggregatedValue;\n };\n return HistogramBin;\n}());\nvar HistogramSeriesTooltip = /** @class */ (function (_super) {\n __extends$24(HistogramSeriesTooltip, _super);\n function HistogramSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1c([\n Validate(OPT_FUNCTION)\n ], HistogramSeriesTooltip.prototype, \"renderer\", void 0);\n return HistogramSeriesTooltip;\n}(SeriesTooltip));\nvar HistogramSeries = /** @class */ (function (_super) {\n __extends$24(HistogramSeries, _super);\n function HistogramSeries() {\n var _a;\n var _this = _super.call(this, { pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH] }) || this;\n _this.binnedData = [];\n _this.xDomain = [];\n _this.yDomain = [];\n _this.label = new HistogramSeriesLabel();\n _this.tooltip = new HistogramSeriesTooltip();\n _this.fill = undefined;\n _this.stroke = undefined;\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKey'],\n _a);\n _this.xKey = '';\n _this.areaPlot = false;\n _this.bins = undefined;\n _this.aggregation = 'count';\n _this.binCount = undefined;\n _this.xName = '';\n _this.yKey = '';\n _this.yName = '';\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.label.enabled = false;\n return _this;\n }\n HistogramSeries.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values.push.apply(values, __spread$b(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n HistogramSeries.prototype.setColors = function (fills, strokes) {\n this.fill = fills[0];\n this.stroke = strokes[0];\n };\n // During processData phase, used to unify different ways of the user specifying\n // the bins. Returns bins in format[[min1, max1], [min2, max2], ... ].\n HistogramSeries.prototype.deriveBins = function () {\n var _this = this;\n var bins = this.bins;\n if (!this.data) {\n return [];\n }\n var xData = this.data.map(function (datum) { return datum[_this.xKey]; });\n var xDomain = this.fixNumericExtent(extent$1(xData, isContinuous$1));\n if (this.binCount === undefined) {\n if (bins) {\n return bins;\n }\n var binStarts = ticks$1(xDomain[0], xDomain[1], defaultBinCount);\n var binSize_1 = tickStep$1(xDomain[0], xDomain[1], defaultBinCount);\n var firstBinEnd = binStarts[0];\n var expandStartToBin = function (n) { return [n, n + binSize_1]; };\n return __spread$b([[firstBinEnd - binSize_1, firstBinEnd]], binStarts.map(expandStartToBin));\n }\n else {\n return this.calculateNiceBins(xDomain, this.binCount);\n }\n };\n HistogramSeries.prototype.calculateNiceBins = function (domain, binCount) {\n var _a;\n var start = Math.floor(domain[0]);\n var stop = domain[1];\n var binSize;\n var segments = binCount || 1;\n (_a = this.calculateNiceStart(start, stop, segments), start = _a.start, binSize = _a.binSize);\n return this.getBins(start, stop, binSize, segments);\n };\n HistogramSeries.prototype.getBins = function (start, stop, step, count) {\n var bins = [];\n for (var i = 0; i < count; i++) {\n var a = Math.round((start + i * step) * 10) / 10;\n var b = Math.round((start + (i + 1) * step) * 10) / 10;\n if (i === count - 1) {\n b = Math.max(b, stop);\n }\n bins[i] = [a, b];\n }\n return bins;\n };\n HistogramSeries.prototype.calculateNiceStart = function (a, b, segments) {\n var binSize = Math.abs(b - a) / segments;\n var order = Math.floor(Math.log10(binSize));\n var magnitude = Math.pow(10, order);\n var start = Math.floor(a / magnitude) * magnitude;\n return {\n start: start,\n binSize: binSize,\n };\n };\n HistogramSeries.prototype.placeDataInBins = function (data) {\n var _this = this;\n var xKey = this.xKey;\n var derivedBins = this.deriveBins();\n this.bins = derivedBins;\n // creating a sorted copy allows binning in O(n) rather than O(n²)\n // but at the expense of more temporary memory\n var sortedData = data.slice().sort(function (a, b) {\n if (a[xKey] < b[xKey]) {\n return -1;\n }\n if (a[xKey] > b[xKey]) {\n return 1;\n }\n return 0;\n });\n var bins = [new HistogramBin(derivedBins[0])];\n var currentBin = 0;\n for (var i = 0; i < sortedData.length && currentBin < derivedBins.length; i++) {\n var datum = sortedData[i];\n while (datum[xKey] > derivedBins[currentBin][1] && currentBin < derivedBins.length) {\n currentBin++;\n bins.push(new HistogramBin(derivedBins[currentBin]));\n }\n if (currentBin < derivedBins.length) {\n bins[currentBin].addDatum(datum);\n }\n }\n bins.forEach(function (b) { return b.calculateAggregatedValue(_this.aggregation, _this.yKey); });\n return bins;\n };\n Object.defineProperty(HistogramSeries.prototype, \"xMax\", {\n get: function () {\n var _this = this;\n return (this.data &&\n this.data.reduce(function (acc, datum) {\n return Math.max(acc, datum[_this.xKey]);\n }, Number.NEGATIVE_INFINITY));\n },\n enumerable: true,\n configurable: true\n });\n HistogramSeries.prototype.processData = function () {\n return __awaiter$3(this, void 0, void 0, function () {\n var _a, xKey, data, yData, yMinMax, firstBin, lastBin, xMin, xMax;\n var _this = this;\n return __generator$3(this, function (_b) {\n _a = this, xKey = _a.xKey, data = _a.data;\n this.binnedData = this.placeDataInBins(xKey && data ? data : []);\n yData = this.binnedData.map(function (b) { return b.getY(_this.areaPlot); });\n yMinMax = extent$1(yData, isContinuous$1);\n this.yDomain = this.fixNumericExtent([0, yMinMax ? yMinMax[1] : 1]);\n firstBin = this.binnedData[0];\n lastBin = this.binnedData[this.binnedData.length - 1];\n xMin = firstBin.domain[0];\n xMax = lastBin.domain[1];\n this.xDomain = [xMin, xMax];\n return [2 /*return*/];\n });\n });\n };\n HistogramSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n HistogramSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new CartesianSeriesNodeClickEvent(this.xKey, this.yKey, event, datum, this);\n };\n HistogramSeries.prototype.createNodeData = function () {\n return __awaiter$3(this, void 0, void 0, function () {\n var _a, xAxis, yAxis, xScale, yScale, _b, fill, stroke, strokeWidth, seriesId, nodeData, defaultLabelFormatter, _c, _d, labelFormatter, labelFontStyle, labelFontWeight, labelFontSize, labelFontFamily, labelColor;\n var _this = this;\n return __generator$3(this, function (_e) {\n _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!this.seriesItemEnabled || !xAxis || !yAxis) {\n return [2 /*return*/, []];\n }\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n _b = this, fill = _b.fill, stroke = _b.stroke, strokeWidth = _b.strokeWidth, seriesId = _b.id;\n nodeData = [];\n defaultLabelFormatter = function (params) { return String(params.value); };\n _c = this.label, _d = _c.formatter, labelFormatter = _d === void 0 ? defaultLabelFormatter : _d, labelFontStyle = _c.fontStyle, labelFontWeight = _c.fontWeight, labelFontSize = _c.fontSize, labelFontFamily = _c.fontFamily, labelColor = _c.color;\n this.binnedData.forEach(function (binOfData) {\n var total = binOfData.aggregatedValue, frequency = binOfData.frequency, _a = __read$p(binOfData.domain, 2), xDomainMin = _a[0], xDomainMax = _a[1], relativeHeight = binOfData.relativeHeight;\n var xMinPx = xScale.convert(xDomainMin), xMaxPx = xScale.convert(xDomainMax), \n // note: assuming can't be negative:\n y = _this.areaPlot ? relativeHeight : _this.yKey ? total : frequency, yZeroPx = yScale.convert(0), yMaxPx = yScale.convert(y), w = xMaxPx - xMinPx, h = Math.abs(yMaxPx - yZeroPx);\n var selectionDatumLabel = y !== 0\n ? {\n text: labelFormatter({ value: binOfData.aggregatedValue, seriesId: seriesId }),\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n fill: labelColor,\n x: xMinPx + w / 2,\n y: yMaxPx + h / 2,\n }\n : undefined;\n nodeData.push({\n series: _this,\n datum: binOfData,\n // since each selection is an aggregation of multiple data.\n x: xMinPx,\n y: yMaxPx,\n width: w,\n height: h,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n label: selectionDatumLabel,\n });\n });\n return [2 /*return*/, [{ itemId: this.yKey, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n HistogramSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var nodeData, datumSelection, updateRects, enterRects;\n return __generator$3(this, function (_a) {\n nodeData = opts.nodeData, datumSelection = opts.datumSelection;\n updateRects = datumSelection.setData(nodeData);\n updateRects.exit.remove();\n enterRects = updateRects.enter.append(Rect).each(function (rect) {\n rect.tag = HistogramSeriesNodeTag.Bin;\n rect.crisp = true;\n });\n return [2 /*return*/, updateRects.merge(enterRects)];\n });\n });\n };\n HistogramSeries.prototype.updateDatumNodes = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var datumSelection, isDatumHighlighted, _a, seriesFillOpacity, strokeOpacity, shadow, _b, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _c, _d, highlightedFill, _e, highlightFillOpacity, _f, highlightedStroke, _g, highlightedDatumStrokeWidth;\n var _this = this;\n return __generator$3(this, function (_h) {\n datumSelection = opts.datumSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, seriesFillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, shadow = _a.shadow, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.fillOpacity, highlightFillOpacity = _e === void 0 ? seriesFillOpacity : _e, _f = _c.stroke, highlightedStroke = _f === void 0 ? deprecatedStroke : _f, _g = _c.strokeWidth, highlightedDatumStrokeWidth = _g === void 0 ? deprecatedStrokeWidth : _g;\n datumSelection.each(function (rect, datum, index) {\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : datum.strokeWidth;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : seriesFillOpacity;\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n rect.fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : datum.fill;\n rect.stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : datum.stroke;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.strokeWidth = strokeWidth;\n rect.lineDash = _this.lineDash;\n rect.lineDashOffset = _this.lineDashOffset;\n rect.fillShadow = shadow;\n rect.zIndex = isDatumHighlighted ? Series.highlightedZIndex : index;\n rect.visible = datum.height > 0; // prevent stroke from rendering for zero height columns\n });\n return [2 /*return*/];\n });\n });\n };\n HistogramSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var labelData, labelSelection, updateTexts, enterTexts;\n return __generator$3(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n updateTexts = labelSelection.setData(labelData);\n updateTexts.exit.remove();\n enterTexts = updateTexts.enter.append(Text$1).each(function (text) {\n text.tag = HistogramSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents$1.None;\n text.textAlign = 'center';\n text.textBaseline = 'middle';\n });\n return [2 /*return*/, updateTexts.merge(enterTexts)];\n });\n });\n };\n HistogramSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var labelSelection, labelEnabled;\n return __generator$3(this, function (_a) {\n labelSelection = opts.labelSelection;\n labelEnabled = this.label.enabled;\n labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.fill = label.fill;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n HistogramSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!xKey || !xAxis || !yAxis) {\n return '';\n }\n var _b = this, xName = _b.xName, yName = _b.yName, color = _b.fill, tooltip = _b.tooltip, aggregation = _b.aggregation, seriesId = _b.id;\n var tooltipRenderer = tooltip.renderer;\n var bin = nodeDatum.datum;\n var aggregatedValue = bin.aggregatedValue, frequency = bin.frequency, _c = __read$p(bin.domain, 2), rangeMin = _c[0], rangeMax = _c[1];\n var title = sanitizeHtml(xName || xKey) + \": \" + xAxis.formatDatum(rangeMin) + \" - \" + xAxis.formatDatum(rangeMax);\n var content = yKey\n ? \"\" + sanitizeHtml(yName || yKey) + \" (\" + aggregation + \"): \" + yAxis.formatDatum(aggregatedValue) + \"
\"\n : '';\n content += \"Frequency: \" + frequency;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: bin,\n xKey: xKey,\n xValue: bin.domain,\n xName: xName,\n yKey: yKey,\n yValue: bin.aggregatedValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n HistogramSeries.prototype.getLegendData = function () {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yName = _a.yName, visible = _a.visible, fill = _a.fill, stroke = _a.stroke, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (!data || data.length === 0) {\n return [];\n }\n return [\n {\n id: id,\n itemId: xKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: yName || xKey || 'Frequency',\n },\n marker: {\n fill: fill || 'rgba(0, 0, 0, 0)',\n stroke: stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n },\n },\n ];\n };\n HistogramSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n HistogramSeries.className = 'HistogramSeries';\n HistogramSeries.type = 'histogram';\n __decorate$1c([\n Validate(OPT_COLOR_STRING)\n ], HistogramSeries.prototype, \"fill\", void 0);\n __decorate$1c([\n Validate(OPT_COLOR_STRING)\n ], HistogramSeries.prototype, \"stroke\", void 0);\n __decorate$1c([\n Validate(NUMBER(0, 1))\n ], HistogramSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1c([\n Validate(NUMBER(0, 1))\n ], HistogramSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1c([\n Validate(OPT_LINE_DASH)\n ], HistogramSeries.prototype, \"lineDash\", void 0);\n __decorate$1c([\n Validate(NUMBER(0))\n ], HistogramSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1c([\n Validate(STRING)\n ], HistogramSeries.prototype, \"xKey\", void 0);\n __decorate$1c([\n Validate(BOOLEAN)\n ], HistogramSeries.prototype, \"areaPlot\", void 0);\n __decorate$1c([\n Validate(OPT_ARRAY())\n ], HistogramSeries.prototype, \"bins\", void 0);\n __decorate$1c([\n Validate(HISTOGRAM_AGGREGATION)\n ], HistogramSeries.prototype, \"aggregation\", void 0);\n __decorate$1c([\n Validate(OPT_NUMBER(0))\n ], HistogramSeries.prototype, \"binCount\", void 0);\n __decorate$1c([\n Validate(STRING)\n ], HistogramSeries.prototype, \"xName\", void 0);\n __decorate$1c([\n Validate(STRING)\n ], HistogramSeries.prototype, \"yKey\", void 0);\n __decorate$1c([\n Validate(STRING)\n ], HistogramSeries.prototype, \"yName\", void 0);\n __decorate$1c([\n Validate(NUMBER(0))\n ], HistogramSeries.prototype, \"strokeWidth\", void 0);\n return HistogramSeries;\n}(CartesianSeries));\n\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar HierarchySeries = /** @class */ (function (_super) {\n __extends$23(HierarchySeries, _super);\n function HierarchySeries() {\n return _super.call(this, { pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH] }) || this;\n }\n HierarchySeries.prototype.getLabelData = function () {\n return [];\n };\n return HierarchySeries;\n}(Series));\n\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropShadow = /** @class */ (function (_super) {\n __extends$22(DropShadow, _super);\n function DropShadow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n _this.color = 'rgba(0, 0, 0, 0.5)';\n _this.xOffset = 0;\n _this.yOffset = 0;\n _this.blur = 5;\n return _this;\n }\n __decorate$1b([\n ValidateAndChangeDetection({\n validatePredicate: BOOLEAN,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], DropShadow.prototype, \"enabled\", void 0);\n __decorate$1b([\n ValidateAndChangeDetection({\n validatePredicate: COLOR_STRING,\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], DropShadow.prototype, \"color\", void 0);\n __decorate$1b([\n ValidateAndChangeDetection({\n validatePredicate: NUMBER(),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], DropShadow.prototype, \"xOffset\", void 0);\n __decorate$1b([\n ValidateAndChangeDetection({\n validatePredicate: NUMBER(),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], DropShadow.prototype, \"yOffset\", void 0);\n __decorate$1b([\n ValidateAndChangeDetection({\n validatePredicate: NUMBER(0),\n sceneChangeDetectionOpts: { redraw: RedrawType.MAJOR },\n })\n ], DropShadow.prototype, \"blur\", void 0);\n return DropShadow;\n}(ChangeDetectable));\n\nfunction slice(parent, x0, y0, x1, y1) {\n var nodes = parent.children;\n var k = parent.value && (y1 - y0) / parent.value;\n nodes.forEach(function (node) {\n node.x0 = x0;\n node.x1 = x1;\n node.y0 = y0;\n node.y1 = y0 += node.value * k;\n });\n}\nfunction dice(parent, x0, y0, x1, y1) {\n var nodes = parent.children;\n var k = parent.value && (x1 - x0) / parent.value;\n nodes.forEach(function (node) {\n node.x0 = x0;\n node.x1 = x0 += node.value * k;\n node.y0 = y0;\n node.y1 = y1;\n });\n}\nfunction roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\nfunction squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [];\n var nodes = parent.children;\n var n = nodes.length;\n var value = parent.value;\n var i0 = 0;\n var i1 = 0;\n var dx;\n var dy;\n var nodeValue;\n var sumValue;\n var minValue;\n var maxValue;\n var newRatio;\n var minRatio;\n var alpha;\n var beta;\n while (i0 < n) {\n dx = x1 - x0;\n dy = y1 - y0;\n // Find the next non-empty node.\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n nodeValue = nodes[i1].value;\n sumValue += nodeValue;\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n minRatio = newRatio;\n }\n // Position and record the row orientation.\n var row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1),\n };\n rows.push(row);\n if (row.dice) {\n var oldy0 = y0;\n var newy1 = y1;\n if (value) {\n y0 += (dy * sumValue) / value;\n newy1 = y0;\n }\n dice(row, x0, oldy0, x1, newy1);\n }\n else {\n var oldx0 = x0;\n var newx1 = x1;\n if (value) {\n x0 += (dx * sumValue) / value;\n newx1 = x0;\n }\n slice(row, oldx0, y0, newx1, y1);\n }\n value -= sumValue;\n i0 = i1;\n }\n return rows;\n}\nvar phi = (1 + Math.sqrt(5)) / 2;\nvar squarify = (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n squarify.ratio = function (x) { return custom((x = +x) > 1 ? x : 1); };\n return squarify;\n})(phi);\nvar Treemap = /** @class */ (function () {\n function Treemap() {\n this.paddingStack = [0];\n this.dx = 1;\n this.dy = 1;\n this.round = true;\n this.tile = squarify;\n this.paddingInner = function (_) { return 0; };\n this.paddingTop = function (_) { return 0; };\n this.paddingRight = function (_) { return 0; };\n this.paddingBottom = function (_) { return 0; };\n this.paddingLeft = function (_) { return 0; };\n }\n Object.defineProperty(Treemap.prototype, \"size\", {\n get: function () {\n return [this.dx, this.dy];\n },\n set: function (size) {\n this.dx = size[0];\n this.dy = size[1];\n },\n enumerable: true,\n configurable: true\n });\n Treemap.prototype.processData = function (root) {\n root.x0 = 0;\n root.y0 = 0;\n root.x1 = this.dx;\n root.y1 = this.dy;\n root.eachBefore(this.positionNode.bind(this));\n this.paddingStack = [0];\n if (this.round) {\n root.eachBefore(roundNode);\n }\n return root;\n };\n Treemap.prototype.positionNode = function (node) {\n var p = this.paddingStack[node.depth];\n var x0 = node.x0 + p;\n var y0 = node.y0 + p;\n var x1 = node.x1 - p;\n var y1 = node.y1 - p;\n if (x1 < x0) {\n x0 = x1 = (x0 + x1) / 2;\n }\n if (y1 < y0) {\n y0 = y1 = (y0 + y1) / 2;\n }\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = this.paddingStack[node.depth + 1] = this.paddingInner(node) / 2;\n x0 += this.paddingLeft(node) - p;\n y0 += this.paddingTop(node) - p;\n x1 -= this.paddingRight(node) - p;\n y1 -= this.paddingBottom(node) - p;\n if (x1 < x0) {\n x0 = x1 = (x0 + x1) / 2;\n }\n if (y1 < y0) {\n y0 = y1 = (y0 + y1) / 2;\n }\n this.tile(node, x0, y0, x1, y1);\n }\n };\n return Treemap;\n}());\n\nvar __values$a = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$a = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$o(arguments[i]));\n return ar;\n};\nvar HierarchyNode = /** @class */ (function () {\n function HierarchyNode(datum) {\n this.value = 0;\n this.depth = 0;\n this.height = 0;\n this.parent = undefined;\n this.children = undefined;\n this.datum = datum;\n }\n HierarchyNode.prototype.countFn = function (node) {\n var sum = 0, children = node.children;\n if (!children || !children.length) {\n sum = 1;\n }\n else {\n var i = children.length;\n while (--i >= 0) {\n sum += children[i].value;\n }\n }\n node.value = sum;\n };\n HierarchyNode.prototype.count = function () {\n return this.eachAfter(this.countFn);\n };\n HierarchyNode.prototype.each = function (callback, scope) {\n var _this = this;\n var index = -1;\n this.iterator(function (node) {\n callback.call(scope, node, ++index, _this);\n });\n return this;\n };\n /**\n * Invokes the given callback for each node in post-order traversal.\n * @param callback\n * @param scope\n */\n HierarchyNode.prototype.eachAfter = function (callback, scope) {\n var node = this;\n var nodes = [node];\n var next = [];\n while ((node = nodes.pop())) {\n next.push(node);\n var children = node.children;\n if (children) {\n for (var i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n var index = -1;\n while ((node = next.pop())) {\n callback.call(scope, node, ++index, this);\n }\n return this;\n };\n /**\n * Invokes the given callback for each node in pre-order traversal.\n * @param callback\n * @param scope\n */\n HierarchyNode.prototype.eachBefore = function (callback, scope) {\n var node = this;\n var nodes = [node];\n var index = -1;\n while ((node = nodes.pop())) {\n callback.call(scope, node, ++index, this);\n var children = node.children;\n if (children) {\n for (var i = children.length - 1; i >= 0; --i) {\n var child = children[i];\n nodes.push(child);\n }\n }\n }\n return this;\n };\n HierarchyNode.prototype.find = function (callback, scope) {\n var _this = this;\n var index = -1;\n var result;\n this.iterator(function (node) {\n if (callback.call(scope, node, ++index, _this)) {\n result = node;\n return false;\n }\n });\n return result;\n };\n HierarchyNode.prototype.sum = function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.datum) || 0;\n var children = node.children;\n if (children) {\n var i = children.length;\n while (--i >= 0) {\n sum += children[i].value;\n }\n }\n node.value = sum;\n });\n };\n HierarchyNode.prototype.sort = function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n };\n HierarchyNode.prototype.path = function (end) {\n var start = this;\n var ancestor = leastCommonAncestor(start, end);\n var nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n };\n HierarchyNode.prototype.ancestors = function () {\n var node = this;\n var nodes = [node];\n while ((node = node.parent)) {\n nodes.push(node);\n }\n return nodes;\n };\n HierarchyNode.prototype.descendants = function () {\n var nodes = [];\n this.iterator(function (node) { return nodes.push(node); });\n return nodes;\n };\n HierarchyNode.prototype.leaves = function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n };\n HierarchyNode.prototype.links = function () {\n var root = this;\n var links = [];\n root.each(function (node) {\n if (node !== root) {\n // Don’t include the root’s parent, if any.\n links.push({ source: node.parent, target: node });\n }\n });\n return links;\n };\n HierarchyNode.prototype.iterator = function (callback) {\n var e_1, _a;\n var _b = this.children, children = _b === void 0 ? [] : _b;\n if (callback(this) === false) {\n return false;\n }\n try {\n for (var children_1 = __values$a(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n if (child.iterator(callback) === false) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n return HierarchyNode;\n}());\nfunction hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) {\n children = mapChildren;\n }\n }\n else if (children === undefined) {\n children = objectChildren;\n }\n var root = new HierarchyNode(data);\n var nodes = [root];\n var _loop_1 = function () {\n var node = nodes.pop();\n var datumChildren = children(node.datum);\n if (!datumChildren) {\n return \"continue\";\n }\n var newNodes = Array.from(datumChildren).map(function (dc) { return new HierarchyNode(dc); });\n newNodes.forEach(function (child) {\n child.parent = node;\n child.depth = node.depth + 1;\n });\n node.children = newNodes;\n nodes.push.apply(nodes, __spread$a(newNodes));\n };\n while (nodes.length > 0) {\n _loop_1();\n }\n return root.eachBefore(computeHeight);\n}\nfunction computeHeight(node) {\n var height = 0;\n do {\n node.height = height;\n node = node.parent;\n } while (node && node.height < ++height);\n}\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : undefined;\n}\nfunction objectChildren(d) {\n return d.children;\n}\nfunction leastCommonAncestor(a, b) {\n if (!(a && b)) {\n return undefined;\n }\n if (a === b) {\n return a;\n }\n var aNodes = a.ancestors();\n var bNodes = b.ancestors();\n var c = undefined;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$2 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$9 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar TreemapSeriesTooltip = /** @class */ (function (_super) {\n __extends$21(TreemapSeriesTooltip, _super);\n function TreemapSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1a([\n Validate(OPT_FUNCTION)\n ], TreemapSeriesTooltip.prototype, \"renderer\", void 0);\n return TreemapSeriesTooltip;\n}(SeriesTooltip));\nvar TreemapSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$21(TreemapSeriesNodeClickEvent, _super);\n function TreemapSeriesNodeClickEvent(labelKey, sizeKey, colorKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.labelKey = labelKey;\n _this.sizeKey = sizeKey;\n _this.colorKey = colorKey;\n return _this;\n }\n return TreemapSeriesNodeClickEvent;\n}(SeriesNodeClickEvent));\nvar TreemapSeriesLabel = /** @class */ (function (_super) {\n __extends$21(TreemapSeriesLabel, _super);\n function TreemapSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.padding = 10;\n return _this;\n }\n __decorate$1a([\n Validate(NUMBER(0))\n ], TreemapSeriesLabel.prototype, \"padding\", void 0);\n return TreemapSeriesLabel;\n}(Label$1));\nvar TextNodeTag;\n(function (TextNodeTag) {\n TextNodeTag[TextNodeTag[\"Name\"] = 0] = \"Name\";\n TextNodeTag[TextNodeTag[\"Value\"] = 1] = \"Value\";\n})(TextNodeTag || (TextNodeTag = {}));\nvar TreemapSeries = /** @class */ (function (_super) {\n __extends$21(TreemapSeries, _super);\n function TreemapSeries() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.groupSelection = Selection$1.select(_this.pickGroup).selectAll();\n _this.highlightSelection = Selection$1.select(_this.highlightGroup).selectAll();\n _this.layout = new Treemap();\n _this.title = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 15;\n return label;\n })();\n _this.subtitle = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontSize = 9;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 13;\n return label;\n })();\n _this.labels = {\n large: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 18;\n return label;\n })(),\n medium: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 14;\n return label;\n })(),\n small: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 10;\n return label;\n })(),\n color: (function () {\n var label = new Label$1();\n label.color = 'white';\n return label;\n })(),\n };\n _this._nodePadding = 2;\n _this.labelKey = 'label';\n _this.sizeKey = 'size';\n _this.colorKey = 'color';\n _this.colorDomain = [-5, 5];\n _this.colorRange = ['#cb4b3f', '#6acb64'];\n _this.colorParents = false;\n _this.gradient = true;\n _this.formatter = undefined;\n _this.colorName = 'Change';\n _this.rootName = 'Root';\n _this.shadow = (function () {\n var shadow = new DropShadow();\n shadow.color = 'rgba(0, 0, 0, 0.4)';\n shadow.xOffset = 1.5;\n shadow.yOffset = 1.5;\n return shadow;\n })();\n _this.tooltip = new TreemapSeriesTooltip();\n return _this;\n }\n Object.defineProperty(TreemapSeries.prototype, \"nodePadding\", {\n get: function () {\n return this._nodePadding;\n },\n set: function (value) {\n if (this._nodePadding !== value) {\n this._nodePadding = value;\n this.updateLayoutPadding();\n }\n },\n enumerable: true,\n configurable: true\n });\n TreemapSeries.prototype.updateLayoutPadding = function () {\n var _a = this, title = _a.title, subtitle = _a.subtitle, nodePadding = _a.nodePadding, labelKey = _a.labelKey;\n this.layout.paddingRight = function (_) { return nodePadding; };\n this.layout.paddingBottom = function (_) { return nodePadding; };\n this.layout.paddingLeft = function (_) { return nodePadding; };\n this.layout.paddingTop = function (node) {\n var name = node.datum[labelKey] || '';\n if (node.children) {\n name = name.toUpperCase();\n }\n var font = node.depth > 1 ? subtitle : title;\n var textSize = HdpiCanvas$1.getTextSize(name, [font.fontWeight, font.fontSize + 'px', font.fontFamily].join(' ').trim());\n var innerNodeWidth = node.x1 - node.x0 - nodePadding * 2;\n var hasTitle = node.depth > 0 && node.children && textSize.width <= innerNodeWidth;\n node.hasTitle = !!hasTitle;\n return hasTitle ? textSize.height + nodePadding * 2 : nodePadding;\n };\n };\n TreemapSeries.prototype.processData = function () {\n return __awaiter$2(this, void 0, void 0, function () {\n function traverse(root, depth) {\n if (depth === void 0) { depth = 0; }\n var children = root.children, datum = root.datum;\n var label = datum[labelKey];\n var colorValue = colorKey ? datum[colorKey] : depth;\n Object.assign(root, { series: series });\n root.fill = !children || colorParents ? colorScale.convert(colorValue) : '#272931';\n root.colorValue = colorValue;\n if (label) {\n root.label = children ? label.toUpperCase() : label;\n }\n else {\n root.label = '';\n }\n if (children) {\n children.forEach(function (child) { return traverse(child, depth + 1); });\n }\n }\n var _a, data, sizeKey, labelKey, colorKey, colorDomain, colorRange, colorParents, dataRoot, colorScale, series;\n return __generator$2(this, function (_b) {\n if (!this.data) {\n return [2 /*return*/];\n }\n _a = this, data = _a.data, sizeKey = _a.sizeKey, labelKey = _a.labelKey, colorKey = _a.colorKey, colorDomain = _a.colorDomain, colorRange = _a.colorRange, colorParents = _a.colorParents;\n if (sizeKey) {\n dataRoot = hierarchy(data).sum(function (datum) { return (datum.children ? 1 : datum[sizeKey]); });\n }\n else {\n dataRoot = hierarchy(data).sum(function (datum) { return (datum.children ? 0 : 1); });\n }\n this.dataRoot = dataRoot;\n colorScale = new LinearScale$1();\n colorScale.domain = colorDomain;\n colorScale.range = colorRange;\n series = this;\n traverse(this.dataRoot);\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.getLabelCenterX = function (datum) {\n return (datum.x0 + datum.x1) / 2;\n };\n TreemapSeries.prototype.getLabelCenterY = function (datum) {\n return (datum.y0 + datum.y1) / 2 + 2;\n };\n TreemapSeries.prototype.createNodeData = function () {\n return __awaiter$2(this, void 0, void 0, function () {\n return __generator$2(this, function (_a) {\n return [2 /*return*/, []];\n });\n });\n };\n TreemapSeries.prototype.update = function () {\n return __awaiter$2(this, void 0, void 0, function () {\n return __generator$2(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.updateSelections()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.updateNodes()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n TreemapSeries.prototype.updateSelections = function () {\n return __awaiter$2(this, void 0, void 0, function () {\n var _a, chart, dataRoot, seriesRect, descendants, _b, groupSelection, highlightSelection, update;\n return __generator$2(this, function (_c) {\n if (!this.nodeDataRefresh) {\n return [2 /*return*/];\n }\n this.nodeDataRefresh = false;\n _a = this, chart = _a.chart, dataRoot = _a.dataRoot;\n if (!chart || !dataRoot) {\n return [2 /*return*/];\n }\n seriesRect = chart.getSeriesRect();\n if (!seriesRect) {\n return [2 /*return*/];\n }\n this.layout.size = [seriesRect.width, seriesRect.height];\n this.updateLayoutPadding();\n descendants = this.layout.processData(dataRoot).descendants();\n _b = this, groupSelection = _b.groupSelection, highlightSelection = _b.highlightSelection;\n update = function (selection) {\n var updateGroups = selection.setData(descendants);\n updateGroups.exit.remove();\n var enterGroups = updateGroups.enter.append(Group$1);\n enterGroups.append(Rect);\n enterGroups.append(Text$1).each(function (node) { return (node.tag = TextNodeTag.Name); });\n enterGroups.append(Text$1).each(function (node) { return (node.tag = TextNodeTag.Value); });\n return updateGroups.merge(enterGroups);\n };\n this.groupSelection = update(groupSelection);\n this.highlightSelection = update(highlightSelection);\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.updateNodes = function () {\n return __awaiter$2(this, void 0, void 0, function () {\n var _a, nodePadding, labels, shadow, gradient, highlightedDatum, _b, deprecatedFill, deprecatedStroke, deprecatedStrokeWidth, _c, _d, highlightedFill, highlightedFillOpacity, _e, highlightedStroke, _f, highlightedDatumStrokeWidth, formatter, colorKey, labelKey, sizeKey, labelMeta, updateRectFn, updateNodeFn, updateValueFn;\n var _this = this;\n return __generator$2(this, function (_g) {\n if (!this.chart) {\n return [2 /*return*/];\n }\n _a = this, nodePadding = _a.nodePadding, labels = _a.labels, shadow = _a.shadow, gradient = _a.gradient, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, highlightedFillOpacity = _c.fillOpacity, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f, formatter = _a.formatter, colorKey = _a.colorKey, labelKey = _a.labelKey, sizeKey = _a.sizeKey;\n labelMeta = this.buildLabelMeta(this.groupSelection.data);\n updateRectFn = function (rect, datum, isDatumHighlighted) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : datum.fill;\n var fillOpacity = (_a = (isDatumHighlighted ? highlightedFillOpacity : 1), (_a !== null && _a !== void 0 ? _a : 1));\n var stroke = isDatumHighlighted && highlightedStroke !== undefined\n ? highlightedStroke\n : datum.depth < 2\n ? undefined\n : 'black';\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined ? highlightedDatumStrokeWidth : 1;\n var format;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n colorKey: colorKey,\n sizeKey: sizeKey,\n labelKey: labelKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n gradient: gradient,\n highlighted: isDatumHighlighted,\n });\n }\n rect.fill = (_c = (_b = format) === null || _b === void 0 ? void 0 : _b.fill, (_c !== null && _c !== void 0 ? _c : fill));\n rect.fillOpacity = (_e = (_d = format) === null || _d === void 0 ? void 0 : _d.fillOpacity, (_e !== null && _e !== void 0 ? _e : fillOpacity));\n rect.stroke = (_g = (_f = format) === null || _f === void 0 ? void 0 : _f.stroke, (_g !== null && _g !== void 0 ? _g : stroke));\n rect.strokeWidth = (_j = (_h = format) === null || _h === void 0 ? void 0 : _h.strokeWidth, (_j !== null && _j !== void 0 ? _j : strokeWidth));\n rect.gradient = (_l = (_k = format) === null || _k === void 0 ? void 0 : _k.gradient, (_l !== null && _l !== void 0 ? _l : gradient));\n rect.crisp = true;\n rect.x = datum.x0;\n rect.y = datum.y0;\n rect.width = datum.x1 - datum.x0;\n rect.height = datum.y1 - datum.y0;\n if (isDatumHighlighted && datum.children) {\n var x0 = datum.x0, x1 = datum.x1, y0 = datum.y0, y1 = datum.y1;\n var pLeft = _this.layout.paddingLeft(datum);\n var pRight = _this.layout.paddingRight(datum);\n var pTop = _this.layout.paddingTop(datum);\n var pBottom = _this.layout.paddingBottom(datum);\n if (rect.clipPath) {\n rect.clipPath.clear();\n }\n else {\n rect.clipPath = new Path2D$1();\n }\n rect.clipMode = 'punch-out';\n rect.clipPath.moveTo(x0 + pLeft, y0 + pTop);\n rect.clipPath.lineTo(x1 - pRight, y0 + pTop);\n rect.clipPath.lineTo(x1 - pRight, y1 - pBottom);\n rect.clipPath.lineTo(x0 + pLeft, y1 - pBottom);\n rect.clipPath.lineTo(x0 + pLeft, y0 + pTop);\n rect.clipPath.closePath();\n }\n };\n this.groupSelection.selectByClass(Rect).each(function (rect, datum) { return updateRectFn(rect, datum, false); });\n this.highlightSelection.selectByClass(Rect).each(function (rect, datum) {\n var isDatumHighlighted = datum === highlightedDatum;\n rect.visible = isDatumHighlighted;\n if (rect.visible) {\n updateRectFn(rect, datum, isDatumHighlighted);\n }\n });\n updateNodeFn = function (text, datum, index, highlighted) {\n var _a;\n var hasTitle = datum.hasTitle;\n var _b = (_a = labelMeta[index], (_a !== null && _a !== void 0 ? _a : {})), label = _b.label, textBaseline = _b.nodeBaseline;\n if (label != null && textBaseline != null) {\n text.textBaseline = textBaseline;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textAlign = hasTitle ? 'left' : 'center';\n text.text = datum.label;\n text.fill = highlighted ? 'black' : label.color;\n text.fillShadow = !highlighted ? shadow : undefined;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n if (hasTitle) {\n text.x = datum.x0 + nodePadding;\n text.y = datum.y0 + nodePadding;\n }\n else {\n text.x = _this.getLabelCenterX(datum);\n text.y = _this.getLabelCenterY(datum);\n }\n };\n this.groupSelection\n .selectByTag(TextNodeTag.Name)\n .each(function (text, datum, index) { return updateNodeFn(text, datum, index, false); });\n this.highlightSelection.selectByTag(TextNodeTag.Name).each(function (text, datum, index) {\n var isDatumHighlighted = datum === highlightedDatum;\n text.visible = isDatumHighlighted;\n if (text.visible) {\n updateNodeFn(text, datum, index, isDatumHighlighted);\n }\n });\n updateValueFn = function (text, datum, index, highlighted) {\n var _a;\n var _b = (_a = labelMeta[index], (_a !== null && _a !== void 0 ? _a : {})), textBaseline = _b.valueBaseline, valueText = _b.valueText;\n var label = labels.color;\n if (label.enabled && textBaseline != null && valueText) {\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.textBaseline = textBaseline;\n text.textAlign = 'center';\n text.text = valueText;\n text.fill = highlighted ? 'black' : label.color;\n text.fillShadow = highlighted ? undefined : shadow;\n text.visible = true;\n text.x = _this.getLabelCenterX(datum);\n text.y = _this.getLabelCenterY(datum);\n }\n else {\n text.visible = false;\n }\n };\n this.groupSelection\n .selectByTag(TextNodeTag.Value)\n .each(function (text, datum, index) { return updateValueFn(text, datum, index, false); });\n this.highlightSelection.selectByTag(TextNodeTag.Value).each(function (text, datum, index) {\n var isDatumHighlighted = datum === highlightedDatum;\n text.visible = isDatumHighlighted;\n if (text.visible) {\n updateValueFn(text, datum, index, isDatumHighlighted);\n }\n });\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.buildLabelMeta = function (data) {\n var e_1, _a;\n var _b = this, labels = _b.labels, title = _b.title, subtitle = _b.subtitle, nodePadding = _b.nodePadding, colorKey = _b.colorKey;\n var labelMeta = [];\n labelMeta.length = this.groupSelection.data.length;\n var text = new Text$1();\n var index = 0;\n try {\n for (var data_1 = __values$9(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n var value = datum.value;\n var isLeaf = !datum.children;\n var innerNodeWidth = datum.x1 - datum.x0 - nodePadding * 2;\n var innerNodeHeight = datum.y1 - datum.y0 - nodePadding * 2;\n var hasTitle = datum.hasTitle;\n var label = void 0;\n if (isLeaf) {\n if (innerNodeWidth > 40 && innerNodeHeight > 40) {\n label = labels.large;\n }\n else if (innerNodeWidth > 20 && innerNodeHeight > 20) {\n label = labels.medium;\n }\n else {\n label = labels.small;\n }\n }\n else if (datum.depth > 1) {\n label = subtitle;\n }\n else {\n label = title;\n }\n if (!label.enabled) {\n labelMeta[index++] = undefined;\n continue;\n }\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textAlign = hasTitle ? 'left' : 'center';\n text.text = datum.label;\n var nodeBBox = text.computeBBox();\n var hasNode = isLeaf && !!nodeBBox && nodeBBox.width <= innerNodeWidth && nodeBBox.height * 2 + 8 <= innerNodeHeight;\n var valueText = typeof value === 'number' && isFinite(value) ? String(toFixed(datum.colorValue)) + '%' : '';\n text.fontSize = labels.color.fontSize;\n text.fontFamily = labels.color.fontFamily;\n text.fontStyle = labels.color.fontStyle;\n text.fontWeight = labels.color.fontWeight;\n text.text = valueText;\n var valueBBox = text.computeBBox();\n var hasValue = isLeaf && !!colorKey && hasNode && !!valueBBox && valueBBox.width < innerNodeWidth;\n var nodeBaseline = hasValue ? 'bottom' : isLeaf ? 'middle' : hasTitle ? 'top' : 'middle';\n labelMeta[index++] = {\n label: label,\n nodeBaseline: hasTitle || hasNode ? nodeBaseline : undefined,\n valueBaseline: hasValue ? 'top' : undefined,\n valueText: valueText,\n };\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return labelMeta;\n };\n TreemapSeries.prototype.getDomain = function (_direction) {\n return [0, 1];\n };\n TreemapSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new TreemapSeriesNodeClickEvent(this.labelKey, this.sizeKey, this.colorKey, event, datum, this);\n };\n TreemapSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, tooltip = _a.tooltip, sizeKey = _a.sizeKey, labelKey = _a.labelKey, colorKey = _a.colorKey, colorName = _a.colorName, rootName = _a.rootName, seriesId = _a.id;\n var datum = nodeDatum.datum;\n var tooltipRenderer = tooltip.renderer;\n var title = nodeDatum.depth ? datum[labelKey] : rootName || datum[labelKey];\n var content = undefined;\n var color = nodeDatum.fill || 'gray';\n if (colorKey && colorName) {\n var colorValue = datum[colorKey];\n if (typeof colorValue === 'number' && isFinite(colorValue)) {\n content = \"\" + colorName + \": \" + toFixed(datum[colorKey]);\n }\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: nodeDatum,\n sizeKey: sizeKey,\n labelKey: labelKey,\n colorKey: colorKey,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n TreemapSeries.prototype.getLegendData = function () {\n // Override point for subclasses.\n return [];\n };\n TreemapSeries.className = 'TreemapSeries';\n TreemapSeries.type = 'treemap';\n __decorate$1a([\n Validate(STRING)\n ], TreemapSeries.prototype, \"labelKey\", void 0);\n __decorate$1a([\n Validate(OPT_STRING)\n ], TreemapSeries.prototype, \"sizeKey\", void 0);\n __decorate$1a([\n Validate(OPT_STRING)\n ], TreemapSeries.prototype, \"colorKey\", void 0);\n __decorate$1a([\n Validate(NUMBER_ARRAY)\n ], TreemapSeries.prototype, \"colorDomain\", void 0);\n __decorate$1a([\n Validate(COLOR_STRING_ARRAY)\n ], TreemapSeries.prototype, \"colorRange\", void 0);\n __decorate$1a([\n Validate(BOOLEAN)\n ], TreemapSeries.prototype, \"colorParents\", void 0);\n __decorate$1a([\n Validate(BOOLEAN)\n ], TreemapSeries.prototype, \"gradient\", void 0);\n __decorate$1a([\n Validate(OPT_FUNCTION)\n ], TreemapSeries.prototype, \"formatter\", void 0);\n __decorate$1a([\n Validate(STRING)\n ], TreemapSeries.prototype, \"colorName\", void 0);\n __decorate$1a([\n Validate(STRING)\n ], TreemapSeries.prototype, \"rootName\", void 0);\n return TreemapSeries;\n}(HierarchySeries));\n\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Sector = /** @class */ (function (_super) {\n __extends$20(Sector, _super);\n function Sector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.centerX = 0;\n _this.centerY = 0;\n _this.centerOffset = 0;\n _this.innerRadius = 10;\n _this.outerRadius = 20;\n _this.startAngle = 0;\n _this.endAngle = Math.PI * 2;\n _this.angleOffset = 0;\n return _this;\n }\n Sector.prototype.computeBBox = function () {\n var radius = this.outerRadius;\n return new BBox$1(this.centerX - radius, this.centerY - radius, radius * 2, radius * 2);\n };\n Sector.prototype.isFullPie = function () {\n return isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n };\n Sector.prototype.updatePath = function () {\n var path = this.path;\n var angleOffset = this.angleOffset;\n var startAngle = Math.min(this.startAngle, this.endAngle) + angleOffset;\n var endAngle = Math.max(this.startAngle, this.endAngle) + angleOffset;\n var midAngle = (startAngle + endAngle) * 0.5;\n var innerRadius = Math.min(this.innerRadius, this.outerRadius);\n var outerRadius = Math.max(this.innerRadius, this.outerRadius);\n var centerOffset = this.centerOffset;\n var fullPie = this.isFullPie();\n var centerX = this.centerX;\n var centerY = this.centerY;\n path.clear();\n if (centerOffset) {\n centerX += centerOffset * Math.cos(midAngle);\n centerY += centerOffset * Math.sin(midAngle);\n }\n if (!fullPie) {\n path.moveTo(centerX + innerRadius * Math.cos(startAngle), centerY + innerRadius * Math.sin(startAngle));\n path.lineTo(centerX + outerRadius * Math.cos(startAngle), centerY + outerRadius * Math.sin(startAngle));\n }\n path.cubicArc(centerX, centerY, outerRadius, outerRadius, 0, startAngle, endAngle, 0);\n if (fullPie) {\n path.moveTo(centerX + innerRadius * Math.cos(endAngle), centerY + innerRadius * Math.sin(endAngle));\n }\n else {\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var x = centerX + innerRadius * Math.cos(endAngle);\n path.lineTo(Math.abs(x) < 1e-8 ? 0 : x, centerY + innerRadius * Math.sin(endAngle));\n }\n path.cubicArc(centerX, centerY, innerRadius, innerRadius, 0, endAngle, startAngle, 1);\n path.closePath();\n this.dirtyPath = false;\n };\n Sector.className = 'Sector';\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"centerX\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"centerY\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"centerOffset\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"innerRadius\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"outerRadius\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"startAngle\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"endAngle\", void 0);\n __decorate$19([\n ScenePathChangeDetection()\n ], Sector.prototype, \"angleOffset\", void 0);\n return Sector;\n}(Path$1));\n\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$t = (undefined && undefined.__assign) || function () {\n __assign$t = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$t.apply(this, arguments);\n};\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$1 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$9 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$n(arguments[i]));\n return ar;\n};\nvar PieSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$1$(PieSeriesNodeClickEvent, _super);\n function PieSeriesNodeClickEvent(angleKey, calloutLabelKey, sectorLabelKey, radiusKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.angleKey = angleKey;\n _this.calloutLabelKey = calloutLabelKey;\n _this.sectorLabelKey = sectorLabelKey;\n _this.radiusKey = radiusKey;\n return _this;\n }\n __decorate$18([\n DeprecatedAndRenamedTo('calloutLabelKey')\n ], PieSeriesNodeClickEvent.prototype, \"labelKey\", void 0);\n return PieSeriesNodeClickEvent;\n}(SeriesNodeClickEvent));\nvar PieHighlightStyle = /** @class */ (function (_super) {\n __extends$1$(PieHighlightStyle, _super);\n function PieHighlightStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$18([\n Validate(OPT_NUMBER(0))\n ], PieHighlightStyle.prototype, \"centerOffset\", void 0);\n return PieHighlightStyle;\n}(HighlightStyle));\nvar PieNodeTag;\n(function (PieNodeTag) {\n PieNodeTag[PieNodeTag[\"Sector\"] = 0] = \"Sector\";\n PieNodeTag[PieNodeTag[\"Callout\"] = 1] = \"Callout\";\n PieNodeTag[PieNodeTag[\"Label\"] = 2] = \"Label\";\n})(PieNodeTag || (PieNodeTag = {}));\nvar PieSeriesCalloutLabel = /** @class */ (function (_super) {\n __extends$1$(PieSeriesCalloutLabel, _super);\n function PieSeriesCalloutLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.offset = 3; // from the callout line\n _this.minAngle = 20; // in degrees\n _this.formatter = undefined;\n return _this;\n }\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"offset\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"minAngle\", void 0);\n __decorate$18([\n Validate(OPT_FUNCTION)\n ], PieSeriesCalloutLabel.prototype, \"formatter\", void 0);\n return PieSeriesCalloutLabel;\n}(Label$1));\nvar PieSeriesSectorLabel = /** @class */ (function (_super) {\n __extends$1$(PieSeriesSectorLabel, _super);\n function PieSeriesSectorLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.positionOffset = 0;\n _this.positionRatio = 0.5;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$18([\n Validate(NUMBER())\n ], PieSeriesSectorLabel.prototype, \"positionOffset\", void 0);\n __decorate$18([\n Validate(NUMBER(0, 1))\n ], PieSeriesSectorLabel.prototype, \"positionRatio\", void 0);\n __decorate$18([\n Validate(OPT_FUNCTION)\n ], PieSeriesSectorLabel.prototype, \"formatter\", void 0);\n return PieSeriesSectorLabel;\n}(Label$1));\nvar PieSeriesCalloutLine = /** @class */ (function (_super) {\n __extends$1$(PieSeriesCalloutLine, _super);\n function PieSeriesCalloutLine() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.colors = ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'];\n _this.length = 10;\n _this.strokeWidth = 1;\n return _this;\n }\n __decorate$18([\n Validate(COLOR_STRING_ARRAY)\n ], PieSeriesCalloutLine.prototype, \"colors\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLine.prototype, \"length\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLine.prototype, \"strokeWidth\", void 0);\n return PieSeriesCalloutLine;\n}(Observable$1));\nvar PieSeriesTooltip = /** @class */ (function (_super) {\n __extends$1$(PieSeriesTooltip, _super);\n function PieSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$18([\n Validate(OPT_FUNCTION)\n ], PieSeriesTooltip.prototype, \"renderer\", void 0);\n return PieSeriesTooltip;\n}(SeriesTooltip));\nvar PieTitle = /** @class */ (function (_super) {\n __extends$1$(PieTitle, _super);\n function PieTitle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showInLegend = false;\n return _this;\n }\n __decorate$18([\n Validate(BOOLEAN)\n ], PieTitle.prototype, \"showInLegend\", void 0);\n return PieTitle;\n}(Caption));\nvar DoughnutInnerLabel = /** @class */ (function (_super) {\n __extends$1$(DoughnutInnerLabel, _super);\n function DoughnutInnerLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.text = '';\n _this.margin = 2;\n return _this;\n }\n __decorate$18([\n Validate(STRING)\n ], DoughnutInnerLabel.prototype, \"text\", void 0);\n __decorate$18([\n Validate(NUMBER())\n ], DoughnutInnerLabel.prototype, \"margin\", void 0);\n return DoughnutInnerLabel;\n}(Label$1));\nvar DoughnutInnerCircle = /** @class */ (function () {\n function DoughnutInnerCircle() {\n this.fill = 'transparent';\n this.fillOpacity = 1;\n }\n __decorate$18([\n Validate(COLOR_STRING)\n ], DoughnutInnerCircle.prototype, \"fill\", void 0);\n __decorate$18([\n Validate(OPT_NUMBER(0, 1))\n ], DoughnutInnerCircle.prototype, \"fillOpacity\", void 0);\n return DoughnutInnerCircle;\n}());\nfunction isPointInArc(x, y, sector) {\n var radius = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n var innerRadius = sector.innerRadius, outerRadius = sector.outerRadius;\n if (radius < Math.min(innerRadius, outerRadius) || radius > Math.max(innerRadius, outerRadius)) {\n return false;\n }\n // Start and End angles are expected to be [-90, 270]\n // while Math.atan2 returns [-180, 180]\n var angle = Math.atan2(y, x);\n if (angle < -Math.PI / 2) {\n angle += 2 * Math.PI;\n }\n // Start is actually bigger than End clock-wise\n var startAngle = sector.startAngle, endAngle = sector.endAngle;\n if (endAngle === -Math.PI / 2) {\n return angle < startAngle;\n }\n if (startAngle === (3 * Math.PI) / 2) {\n return angle > endAngle;\n }\n return angle >= endAngle && angle <= startAngle;\n}\nvar PieSeries = /** @class */ (function (_super) {\n __extends$1$(PieSeries, _super);\n function PieSeries() {\n var _this = _super.call(this, { useLabelLayer: true }) || this;\n _this.radiusScale = new LinearScale$1();\n _this.groupSelection = Selection$1.select(_this.pickGroup).selectAll();\n _this.highlightSelection = Selection$1.select(_this.highlightGroup).selectAll();\n /**\n * The processed data that gets visualized.\n */\n _this.groupSelectionData = [];\n _this.sectorFormatData = [];\n _this.angleScale = (function () {\n var scale = new LinearScale$1();\n // Each sector is a ratio of the whole, where all ratios add up to 1.\n scale.domain = [0, 1];\n // Add 90 deg to start the first pie at 12 o'clock.\n scale.range = [-Math.PI, Math.PI].map(function (angle) { return angle + Math.PI / 2; });\n return scale;\n })();\n // When a user toggles a series item (e.g. from the legend), its boolean state is recorded here.\n _this.seriesItemEnabled = [];\n _this.calloutLabel = new PieSeriesCalloutLabel();\n _this.label = _this.calloutLabel;\n _this.sectorLabel = new PieSeriesSectorLabel();\n _this.calloutLine = new PieSeriesCalloutLine();\n _this.callout = _this.calloutLine;\n _this.tooltip = new PieSeriesTooltip();\n /**\n * The key of the numeric field to use to determine the angle (for example,\n * a pie sector angle).\n */\n _this.angleKey = '';\n _this.angleName = '';\n _this.innerLabels = [];\n /**\n * The key of the numeric field to use to determine the radii of pie sectors.\n * The largest value will correspond to the full radius and smaller values to\n * proportionally smaller radii.\n */\n _this.radiusKey = undefined;\n _this.radiusName = undefined;\n _this.radiusMin = undefined;\n _this.radiusMax = undefined;\n _this.calloutLabelKey = undefined;\n _this.calloutLabelName = undefined;\n _this.labelKey = undefined;\n _this.labelName = undefined;\n _this.sectorLabelKey = undefined;\n _this.sectorLabelName = undefined;\n _this.fills = ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'];\n _this.strokes = ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.formatter = undefined;\n /**\n * The series rotation in degrees.\n */\n _this.rotation = 0;\n _this.outerRadiusOffset = 0;\n _this.outerRadiusRatio = 1;\n _this.innerRadiusOffset = 0;\n _this.innerRadiusRatio = 1;\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.highlightStyle = new PieHighlightStyle();\n _this.datumSectorRefs = new WeakMap();\n var pieLabels = new Group$1();\n var pieSectorLabels = new Group$1();\n var innerLabels = new Group$1();\n _this.labelGroup.append(pieLabels);\n _this.labelGroup.append(pieSectorLabels);\n _this.labelGroup.append(innerLabels);\n _this.calloutSelection = Selection$1.select(pieLabels).selectAll();\n _this.sectorLabelSelection = Selection$1.select(pieSectorLabels).selectAll();\n _this.innerLabelsSelection = Selection$1.select(innerLabels).selectAll();\n return _this;\n }\n Object.defineProperty(PieSeries.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (value) {\n var _a, _b;\n var oldTitle = this._title;\n if (oldTitle !== value) {\n if (oldTitle) {\n (_a = this.labelGroup) === null || _a === void 0 ? void 0 : _a.removeChild(oldTitle.node);\n }\n if (value) {\n value.node.textBaseline = 'bottom';\n (_b = this.labelGroup) === null || _b === void 0 ? void 0 : _b.appendChild(value.node);\n }\n this._title = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PieSeries.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (input) {\n this._data = input;\n this.processSeriesItemEnabled();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PieSeries.prototype, \"innerCircle\", {\n get: function () {\n return this._innerCircleConfig;\n },\n set: function (value) {\n var _a;\n var oldCircleCfg = this._innerCircleConfig;\n if (oldCircleCfg !== value) {\n var oldNode = this._innerCircleNode;\n var circle = void 0;\n if (oldNode) {\n this.backgroundGroup.removeChild(oldNode);\n }\n if (value) {\n circle = new Circle$1();\n circle.fill = value.fill;\n circle.fillOpacity = (_a = value.fillOpacity, (_a !== null && _a !== void 0 ? _a : 1));\n this.backgroundGroup.appendChild(circle);\n }\n this._innerCircleConfig = value;\n this._innerCircleNode = circle;\n }\n },\n enumerable: true,\n configurable: true\n });\n PieSeries.prototype.visibleChanged = function () {\n this.processSeriesItemEnabled();\n };\n PieSeries.prototype.processSeriesItemEnabled = function () {\n var _a;\n var _b = this, data = _b.data, visible = _b.visible;\n this.seriesItemEnabled = ((_a = data) === null || _a === void 0 ? void 0 : _a.map(function () { return visible; })) || [];\n };\n PieSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n this.calloutLine.colors = strokes;\n };\n PieSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.angleScale.domain;\n }\n else {\n return this.radiusScale.domain;\n }\n };\n PieSeries.prototype.processData = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var _a, angleKey, radiusKey, seriesItemEnabled, angleScale, groupSelectionData, sectorFormatData, calloutLabel, sectorLabel, seriesId, data, angleData, angleDataTotal, angleDataRatios, labelFormatter, labelKey, sectorLabelKey, labelData, sectorLabelData, radiusData, getLabelFormatterParams, showValueDeprecationWarning_1, sectorLabelFormatter, _b, radiusMin, radiusMax, radii, min_1, max, delta_1, rotation, halfPi, datumIndex, quadrantTextOpts, end;\n var _this = this;\n return __generator$1(this, function (_c) {\n _a = this, angleKey = _a.angleKey, radiusKey = _a.radiusKey, seriesItemEnabled = _a.seriesItemEnabled, angleScale = _a.angleScale, groupSelectionData = _a.groupSelectionData, sectorFormatData = _a.sectorFormatData, calloutLabel = _a.calloutLabel, sectorLabel = _a.sectorLabel, seriesId = _a.id;\n data = angleKey && this.data ? this.data : [];\n angleData = data.map(function (datum, index) { return (seriesItemEnabled[index] && Math.abs(+datum[angleKey])) || 0; });\n angleDataTotal = angleData.reduce(function (a, b) { return a + b; }, 0);\n angleDataRatios = (function () {\n var sum = 0;\n return angleData.map(function (datum) { return (sum += datum / angleDataTotal); });\n })();\n labelFormatter = calloutLabel.formatter;\n labelKey = calloutLabel.enabled ? this.calloutLabelKey : undefined;\n sectorLabelKey = sectorLabel.enabled ? this.sectorLabelKey : undefined;\n labelData = [];\n sectorLabelData = [];\n radiusData = [];\n getLabelFormatterParams = function (datum) {\n return {\n datum: datum,\n angleKey: angleKey,\n angleValue: datum[angleKey],\n angleName: _this.angleName,\n radiusKey: radiusKey,\n radiusValue: radiusKey ? datum[radiusKey] : undefined,\n radiusName: _this.radiusName,\n labelKey: labelKey,\n labelValue: labelKey ? datum[labelKey] : undefined,\n labelName: _this.calloutLabelName,\n calloutLabelKey: labelKey,\n calloutLabelValue: labelKey ? datum[labelKey] : undefined,\n calloutLabelName: _this.calloutLabelName,\n sectorLabelKey: sectorLabelKey,\n sectorLabelValue: sectorLabelKey ? datum[sectorLabelKey] : undefined,\n sectorLabelName: _this.sectorLabelName,\n seriesId: seriesId,\n };\n };\n if (labelKey) {\n if (labelFormatter) {\n showValueDeprecationWarning_1 = function () {\n return doOnce$1(function () {\n return console.warn('AG Charts - the use of { value } in the pie chart label formatter function is deprecated. Please use { datum, labelKey, ... } instead.');\n }, 'deprecated use of \"value\" property in pie chart label formatter');\n };\n labelData = data.map(function (datum) {\n var deprecatedValue = datum[labelKey];\n var formatterParams = __assign$t(__assign$t({}, getLabelFormatterParams(datum)), { get value() {\n showValueDeprecationWarning_1();\n return deprecatedValue;\n },\n set value(v) {\n showValueDeprecationWarning_1();\n deprecatedValue = v;\n } });\n return labelFormatter(formatterParams);\n });\n }\n else {\n labelData = data.map(function (datum) { return String(datum[labelKey]); });\n }\n }\n sectorLabelFormatter = sectorLabel.formatter;\n if (sectorLabelKey) {\n if (sectorLabelFormatter) {\n sectorLabelData = data.map(function (datum) {\n var formatterParams = getLabelFormatterParams(datum);\n return sectorLabelFormatter(formatterParams);\n });\n }\n else {\n sectorLabelData = data.map(function (datum) { return String(datum[sectorLabelKey]); });\n }\n }\n if (radiusKey) {\n _b = this, radiusMin = _b.radiusMin, radiusMax = _b.radiusMax;\n radii = data.map(function (datum) { return Math.abs(datum[radiusKey]); });\n min_1 = (radiusMin !== null && radiusMin !== void 0 ? radiusMin : 0);\n max = radiusMax ? radiusMax : Math.max.apply(Math, __spread$9(radii));\n delta_1 = max - min_1;\n radiusData = radii.map(function (value) { return (delta_1 ? (value - min_1) / delta_1 : 1); });\n }\n groupSelectionData.length = 0;\n sectorFormatData.length = 0;\n sectorFormatData.push.apply(sectorFormatData, __spread$9(data.map(function (datum, datumIdx) { return _this.getSectorFormat(datum, datumIdx, datumIdx, false); })));\n rotation = toRadians(this.rotation);\n halfPi = Math.PI / 2;\n datumIndex = 0;\n quadrantTextOpts = [\n { textAlign: 'center', textBaseline: 'bottom' },\n { textAlign: 'left', textBaseline: 'middle' },\n { textAlign: 'center', textBaseline: 'hanging' },\n { textAlign: 'right', textBaseline: 'middle' },\n ];\n end = 0;\n angleDataRatios.forEach(function (start) {\n if (isNaN(start)) {\n return;\n } // No sectors displayed - nothing to do.\n var radius = radiusKey ? radiusData[datumIndex] : 1;\n var startAngle = angleScale.convert(start) + rotation;\n var endAngle = angleScale.convert(end) + rotation;\n var midAngle = (startAngle + endAngle) / 2;\n var span = Math.abs(endAngle - startAngle);\n var midCos = Math.cos(midAngle);\n var midSin = Math.sin(midAngle);\n var labelMinAngle = toRadians(calloutLabel.minAngle);\n var labelVisible = labelKey && span > labelMinAngle;\n var midAngle180 = normalizeAngle180(midAngle);\n // Split the circle into quadrants like so: ⊗\n var quadrantStart = (-3 * Math.PI) / 4; // same as `normalizeAngle180(toRadians(-135))`\n var quadrantOffset = midAngle180 - quadrantStart;\n var quadrant = Math.floor(quadrantOffset / halfPi);\n var quadrantIndex = mod(quadrant, quadrantTextOpts.length);\n var _a = quadrantTextOpts[quadrantIndex], textAlign = _a.textAlign, textBaseline = _a.textBaseline;\n var datum = data[datumIndex];\n var itemId = datumIndex;\n groupSelectionData.push({\n series: _this,\n datum: datum,\n itemId: itemId,\n index: datumIndex,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle,\n midAngle: midAngle,\n midCos: midCos,\n midSin: midSin,\n calloutLabel: labelVisible\n ? {\n text: labelData[datumIndex],\n textAlign: textAlign,\n textBaseline: textBaseline,\n }\n : undefined,\n sectorLabel: sectorLabelKey\n ? {\n text: sectorLabelData[datumIndex],\n }\n : undefined,\n sectorFormat: sectorFormatData[datumIndex],\n });\n datumIndex++;\n end = start; // Update for next iteration.\n });\n return [2 /*return*/];\n });\n });\n };\n PieSeries.prototype.getSectorFormat = function (datum, itemId, index, highlight) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var _p = this, angleKey = _p.angleKey, radiusKey = _p.radiusKey, fills = _p.fills, strokes = _p.strokes, seriesFillOpacity = _p.fillOpacity, formatter = _p.formatter, seriesId = _p.id;\n var highlightedDatum = this.chart.highlightedDatum;\n var isDatumHighlighted = highlight && ((_a = highlightedDatum) === null || _a === void 0 ? void 0 : _a.series) === this && itemId === highlightedDatum.itemId;\n var highlightedStyle = isDatumHighlighted ? this.highlightStyle.item : null;\n var fill = ((_b = highlightedStyle) === null || _b === void 0 ? void 0 : _b.fill) || fills[index % fills.length];\n var fillOpacity = (_d = (_c = highlightedStyle) === null || _c === void 0 ? void 0 : _c.fillOpacity, (_d !== null && _d !== void 0 ? _d : seriesFillOpacity));\n var stroke = ((_e = highlightedStyle) === null || _e === void 0 ? void 0 : _e.stroke) || strokes[index % strokes.length];\n var strokeWidth = (_g = (_f = highlightedStyle) === null || _f === void 0 ? void 0 : _f.strokeWidth, (_g !== null && _g !== void 0 ? _g : this.getStrokeWidth(this.strokeWidth)));\n var format;\n if (formatter) {\n format = formatter({\n datum: datum,\n angleKey: angleKey,\n radiusKey: radiusKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n return {\n fill: ((_h = format) === null || _h === void 0 ? void 0 : _h.fill) || fill,\n fillOpacity: (_k = (_j = format) === null || _j === void 0 ? void 0 : _j.fillOpacity, (_k !== null && _k !== void 0 ? _k : fillOpacity)),\n stroke: ((_l = format) === null || _l === void 0 ? void 0 : _l.stroke) || stroke,\n strokeWidth: (_o = (_m = format) === null || _m === void 0 ? void 0 : _m.strokeWidth, (_o !== null && _o !== void 0 ? _o : strokeWidth)),\n };\n };\n PieSeries.prototype.createNodeData = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n return __generator$1(this, function (_a) {\n return [2 /*return*/, []];\n });\n });\n };\n PieSeries.prototype.getInnerRadius = function () {\n var _a = this, radius = _a.radius, innerRadiusRatio = _a.innerRadiusRatio, innerRadiusOffset = _a.innerRadiusOffset;\n var innerRadius = radius * ((innerRadiusRatio !== null && innerRadiusRatio !== void 0 ? innerRadiusRatio : 1)) + (innerRadiusOffset ? innerRadiusOffset : 0);\n if (innerRadius === radius || innerRadius < 0) {\n return 0;\n }\n return innerRadius;\n };\n PieSeries.prototype.getOuterRadius = function () {\n var _a = this, radius = _a.radius, outerRadiusRatio = _a.outerRadiusRatio, outerRadiusOffset = _a.outerRadiusOffset;\n var outerRadius = radius * ((outerRadiusRatio !== null && outerRadiusRatio !== void 0 ? outerRadiusRatio : 1)) + (outerRadiusOffset ? outerRadiusOffset : 0);\n if (outerRadius < 0) {\n return 0;\n }\n return outerRadius;\n };\n PieSeries.prototype.update = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var title, innerRadius, outerRadius, outerRadius_1, titleOffset;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0:\n title = this.title;\n innerRadius = this.getInnerRadius();\n outerRadius = this.getOuterRadius();\n this.radiusScale.range = [innerRadius, outerRadius];\n this.group.translationX = this.centerX;\n this.group.translationY = this.centerY;\n if (title) {\n outerRadius_1 = Math.max(0, this.radiusScale.range[1]);\n if (outerRadius_1 === 0) {\n title.node.visible = false;\n }\n else {\n titleOffset = 2;\n title.node.translationY = -outerRadius_1 - titleOffset;\n title.node.visible = title.enabled;\n }\n }\n return [4 /*yield*/, this.updateSelections()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.updateNodes()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n PieSeries.prototype.updateSelections = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.updateGroupSelection()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n PieSeries.prototype.updateGroupSelection = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var _a, groupSelection, highlightSelection, calloutSelection, sectorLabelSelection, innerLabelsSelection, update, updateLabels, enterLabels, updateSectorLabels, enterSectorLabels, updateInnerLabels, enterInnerLabels;\n var _this = this;\n return __generator$1(this, function (_b) {\n _a = this, groupSelection = _a.groupSelection, highlightSelection = _a.highlightSelection, calloutSelection = _a.calloutSelection, sectorLabelSelection = _a.sectorLabelSelection, innerLabelsSelection = _a.innerLabelsSelection;\n update = function (selection) {\n var updateGroups = selection.setData(_this.groupSelectionData);\n updateGroups.exit.remove();\n var enterGroups = updateGroups.enter.append(Group$1);\n enterGroups.append(Sector).each(function (node) { return (node.tag = PieNodeTag.Sector); });\n return updateGroups.merge(enterGroups);\n };\n this.groupSelection = update(groupSelection);\n this.highlightSelection = update(highlightSelection);\n updateLabels = calloutSelection.setData(this.groupSelectionData);\n updateLabels.exit.remove();\n enterLabels = updateLabels.enter.append(Group$1);\n enterLabels.append(Line$1).each(function (node) {\n node.tag = PieNodeTag.Callout;\n node.pointerEvents = PointerEvents$1.None;\n });\n enterLabels.append(Text$1).each(function (node) {\n node.tag = PieNodeTag.Label;\n node.pointerEvents = PointerEvents$1.None;\n });\n this.calloutSelection = updateLabels.merge(enterLabels);\n updateSectorLabels = sectorLabelSelection.setData(this.groupSelectionData);\n updateSectorLabels.exit.remove();\n enterSectorLabels = updateSectorLabels.enter.append(Text$1);\n enterSectorLabels.each(function (node) {\n node.pointerEvents = PointerEvents$1.None;\n });\n this.sectorLabelSelection = updateSectorLabels.merge(enterSectorLabels);\n updateInnerLabels = innerLabelsSelection.setData(this.innerLabels);\n updateInnerLabels.exit.remove();\n enterInnerLabels = updateInnerLabels.enter.append(Text$1);\n enterInnerLabels.each(function (node) {\n node.pointerEvents = PointerEvents$1.None;\n });\n this.innerLabelsSelection = updateInnerLabels.merge(enterInnerLabels);\n return [2 /*return*/];\n });\n });\n };\n PieSeries.prototype.updateNodes = function () {\n var _a, _b;\n return __awaiter$1(this, void 0, void 0, function () {\n var isVisible, _c, radiusScale, calloutLine, highlightedDatum, centerOffsets, innerRadius, updateSectorFn, calloutColors, calloutLength, calloutStrokeWidth, _d, offset_1, fontStyle_1, fontWeight_1, fontSize_1, fontFamily_1, color_1;\n var _this = this;\n return __generator$1(this, function (_e) {\n if (!this.chart) {\n return [2 /*return*/];\n }\n isVisible = this.seriesItemEnabled.indexOf(true) >= 0;\n this.group.visible = isVisible;\n this.backgroundGroup.visible = isVisible;\n this.seriesGroup.visible = isVisible;\n this.highlightGroup.visible = isVisible && ((_b = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.highlightedDatum) === null || _b === void 0 ? void 0 : _b.series) === this;\n this.labelGroup.visible = isVisible;\n this.seriesGroup.opacity = this.getOpacity();\n this.updateInnerCircle();\n _c = this, radiusScale = _c.radiusScale, calloutLine = _c.calloutLine, highlightedDatum = _c.chart.highlightedDatum;\n centerOffsets = [];\n innerRadius = radiusScale.convert(0);\n updateSectorFn = function (sector, datum, index, isDatumHighlighted) {\n var _a;\n var radius = radiusScale.convert(datum.radius, clamper$1);\n // Bring highlighted sector's parent group to front.\n var sectorParent = sector.parent;\n var sectorGrandParent = (_a = sectorParent) === null || _a === void 0 ? void 0 : _a.parent;\n if (isDatumHighlighted && sectorParent && sectorGrandParent) {\n sectorGrandParent.removeChild(sectorParent);\n sectorGrandParent.appendChild(sectorParent);\n }\n sector.innerRadius = Math.max(0, innerRadius);\n sector.outerRadius = Math.max(0, radius);\n sector.startAngle = datum.startAngle;\n sector.endAngle = datum.endAngle;\n var format = _this.getSectorFormat(datum.datum, datum.itemId, index, isDatumHighlighted);\n sector.fill = format.fill;\n sector.stroke = format.stroke;\n sector.strokeWidth = format.strokeWidth;\n sector.fillOpacity = format.fillOpacity;\n sector.strokeOpacity = _this.strokeOpacity;\n sector.lineDash = _this.lineDash;\n sector.lineDashOffset = _this.lineDashOffset;\n sector.fillShadow = _this.shadow;\n sector.lineJoin = 'round';\n centerOffsets.push(sector.centerOffset);\n _this.datumSectorRefs.set(datum, sector);\n };\n this.groupSelection\n .selectByTag(PieNodeTag.Sector)\n .each(function (node, datum, index) { return updateSectorFn(node, datum, index, false); });\n this.highlightSelection.selectByTag(PieNodeTag.Sector).each(function (node, datum, index) {\n var _a;\n var isDatumHighlighted = ((_a = highlightedDatum) === null || _a === void 0 ? void 0 : _a.series) === _this && datum.itemId === highlightedDatum.itemId;\n node.visible = isDatumHighlighted;\n if (node.visible) {\n updateSectorFn(node, datum, index, isDatumHighlighted);\n }\n });\n calloutColors = calloutLine.colors, calloutLength = calloutLine.length, calloutStrokeWidth = calloutLine.strokeWidth;\n this.calloutSelection.selectByTag(PieNodeTag.Callout).each(function (line, datum, index) {\n var radius = radiusScale.convert(datum.radius, clamper$1);\n var outerRadius = Math.max(0, radius);\n if (datum.calloutLabel && outerRadius !== 0) {\n line.strokeWidth = calloutStrokeWidth;\n line.stroke = calloutColors[index % calloutColors.length];\n line.x1 = datum.midCos * outerRadius;\n line.y1 = datum.midSin * outerRadius;\n line.x2 = datum.midCos * (outerRadius + calloutLength);\n line.y2 = datum.midSin * (outerRadius + calloutLength);\n }\n else {\n line.stroke = undefined;\n }\n });\n {\n _d = this.calloutLabel, offset_1 = _d.offset, fontStyle_1 = _d.fontStyle, fontWeight_1 = _d.fontWeight, fontSize_1 = _d.fontSize, fontFamily_1 = _d.fontFamily, color_1 = _d.color;\n this.calloutSelection.selectByTag(PieNodeTag.Label).each(function (text, datum, index) {\n var label = datum.calloutLabel;\n var radius = radiusScale.convert(datum.radius, clamper$1);\n var outerRadius = Math.max(0, radius);\n if (label && outerRadius !== 0) {\n var labelRadius = centerOffsets[index] + outerRadius + calloutLength + offset_1;\n text.fontStyle = fontStyle_1;\n text.fontWeight = fontWeight_1;\n text.fontSize = fontSize_1;\n text.fontFamily = fontFamily_1;\n text.text = label.text;\n text.x = datum.midCos * labelRadius;\n text.y = datum.midSin * labelRadius;\n text.fill = color_1;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n }\n else {\n text.fill = undefined;\n }\n });\n }\n this.updateSectorLabelNodes();\n this.updateInnerLabelNodes();\n return [2 /*return*/];\n });\n });\n };\n PieSeries.prototype.updateSectorLabelNodes = function () {\n var _this = this;\n var radiusScale = this.radiusScale;\n var innerRadius = radiusScale.convert(0);\n var _a = this.sectorLabel, fontSize = _a.fontSize, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontFamily = _a.fontFamily, positionOffset = _a.positionOffset, positionRatio = _a.positionRatio, color = _a.color;\n var isDoughnut = innerRadius > 0;\n var singleVisibleSector = this.seriesItemEnabled.filter(Boolean).length === 1;\n this.sectorLabelSelection.each(function (text, datum) {\n var sectorLabel = datum.sectorLabel;\n var radius = radiusScale.convert(datum.radius, clamper$1);\n var outerRadius = Math.max(0, radius);\n var isTextVisible = false;\n if (sectorLabel && outerRadius !== 0) {\n var labelRadius = innerRadius * (1 - positionRatio) + radius * positionRatio + positionOffset;\n text.fill = color;\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.text = sectorLabel.text;\n var shouldPutTextInCenter = !isDoughnut && singleVisibleSector;\n if (shouldPutTextInCenter) {\n text.x = 0;\n text.y = 0;\n }\n else {\n text.x = datum.midCos * labelRadius;\n text.y = datum.midSin * labelRadius;\n }\n text.textAlign = 'center';\n text.textBaseline = 'middle';\n var sector = _this.datumSectorRefs.get(datum);\n if (sector) {\n var bbox = text.computeBBox();\n var corners = [\n [bbox.x, bbox.y],\n [bbox.x + bbox.width, bbox.y],\n [bbox.x + bbox.width, bbox.y + bbox.height],\n [bbox.x, bbox.y + bbox.height],\n ];\n var startAngle = datum.startAngle, endAngle = datum.endAngle;\n var sectorBounds_1 = { startAngle: startAngle, endAngle: endAngle, innerRadius: innerRadius, outerRadius: outerRadius };\n if (corners.every(function (_a) {\n var _b = __read$n(_a, 2), x = _b[0], y = _b[1];\n return isPointInArc(x, y, sectorBounds_1);\n })) {\n isTextVisible = true;\n }\n }\n }\n text.visible = isTextVisible;\n });\n };\n PieSeries.prototype.updateInnerCircle = function () {\n var circle = this._innerCircleNode;\n if (!circle) {\n return;\n }\n var innerRadius = this.getInnerRadius();\n if (innerRadius === 0) {\n circle.size = 0;\n }\n else {\n var circleRadius = Math.min(innerRadius, this.getOuterRadius());\n var antiAliasingPadding = 1;\n circle.size = Math.ceil(circleRadius * 2 + antiAliasingPadding);\n }\n };\n PieSeries.prototype.updateInnerLabelNodes = function () {\n var textBBoxes = [];\n var margins = [];\n this.innerLabelsSelection.each(function (text, datum) {\n var fontStyle = datum.fontStyle, fontWeight = datum.fontWeight, fontSize = datum.fontSize, fontFamily = datum.fontFamily, color = datum.color;\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.text = datum.text;\n text.x = 0;\n text.y = 0;\n text.fill = color;\n text.textAlign = 'center';\n text.textBaseline = 'alphabetic';\n textBBoxes.push(text.computeBBox());\n margins.push(datum.margin);\n });\n var getMarginTop = function (index) { return (index === 0 ? 0 : margins[index]); };\n var getMarginBottom = function (index) { return (index === margins.length - 1 ? 0 : margins[index]); };\n var totalHeight = textBBoxes.reduce(function (sum, bbox, i) {\n return sum + bbox.height + getMarginTop(i) + getMarginBottom(i);\n }, 0);\n var totalWidth = Math.max.apply(Math, __spread$9(textBBoxes.map(function (bbox) { return bbox.width; })));\n var innerRadius = this.getInnerRadius();\n var labelRadius = Math.sqrt(Math.pow(totalWidth / 2, 2) + Math.pow(totalHeight / 2, 2));\n var labelsVisible = labelRadius <= (innerRadius > 0 ? innerRadius : this.getOuterRadius());\n var textBottoms = [];\n for (var i = 0, prev = -totalHeight / 2; i < textBBoxes.length; i++) {\n var bbox = textBBoxes[i];\n var bottom = bbox.height + prev + getMarginTop(i);\n textBottoms.push(bottom);\n prev = bottom + getMarginBottom(i);\n }\n this.innerLabelsSelection.each(function (text, _datum, index) {\n text.y = textBottoms[index];\n text.visible = labelsVisible;\n });\n };\n PieSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new PieSeriesNodeClickEvent(this.angleKey, this.calloutLabelKey, this.sectorLabelKey, this.radiusKey, event, datum, this);\n };\n PieSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var angleKey = this.angleKey;\n if (!angleKey) {\n return '';\n }\n var _a = this, tooltip = _a.tooltip, angleName = _a.angleName, radiusKey = _a.radiusKey, radiusName = _a.radiusName, calloutLabelKey = _a.calloutLabelKey, sectorLabelKey = _a.sectorLabelKey, calloutLabelName = _a.calloutLabelName, sectorLabelName = _a.sectorLabelName, seriesId = _a.id;\n var tooltipRenderer = tooltip.renderer;\n var color = nodeDatum.sectorFormat.fill;\n var datum = nodeDatum.datum;\n var label = calloutLabelKey ? datum[calloutLabelKey] + \": \" : '';\n var angleValue = datum[angleKey];\n var formattedAngleValue = typeof angleValue === 'number' ? toFixed(angleValue) : angleValue.toString();\n var title = this.title ? this.title.text : undefined;\n var content = label + formattedAngleValue;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n angleKey: angleKey,\n angleValue: angleValue,\n angleName: angleName,\n radiusKey: radiusKey,\n radiusValue: radiusKey ? datum[radiusKey] : undefined,\n radiusName: radiusName,\n labelKey: calloutLabelKey,\n labelName: calloutLabelName,\n calloutLabelKey: calloutLabelKey,\n calloutLabelName: calloutLabelName,\n sectorLabelKey: sectorLabelKey,\n sectorLabelName: sectorLabelName,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n PieSeries.prototype.getLegendData = function () {\n var _this = this;\n var _a = this, calloutLabelKey = _a.calloutLabelKey, data = _a.data, sectorFormatData = _a.sectorFormatData;\n if (data && data.length && calloutLabelKey) {\n var id_1 = this.id;\n var legendData_1 = [];\n var titleText_1 = this.title && this.title.showInLegend && this.title.text;\n data.forEach(function (datum, index) {\n var labelParts = [];\n titleText_1 && labelParts.push(titleText_1);\n labelParts.push(String(datum[calloutLabelKey]));\n legendData_1.push({\n id: id_1,\n itemId: index,\n seriesId: id_1,\n enabled: _this.seriesItemEnabled[index],\n label: {\n text: labelParts.join(' - '),\n },\n marker: {\n fill: sectorFormatData[index].fill,\n stroke: sectorFormatData[index].stroke,\n fillOpacity: _this.fillOpacity,\n strokeOpacity: _this.strokeOpacity,\n },\n });\n });\n return legendData_1;\n }\n return [];\n };\n PieSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n this.seriesItemEnabled[itemId] = enabled;\n this.nodeDataRefresh = true;\n };\n PieSeries.className = 'PieSeries';\n PieSeries.type = 'pie';\n __decorate$18([\n DeprecatedAndRenamedTo('calloutLabel')\n ], PieSeries.prototype, \"label\", void 0);\n __decorate$18([\n DeprecatedAndRenamedTo('calloutLine')\n ], PieSeries.prototype, \"callout\", void 0);\n __decorate$18([\n Validate(STRING)\n ], PieSeries.prototype, \"angleKey\", void 0);\n __decorate$18([\n Validate(STRING)\n ], PieSeries.prototype, \"angleName\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"radiusKey\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"radiusName\", void 0);\n __decorate$18([\n Validate(OPT_NUMBER(0))\n ], PieSeries.prototype, \"radiusMin\", void 0);\n __decorate$18([\n Validate(OPT_NUMBER(0))\n ], PieSeries.prototype, \"radiusMax\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"calloutLabelKey\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"calloutLabelName\", void 0);\n __decorate$18([\n DeprecatedAndRenamedTo('calloutLabelKey')\n ], PieSeries.prototype, \"labelKey\", void 0);\n __decorate$18([\n DeprecatedAndRenamedTo('calloutLabelName')\n ], PieSeries.prototype, \"labelName\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"sectorLabelKey\", void 0);\n __decorate$18([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"sectorLabelName\", void 0);\n __decorate$18([\n Validate(COLOR_STRING_ARRAY)\n ], PieSeries.prototype, \"fills\", void 0);\n __decorate$18([\n Validate(COLOR_STRING_ARRAY)\n ], PieSeries.prototype, \"strokes\", void 0);\n __decorate$18([\n Validate(NUMBER(0, 1))\n ], PieSeries.prototype, \"fillOpacity\", void 0);\n __decorate$18([\n Validate(NUMBER(0, 1))\n ], PieSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$18([\n Validate(OPT_LINE_DASH)\n ], PieSeries.prototype, \"lineDash\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$18([\n Validate(OPT_FUNCTION)\n ], PieSeries.prototype, \"formatter\", void 0);\n __decorate$18([\n Validate(NUMBER(-360, 360))\n ], PieSeries.prototype, \"rotation\", void 0);\n __decorate$18([\n Validate(NUMBER())\n ], PieSeries.prototype, \"outerRadiusOffset\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"outerRadiusRatio\", void 0);\n __decorate$18([\n Validate(NUMBER())\n ], PieSeries.prototype, \"innerRadiusOffset\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"innerRadiusRatio\", void 0);\n __decorate$18([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"strokeWidth\", void 0);\n return PieSeries;\n}(PolarSeries));\n\nfunction floor$b(date) {\n date.setUTCSeconds(0, 0);\n}\nfunction offset$b(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute$1);\n}\nfunction count$b(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute$1;\n}\nfunction field$9(date) {\n return date.getUTCMinutes();\n}\nvar utcMinute = new CountableTimeInterval$1(floor$b, offset$b, count$b, field$9);\n\nfunction floor$a(date) {\n date.setUTCMinutes(0, 0, 0);\n}\nfunction offset$a(date, hours) {\n date.setTime(date.getTime() + hours * durationHour$1);\n}\nfunction count$a(start, end) {\n return (end.getTime() - start.getTime()) / durationHour$1;\n}\nfunction field$8(date) {\n return date.getUTCHours();\n}\nvar utcHour = new CountableTimeInterval$1(floor$a, offset$a, count$a, field$8);\n\nfunction floor$9(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$9(date, months) {\n date.setUTCMonth(date.getUTCMonth() + months);\n}\nfunction count$9(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}\nfunction field$7(date) {\n return date.getUTCMonth();\n}\nvar utcMonth = new CountableTimeInterval$1(floor$9, offset$9, count$9, field$7);\n\nvar __assign$s = (undefined && undefined.__assign) || function () {\n __assign$s = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$s.apply(this, arguments);\n};\nvar __read$m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar palette$8 = {\n fills: ['#f3622d', '#fba71b', '#57b757', '#41a9c9', '#4258c9', '#9a42c8', '#c84164', '#888888'],\n strokes: ['#aa4520', '#b07513', '#3d803d', '#2d768d', '#2e3e8d', '#6c2e8c', '#8c2d46', '#5f5f5f'],\n};\nfunction arrayMerge(_target, source, _options) {\n return source;\n}\nfunction isMergeableObject(value) {\n return defaultIsMergeableObject$1(value) && !(value instanceof TimeInterval$1);\n}\nvar mergeOptions = { arrayMerge: arrayMerge, isMergeableObject: isMergeableObject };\nvar BOLD = 'bold';\nvar INSIDE = 'inside';\nvar RIGHT = 'right';\nvar ChartTheme = /** @class */ (function () {\n function ChartTheme(options) {\n options = deepMerge$1({}, options || {}, mergeOptions);\n var _a = options.overrides, overrides = _a === void 0 ? null : _a, _b = options.palette, palette = _b === void 0 ? null : _b;\n var defaults = this.createChartConfigPerSeries(this.getDefaults());\n if (overrides) {\n var common = overrides.common, cartesian = overrides.cartesian, polar = overrides.polar, hierarchy = overrides.hierarchy;\n var applyOverrides = function (type, seriesTypes, overrideOpts) {\n if (overrideOpts) {\n defaults[type] = deepMerge$1(defaults[type], overrideOpts, mergeOptions);\n seriesTypes.forEach(function (seriesType) {\n defaults[seriesType] = deepMerge$1(defaults[seriesType], overrideOpts, mergeOptions);\n });\n }\n };\n applyOverrides('common', Object.keys(defaults), common);\n applyOverrides('cartesian', ChartTheme.cartesianSeriesTypes, cartesian);\n applyOverrides('polar', ChartTheme.polarSeriesTypes, polar);\n applyOverrides('hierarchy', ChartTheme.hierarchySeriesTypes, hierarchy);\n var seriesOverridesMap_1 = {};\n ChartTheme.seriesTypes.forEach(function (seriesType) {\n var chartConfig = overrides[seriesType];\n if (chartConfig) {\n if (chartConfig.series) {\n seriesOverridesMap_1[seriesType] = chartConfig.series;\n chartConfig.series = seriesOverridesMap_1;\n }\n defaults[seriesType] = deepMerge$1(defaults[seriesType], chartConfig, mergeOptions);\n }\n });\n }\n this.palette = (palette !== null && palette !== void 0 ? palette : this.getPalette());\n this.config = Object.freeze(defaults);\n }\n ChartTheme.prototype.getPalette = function () {\n return palette$8;\n };\n ChartTheme.getAxisDefaults = function () {\n return {\n top: {},\n right: {},\n bottom: {},\n left: {},\n thickness: 0,\n title: {\n enabled: false,\n text: 'Axis Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n },\n label: {\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n padding: 5,\n rotation: undefined,\n color: 'rgb(87, 87, 87)',\n formatter: undefined,\n autoRotate: false,\n },\n line: {\n width: 1,\n color: 'rgb(195, 195, 195)',\n },\n tick: {\n width: 1,\n size: 6,\n color: 'rgb(195, 195, 195)',\n },\n gridStyle: [\n {\n stroke: 'rgb(219, 219, 219)',\n lineDash: [4, 2],\n },\n ],\n crossLines: {\n enabled: false,\n fill: 'rgb(187,221,232)',\n stroke: 'rgb(70,162,192)',\n strokeWidth: 1,\n label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n padding: 5,\n color: 'rgb(87, 87, 87)',\n rotation: undefined,\n },\n },\n };\n };\n ChartTheme.getSeriesDefaults = function () {\n return {\n tooltip: {\n enabled: true,\n renderer: undefined,\n },\n visible: true,\n showInLegend: true,\n cursor: 'default',\n highlightStyle: {\n item: {\n fill: 'yellow',\n fillOpacity: 1,\n },\n series: {\n dimOpacity: 1,\n },\n },\n };\n };\n ChartTheme.getBarSeriesDefaults = function () {\n return __assign$s(__assign$s({}, this.getSeriesDefaults()), { flipXY: false, fillOpacity: 1, strokeOpacity: 1, xKey: '', xName: '', normalizedTo: undefined, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n placement: INSIDE,\n }, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n } });\n };\n ChartTheme.getLineSeriesDefaults = function () {\n var seriesDefaults = this.getSeriesDefaults();\n return __assign$s(__assign$s({}, seriesDefaults), { tooltip: __assign$s(__assign$s({}, seriesDefaults.tooltip), { format: undefined }) });\n };\n ChartTheme.getCartesianSeriesMarkerDefaults = function () {\n return {\n enabled: true,\n shape: 'circle',\n size: 6,\n maxSize: 30,\n strokeWidth: 1,\n formatter: undefined,\n };\n };\n ChartTheme.getChartDefaults = function () {\n return {\n background: {\n visible: true,\n fill: 'white',\n },\n padding: {\n top: 20,\n right: 20,\n bottom: 20,\n left: 20,\n },\n title: {\n enabled: false,\n text: 'Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 16,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n },\n subtitle: {\n enabled: false,\n text: 'Subtitle',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(140, 140, 140)',\n },\n legend: {\n enabled: true,\n position: RIGHT,\n spacing: 20,\n item: {\n paddingX: 16,\n paddingY: 8,\n marker: {\n shape: undefined,\n size: 15,\n strokeWidth: 1,\n padding: 8,\n },\n label: {\n color: 'black',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n formatter: undefined,\n },\n },\n reverseOrder: false,\n },\n tooltip: {\n enabled: true,\n tracking: true,\n delay: 0,\n class: DEFAULT_TOOLTIP_CLASS,\n },\n };\n };\n ChartTheme.prototype.createChartConfigPerSeries = function (config) {\n var typeToAliases = {\n cartesian: ChartTheme.cartesianSeriesTypes,\n polar: ChartTheme.polarSeriesTypes,\n hierarchy: ChartTheme.hierarchySeriesTypes,\n groupedCategory: [],\n };\n Object.entries(typeToAliases).forEach(function (_a) {\n var _b = __read$m(_a, 2), type = _b[0], aliases = _b[1];\n aliases.forEach(function (alias) {\n if (!config[alias]) {\n config[alias] = deepMerge$1({}, config[type], mergeOptions);\n }\n });\n });\n return config;\n };\n ChartTheme.prototype.getConfig = function (path, defaultValue) {\n var value = getValue(this.config, path, defaultValue);\n if (Array.isArray(value)) {\n return deepMerge$1([], value, mergeOptions);\n }\n if (isObject(value)) {\n return deepMerge$1({}, value, mergeOptions);\n }\n return value;\n };\n /**\n * Meant to be overridden in subclasses. For example:\n * ```\n * getDefaults() {\n * const subclassDefaults = { ... };\n * return this.mergeWithParentDefaults(subclassDefaults);\n * }\n * ```\n */\n ChartTheme.prototype.getDefaults = function () {\n return deepMerge$1({}, ChartTheme.defaults, mergeOptions);\n };\n ChartTheme.prototype.mergeWithParentDefaults = function (parentDefaults, defaults) {\n return deepMerge$1(parentDefaults, defaults, mergeOptions);\n };\n ChartTheme.fontFamily = 'Verdana, sans-serif';\n ChartTheme.cartesianDefaults = __assign$s(__assign$s({}, ChartTheme.getChartDefaults()), { axes: {\n number: __assign$s({}, ChartTheme.getAxisDefaults()),\n log: __assign$s(__assign$s({}, ChartTheme.getAxisDefaults()), { base: 10 }),\n category: __assign$s(__assign$s({}, ChartTheme.getAxisDefaults()), { groupPaddingInner: 0.1, label: __assign$s(__assign$s({}, ChartTheme.getAxisDefaults().label), { autoRotate: true }) }),\n groupedCategory: __assign$s({}, ChartTheme.getAxisDefaults()),\n time: __assign$s({}, ChartTheme.getAxisDefaults()),\n }, series: {\n column: __assign$s(__assign$s({}, ChartTheme.getBarSeriesDefaults()), { flipXY: false }),\n bar: __assign$s(__assign$s({}, ChartTheme.getBarSeriesDefaults()), { flipXY: true }),\n line: __assign$s(__assign$s({}, ChartTheme.getLineSeriesDefaults()), { title: undefined, xKey: '', xName: '', yKey: '', yName: '', strokeWidth: 2, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, marker: __assign$s(__assign$s({}, ChartTheme.getCartesianSeriesMarkerDefaults()), { fillOpacity: 1, strokeOpacity: 1 }), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n } }),\n scatter: __assign$s(__assign$s({}, ChartTheme.getSeriesDefaults()), { title: undefined, xKey: '', yKey: '', sizeKey: undefined, labelKey: undefined, xName: '', yName: '', sizeName: 'Size', labelName: 'Label', strokeWidth: 2, fillOpacity: 1, strokeOpacity: 1, marker: __assign$s({}, ChartTheme.getCartesianSeriesMarkerDefaults()), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n } }),\n area: __assign$s(__assign$s({}, ChartTheme.getSeriesDefaults()), { xKey: '', xName: '', normalizedTo: undefined, fillOpacity: 0.8, strokeOpacity: 1, strokeWidth: 2, lineDash: [0], lineDashOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n }, marker: __assign$s(__assign$s({}, ChartTheme.getCartesianSeriesMarkerDefaults()), { fillOpacity: 1, strokeOpacity: 1, enabled: false }), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n } }),\n histogram: __assign$s(__assign$s({}, ChartTheme.getSeriesDefaults()), { xKey: '', yKey: '', xName: '', yName: '', strokeWidth: 1, fillOpacity: 1, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, areaPlot: false, bins: undefined, aggregation: 'sum', label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n }, shadow: {\n enabled: true,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 0,\n yOffset: 0,\n blur: 5,\n } }),\n }, navigator: {\n enabled: false,\n height: 30,\n mask: {\n fill: '#999999',\n stroke: '#999999',\n strokeWidth: 1,\n fillOpacity: 0.2,\n },\n minHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8,\n },\n maxHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8,\n },\n } });\n ChartTheme.polarDefaults = __assign$s(__assign$s({}, ChartTheme.getChartDefaults()), { series: {\n pie: __assign$s(__assign$s({}, ChartTheme.getSeriesDefaults()), { title: {\n enabled: true,\n text: '',\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n }, angleKey: '', angleName: '', radiusKey: undefined, radiusName: undefined, calloutLabelKey: undefined, calloutLabelName: undefined, sectorLabelKey: undefined, sectorLabelName: undefined, calloutLabel: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n offset: 3,\n minAngle: 20,\n }, sectorLabel: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n positionOffset: 0,\n positionRatio: 0.5,\n }, calloutLine: {\n length: 10,\n strokeWidth: 2,\n }, fillOpacity: 1, strokeOpacity: 1, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, rotation: 0, outerRadiusOffset: 0, innerRadiusOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n }, innerLabels: {\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n margin: 2,\n } }),\n } });\n ChartTheme.hierarchyDefaults = __assign$s(__assign$s({}, ChartTheme.getChartDefaults()), { series: {\n treemap: __assign$s(__assign$s({}, ChartTheme.getSeriesDefaults()), { showInLegend: false, labelKey: 'label', sizeKey: 'size', colorKey: 'color', colorDomain: [-5, 5], colorRange: ['#cb4b3f', '#6acb64'], colorParents: false, gradient: true, nodePadding: 2, title: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n padding: 15,\n }, subtitle: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 9,\n fontFamily: 'Verdana, sans-serif',\n padding: 13,\n }, labels: {\n large: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 18,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n },\n medium: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n },\n small: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 10,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n },\n color: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n },\n } }),\n } });\n ChartTheme.defaults = {\n cartesian: ChartTheme.cartesianDefaults,\n groupedCategory: ChartTheme.cartesianDefaults,\n polar: ChartTheme.polarDefaults,\n hierarchy: ChartTheme.hierarchyDefaults,\n };\n ChartTheme.cartesianSeriesTypes = [\n 'line',\n 'area',\n 'bar',\n 'column',\n 'scatter',\n 'histogram',\n ];\n ChartTheme.polarSeriesTypes = ['pie'];\n ChartTheme.hierarchySeriesTypes = ['treemap'];\n ChartTheme.seriesTypes = ChartTheme.cartesianSeriesTypes\n .concat(ChartTheme.polarSeriesTypes)\n .concat(ChartTheme.hierarchySeriesTypes);\n return ChartTheme;\n}());\n\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$r = (undefined && undefined.__assign) || function () {\n __assign$r = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$r.apply(this, arguments);\n};\nvar DarkTheme = /** @class */ (function (_super) {\n __extends$1_(DarkTheme, _super);\n function DarkTheme(options) {\n return _super.call(this, options) || this;\n }\n DarkTheme.prototype.getDefaults = function () {\n var fontColor = 'rgb(200, 200, 200)';\n var mutedFontColor = 'rgb(150, 150, 150)';\n var axisDefaults = {\n title: {\n color: fontColor,\n },\n label: {\n color: fontColor,\n },\n gridStyle: [\n {\n stroke: 'rgb(88, 88, 88)',\n lineDash: [4, 2],\n },\n ],\n };\n var seriesLabelDefaults = {\n label: {\n color: fontColor,\n },\n };\n var chartAxesDefaults = {\n axes: {\n number: __assign$r({}, axisDefaults),\n category: __assign$r({}, axisDefaults),\n time: __assign$r({}, axisDefaults),\n },\n };\n var chartDefaults = {\n background: {\n fill: 'rgb(34, 38, 41)',\n },\n title: {\n color: fontColor,\n },\n subtitle: {\n color: mutedFontColor,\n },\n legend: {\n item: {\n label: {\n color: fontColor,\n },\n },\n },\n };\n return this.mergeWithParentDefaults(_super.prototype.getDefaults.call(this), {\n cartesian: __assign$r(__assign$r(__assign$r({}, chartDefaults), chartAxesDefaults), { series: {\n bar: __assign$r({}, seriesLabelDefaults),\n column: __assign$r({}, seriesLabelDefaults),\n histogram: __assign$r({}, seriesLabelDefaults),\n } }),\n groupedCategory: __assign$r(__assign$r(__assign$r({}, chartDefaults), chartAxesDefaults), { series: {\n bar: __assign$r({}, seriesLabelDefaults),\n column: __assign$r({}, seriesLabelDefaults),\n histogram: __assign$r({}, seriesLabelDefaults),\n } }),\n polar: __assign$r(__assign$r({}, chartDefaults), { series: {\n pie: {\n calloutLabel: {\n color: fontColor,\n },\n sectorLabel: {\n color: fontColor,\n },\n title: {\n color: fontColor,\n },\n innerLabels: {\n color: fontColor,\n },\n },\n } }),\n hierarchy: __assign$r(__assign$r({}, chartDefaults), { series: {\n treemap: {\n title: {\n color: fontColor,\n },\n subtitle: {\n color: mutedFontColor,\n },\n labels: {\n large: {\n color: fontColor,\n },\n medium: {\n color: fontColor,\n },\n small: {\n color: fontColor,\n },\n color: {\n color: fontColor,\n },\n },\n },\n } }),\n });\n };\n return DarkTheme;\n}(ChartTheme));\n\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$7 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722',\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18',\n ],\n};\nvar MaterialLight = /** @class */ (function (_super) {\n __extends$1Z(MaterialLight, _super);\n function MaterialLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialLight.prototype.getPalette = function () {\n return palette$7;\n };\n return MaterialLight;\n}(ChartTheme));\n\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$6 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722',\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18',\n ],\n};\nvar MaterialDark = /** @class */ (function (_super) {\n __extends$1Y(MaterialDark, _super);\n function MaterialDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialDark.prototype.getPalette = function () {\n return palette$6;\n };\n return MaterialDark;\n}(DarkTheme));\n\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$5 = {\n fills: ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'],\n strokes: ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'],\n};\nvar PastelLight = /** @class */ (function (_super) {\n __extends$1X(PastelLight, _super);\n function PastelLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelLight.prototype.getPalette = function () {\n return palette$5;\n };\n return PastelLight;\n}(ChartTheme));\n\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$4 = {\n fills: ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'],\n strokes: ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'],\n};\nvar PastelDark = /** @class */ (function (_super) {\n __extends$1W(PastelDark, _super);\n function PastelDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelDark.prototype.getPalette = function () {\n return palette$4;\n };\n return PastelDark;\n}(DarkTheme));\n\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$3 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0',\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d',\n ],\n};\nvar SolarLight = /** @class */ (function (_super) {\n __extends$1V(SolarLight, _super);\n function SolarLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarLight.prototype.getPalette = function () {\n return palette$3;\n };\n return SolarLight;\n}(ChartTheme));\n\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$2 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0',\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d',\n ],\n};\nvar SolarDark = /** @class */ (function (_super) {\n __extends$1U(SolarDark, _super);\n function SolarDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarDark.prototype.getPalette = function () {\n return palette$2;\n };\n return SolarDark;\n}(DarkTheme));\n\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$1 = {\n fills: ['#5BC0EB', '#FDE74C', '#9BC53D', '#E55934', '#FA7921', '#fa3081'],\n strokes: ['#4086a4', '#b1a235', '#6c8a2b', '#a03e24', '#af5517', '#af225a'],\n};\nvar VividLight = /** @class */ (function (_super) {\n __extends$1T(VividLight, _super);\n function VividLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividLight.prototype.getPalette = function () {\n return palette$1;\n };\n return VividLight;\n}(ChartTheme));\n\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette = {\n fills: ['#5BC0EB', '#FDE74C', '#9BC53D', '#E55934', '#FA7921', '#fa3081'],\n strokes: ['#4086a4', '#b1a235', '#6c8a2b', '#a03e24', '#af5517', '#af225a'],\n};\nvar VividDark = /** @class */ (function (_super) {\n __extends$1S(VividDark, _super);\n function VividDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividDark.prototype.getPalette = function () {\n return palette;\n };\n return VividDark;\n}(DarkTheme));\n\nvar __assign$q = (undefined && undefined.__assign) || function () {\n __assign$q = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$q.apply(this, arguments);\n};\nvar lightTheme = new ChartTheme();\nvar darkTheme = new DarkTheme();\nvar lightThemes = {\n undefined: lightTheme,\n null: lightTheme,\n 'ag-default': lightTheme,\n 'ag-material': new MaterialLight(),\n 'ag-pastel': new PastelLight(),\n 'ag-solar': new SolarLight(),\n 'ag-vivid': new VividLight(),\n};\nvar darkThemes = {\n undefined: darkTheme,\n null: darkTheme,\n 'ag-default-dark': darkTheme,\n 'ag-material-dark': new MaterialDark(),\n 'ag-pastel-dark': new PastelDark(),\n 'ag-solar-dark': new SolarDark(),\n 'ag-vivid-dark': new VividDark(),\n};\nvar themes = __assign$q(__assign$q({}, darkThemes), lightThemes);\nfunction getChartTheme(value) {\n if (value instanceof ChartTheme) {\n return value;\n }\n var stockTheme = themes[value];\n if (stockTheme) {\n return stockTheme;\n }\n value = value;\n if (value.baseTheme || value.overrides || value.palette) {\n var baseTheme = getChartTheme(value.baseTheme);\n return new baseTheme.constructor(value);\n }\n return lightTheme;\n}\nfunction getIntegratedChartTheme(value) {\n var theme = getChartTheme(value);\n var themeConfig = theme.config;\n for (var chartType in themeConfig) {\n var axes = themeConfig[chartType].axes;\n for (var axis in axes) {\n delete axes[axis].crossLines;\n }\n }\n return theme;\n}\n\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar identity$3 = function (x) { return x; };\nvar LogScale = /** @class */ (function (_super) {\n __extends$1R(LogScale, _super);\n function LogScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'log';\n _this._domain = [1, 10];\n _this.baseLog = identity$3; // takes a log with base `base` of `x`\n _this.basePow = identity$3; // raises `base` to the power of `x`\n _this._base = 10;\n return _this;\n }\n LogScale.prototype.setDomain = function (values) {\n var df = values[0];\n var dl = values[values.length - 1];\n if (df === 0 || dl === 0 || (df < 0 && dl > 0) || (df > 0 && dl < 0)) {\n console.warn('Log scale domain should not start at, end at or cross zero.');\n if (df === 0 && dl > 0) {\n df = Number.EPSILON;\n }\n else if (dl === 0 && df < 0) {\n dl = -Number.EPSILON;\n }\n else if (df < 0 && dl > 0) {\n if (Math.abs(dl) >= Math.abs(df)) {\n df = Number.EPSILON;\n }\n else {\n dl = -Number.EPSILON;\n }\n }\n else if (df > 0 && dl < 0) {\n if (Math.abs(dl) >= Math.abs(df)) {\n df = -Number.EPSILON;\n }\n else {\n dl = Number.EPSILON;\n }\n }\n values = values.slice();\n values[0] = df;\n values[values.length - 1] = dl;\n }\n _super.prototype.setDomain.call(this, values);\n };\n LogScale.prototype.getDomain = function () {\n return _super.prototype.getDomain.call(this);\n };\n Object.defineProperty(LogScale.prototype, \"base\", {\n get: function () {\n return this._base;\n },\n set: function (value) {\n if (this._base !== value) {\n this._base = value;\n this.rescale();\n }\n },\n enumerable: true,\n configurable: true\n });\n LogScale.prototype.rescale = function () {\n var base = this.base;\n var baseLog = LogScale.makeLogFn(base);\n var basePow = LogScale.makePowFn(base);\n if (this.domain[0] < 0) {\n baseLog = this.reflect(baseLog);\n basePow = this.reflect(basePow);\n this.transform = function (x) { return -Math.log(-x); };\n this.untransform = function (x) { return -Math.exp(-x); };\n }\n else {\n this.transform = function (x) { return Math.log(x); };\n this.untransform = function (x) { return Math.exp(x); };\n }\n this.baseLog = baseLog;\n this.basePow = basePow;\n _super.prototype.rescale.call(this);\n };\n /**\n * For example, if `f` is `Math.log10`, we have\n *\n * f(100) == 2\n * f(-100) == NaN\n * rf = reflect(f)\n * rf(-100) == -2\n *\n * @param f\n */\n LogScale.prototype.reflect = function (f) {\n return function (x) { return -f(-x); };\n };\n LogScale.prototype.nice = function () {\n var _a, _b;\n var domain = this.domain;\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read$l([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read$l([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n // For example, for base == 10:\n // [ 50, 900] becomes [ 10, 1000 ]\n domain[i0] = this.basePow(Math.floor(this.baseLog(x0)));\n domain[i1] = this.basePow(Math.ceil(this.baseLog(x1)));\n this.domain = domain;\n };\n LogScale.pow10 = function (x) {\n return isFinite(x)\n ? +('1e' + x) // to avoid precision issues, e.g. Math.pow(10, -4) is not 0.0001\n : x < 0\n ? 0\n : x;\n };\n LogScale.makePowFn = function (base) {\n if (base === 10) {\n return LogScale.pow10;\n }\n if (base === Math.E) {\n return Math.exp;\n }\n return function (x) { return Math.pow(base, x); };\n };\n // Make a log function witn an arbitrary base or return a native function if exists.\n LogScale.makeLogFn = function (base) {\n if (base === Math.E) {\n return Math.log;\n }\n if (base === 10) {\n return Math.log10;\n }\n if (base === 2) {\n return Math.log2;\n }\n var logBase = Math.log(base);\n return function (x) { return Math.log(x) / logBase; };\n };\n LogScale.prototype.ticks = function (count) {\n var _a;\n if (count === void 0) { count = 10; }\n var n = count == null ? 10 : +count;\n var base = this.base;\n var domain = this.domain;\n var d0 = domain[0];\n var d1 = domain[domain.length - 1];\n var isReversed = d1 < d0;\n if (isReversed) {\n _a = __read$l([d1, d0], 2), d0 = _a[0], d1 = _a[1];\n }\n var p0 = this.baseLog(d0);\n var p1 = this.baseLog(d1);\n var z = [];\n // if `base` is an integer and delta in order of magnitudes is less than n\n if (!(base % 1) && p1 - p0 < n) {\n // For example, if n == 10, base == 10 and domain == [10^2, 10^6]\n // then p1 - p0 < n == true.\n p0 = Math.round(p0) - 1;\n p1 = Math.round(p1) + 1;\n if (d0 > 0) {\n for (; p0 < p1; ++p0) {\n for (var k = 1, p = this.basePow(p0); k < base; ++k) {\n var t = p * k;\n // The `t` checks are needed because we expanded the [p0, p1] by 1 in each direction.\n if (t < d0)\n continue;\n if (t > d1)\n break;\n z.push(t);\n }\n }\n }\n else {\n for (; p0 < p1; ++p0) {\n for (var k = base - 1, p = this.basePow(p0); k >= 1; --k) {\n var t = p * k;\n if (t < d0)\n continue;\n if (t > d1)\n break;\n z.push(t);\n }\n }\n }\n if (z.length * 2 < n) {\n z = ticks$1(d0, d1, n);\n }\n }\n else {\n // For example, if n == 4, base == 10 and domain == [10^2, 10^6]\n // then p1 - p0 < n == false.\n // `ticks` return [2, 3, 4, 5, 6], then mapped to [10^2, 10^3, 10^4, 10^5, 10^6].\n z = ticks$1(p0, p1, Math.min(p1 - p0, n)).map(this.basePow);\n }\n return isReversed ? z.reverse() : z;\n };\n LogScale.prototype.tickFormat = function (_a) {\n var _this = this;\n var count = _a.count, specifier = _a.specifier;\n var base = this.base;\n if (specifier == null) {\n specifier = (base === 10 ? '.0e' : ',');\n }\n if (typeof specifier !== 'function') {\n specifier = format$1(specifier);\n }\n if (count === Infinity) {\n return specifier;\n }\n if (count == null) {\n count = 10;\n }\n var k = Math.max(1, (base * count) / this.ticks().length);\n return function (d) {\n var i = d / _this.basePow(Math.round(_this.baseLog(d)));\n if (i * base < base - 0.5) {\n i *= base;\n }\n return i <= k ? specifier(d) : '';\n };\n };\n __decorate$17([\n Validate(NUMBER(0))\n ], LogScale.prototype, \"_base\", void 0);\n return LogScale;\n}(ContinuousScale$1));\n\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LogAxis = /** @class */ (function (_super) {\n __extends$1Q(LogAxis, _super);\n function LogAxis() {\n var _this = _super.call(this, new LogScale()) || this;\n _this.scale.clamper = filter;\n return _this;\n }\n Object.defineProperty(LogAxis.prototype, \"base\", {\n get: function () {\n return this.scale.base;\n },\n set: function (value) {\n this.scale.base = value;\n },\n enumerable: true,\n configurable: true\n });\n LogAxis.className = 'LogAxis';\n LogAxis.type = 'log';\n return LogAxis;\n}(NumberAxis));\n\nvar DEFAULT_CARTESIAN_CHART_OVERRIDES = {\n type: 'cartesian',\n axes: [\n {\n type: NumberAxis.type,\n position: ChartAxisPosition.Left,\n },\n {\n type: CategoryAxis.type,\n position: ChartAxisPosition.Bottom,\n },\n ],\n};\nvar DEFAULT_BAR_CHART_OVERRIDES = {\n axes: [\n {\n type: 'number',\n position: ChartAxisPosition.Bottom,\n },\n {\n type: 'category',\n position: ChartAxisPosition.Left,\n },\n ],\n};\nvar DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES = {\n axes: [\n {\n type: 'number',\n position: ChartAxisPosition.Bottom,\n },\n {\n type: 'number',\n position: ChartAxisPosition.Left,\n },\n ],\n};\n\nvar __assign$p = (undefined && undefined.__assign) || function () {\n __assign$p = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$p.apply(this, arguments);\n};\nfunction transform(input, transforms) {\n var result = {};\n for (var p in input) {\n var t = transforms[p] || (function (x) { return x; });\n result[p] = t(input[p], input);\n }\n return result;\n}\nfunction is2dArray(input) {\n return input != null && input instanceof Array && input[0] instanceof Array;\n}\nfunction yNamesMapping(p, src) {\n if (p == null) {\n return {};\n }\n if (!(p instanceof Array)) {\n return p;\n }\n var yKeys = src.yKeys;\n if (yKeys == null || is2dArray(yKeys)) {\n throw new Error('AG Charts - yNames and yKeys mismatching configuration.');\n }\n var result = {};\n yKeys.forEach(function (k, i) {\n result[k] = p[i];\n });\n return result;\n}\nfunction yKeysMapping(p, src) {\n if (p == null) {\n return [[]];\n }\n if (is2dArray(p)) {\n return p;\n }\n return src.grouped ? p.map(function (v) { return [v]; }) : [p];\n}\nfunction labelMapping(p) {\n if (p == null) {\n return undefined;\n }\n var placement = p.placement;\n return __assign$p(__assign$p({}, p), { placement: placement === 'inside'\n ? BarLabelPlacement.Inside\n : placement === 'outside'\n ? BarLabelPlacement.Outside\n : undefined });\n}\nfunction barSeriesTransform(options) {\n var result = __assign$p(__assign$p({}, options), { yKeys: options.yKeys || [options.yKey] });\n delete result['yKey'];\n return transform(result, {\n yNames: yNamesMapping,\n yKeys: yKeysMapping,\n label: labelMapping,\n });\n}\nfunction identityTransform(input) {\n return input;\n}\nvar SERIES_TRANSFORMS = {\n area: identityTransform,\n bar: barSeriesTransform,\n column: barSeriesTransform,\n histogram: identityTransform,\n line: identityTransform,\n pie: identityTransform,\n scatter: identityTransform,\n treemap: identityTransform,\n};\nfunction applySeriesTransform(options) {\n var type = options.type;\n var transform = SERIES_TRANSFORMS[type || 'line'];\n return transform(options);\n}\n\nvar __assign$o = (undefined && undefined.__assign) || function () {\n __assign$o = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$o.apply(this, arguments);\n};\nvar __values$8 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$8 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$k(arguments[i]));\n return ar;\n};\n/**\n * Groups the series options objects if they are of type `column` or `bar` and places them in an array at the index where the first instance of this series type was found.\n * Returns an array of arrays containing the ordered and grouped series options objects.\n */\nfunction groupSeriesByType(seriesOptions) {\n var e_1, _a;\n var indexMap = {};\n var result = [];\n try {\n for (var seriesOptions_1 = __values$8(seriesOptions), seriesOptions_1_1 = seriesOptions_1.next(); !seriesOptions_1_1.done; seriesOptions_1_1 = seriesOptions_1.next()) {\n var s = seriesOptions_1_1.value;\n if (s.type !== 'column' && s.type !== 'bar' && (s.type !== 'area' || s.stacked !== true)) {\n // No need to use index for these cases.\n result.push([s]);\n continue;\n }\n var seriesType = s.type || 'line';\n var groupingKey = s.stacked\n ? 'stacked'\n : s.grouped\n ? 'grouped'\n : s.yKeys\n ? 'stacked'\n : 'grouped';\n var indexKey = seriesType + \"-\" + s.xKey + \"-\" + groupingKey;\n if (indexMap[indexKey] == null) {\n // Add indexed array to result on first addition.\n indexMap[indexKey] = [];\n result.push(indexMap[indexKey]);\n }\n indexMap[indexKey].push(s);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (seriesOptions_1_1 && !seriesOptions_1_1.done && (_a = seriesOptions_1.return)) _a.call(seriesOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\nvar FAIL = Symbol();\nvar SKIP = Symbol();\nvar ARRAY_REDUCER = function (prop) { return function (result, next) {\n var _a;\n return result.concat.apply(result, __spread$8((_a = next[prop], (_a !== null && _a !== void 0 ? _a : []))));\n}; };\nvar BOOLEAN_OR_REDUCER = function (prop, defaultValue) { return function (result, next) {\n if (typeof next[prop] === 'boolean') {\n return ((result !== null && result !== void 0 ? result : false)) || next[prop];\n }\n return (result !== null && result !== void 0 ? result : defaultValue);\n}; };\nvar DEFAULTING_ARRAY_REDUCER = function (prop, defaultValue) { return function (result, next, idx, length) {\n var _a;\n var sparse = defaultValue === SKIP || defaultValue === FAIL;\n var nextValue = (_a = next[prop], (_a !== null && _a !== void 0 ? _a : defaultValue));\n if (nextValue === FAIL) {\n throw new Error(\"AG Charts - missing value for property [\" + prop + \"] on series config.\");\n }\n else if (nextValue === SKIP) {\n return result;\n }\n if (result.length === 0 && !sparse) {\n // Pre-populate values on first invocation as we will only be invoked for series with a\n // value specified.\n while (result.length < length) {\n result = result.concat(defaultValue);\n }\n }\n if (!sparse) {\n result[idx] = nextValue;\n return result;\n }\n return result.concat(nextValue);\n}; };\nvar YKEYS_REDUCER = function (prop, activationValue) { return function (result, next) {\n if (next[prop] === activationValue) {\n return result.concat.apply(result, __spread$8((next.yKey ? [next.yKey] : next.yKeys)));\n }\n return result;\n}; };\nvar REDUCE_CONFIG = {\n yKeys: { outputProp: 'yKeys', reducer: ARRAY_REDUCER('yKeys'), start: [] },\n fills: { outputProp: 'fills', reducer: ARRAY_REDUCER('fills'), start: [] },\n strokes: { outputProp: 'strokes', reducer: ARRAY_REDUCER('strokes'), start: [] },\n yNames: { outputProp: 'yNames', reducer: ARRAY_REDUCER('yNames'), start: [] },\n hideInChart: { outputProp: 'hideInChart', reducer: ARRAY_REDUCER('hideInChart'), start: [] },\n hideInLegend: { outputProp: 'hideInLegend', reducer: ARRAY_REDUCER('hideInLegend'), start: [] },\n yKey: { outputProp: 'yKeys', reducer: DEFAULTING_ARRAY_REDUCER('yKey', SKIP), start: [] },\n fill: { outputProp: 'fills', reducer: DEFAULTING_ARRAY_REDUCER('fill', SKIP), start: [] },\n stroke: { outputProp: 'strokes', reducer: DEFAULTING_ARRAY_REDUCER('stroke', SKIP), start: [] },\n yName: { outputProp: 'yNames', reducer: DEFAULTING_ARRAY_REDUCER('yName', SKIP), start: [] },\n visible: { outputProp: 'visibles', reducer: DEFAULTING_ARRAY_REDUCER('visible', true), start: [] },\n grouped: {\n outputProp: 'grouped',\n reducer: BOOLEAN_OR_REDUCER('grouped'),\n seriesType: ['bar', 'column'],\n start: undefined,\n },\n showInLegend: {\n outputProp: 'hideInLegend',\n reducer: YKEYS_REDUCER('showInLegend', false),\n seriesType: ['bar', 'column'],\n start: [],\n },\n};\n/**\n * Takes an array of bar or area series options objects and returns a single object with the combined area series options.\n */\nfunction reduceSeries(series) {\n var options = {};\n series.forEach(function (s, idx) {\n Object.keys(s).forEach(function (prop) {\n var _a;\n var reducerConfig = REDUCE_CONFIG[prop];\n var defaultReduce = function () {\n var _a, _b;\n options[prop] = (_b = (_a = s[prop], (_a !== null && _a !== void 0 ? _a : options[prop])), (_b !== null && _b !== void 0 ? _b : undefined));\n };\n if (!reducerConfig) {\n defaultReduce();\n return;\n }\n var outputProp = reducerConfig.outputProp, reducer = reducerConfig.reducer, _b = reducerConfig.start, start = _b === void 0 ? undefined : _b, _c = reducerConfig.seriesType, seriesType = _c === void 0 ? [s.type] : _c;\n if (!seriesType.includes(s.type)) {\n defaultReduce();\n return;\n }\n var result = reducer((_a = options[outputProp], (_a !== null && _a !== void 0 ? _a : start)), s, idx, series.length);\n if (result !== undefined) {\n options[outputProp] = result;\n }\n });\n });\n return options;\n}\n/**\n * Transforms provided series options array into an array containing series options which are compatible with standalone charts series options.\n */\nfunction processSeriesOptions(seriesOptions) {\n var e_2, _a;\n var result = [];\n var preprocessed = seriesOptions.map(function (series) {\n // Change the default for bar/columns when yKey is used to be grouped rather than stacked.\n if ((series.type === 'bar' || series.type === 'column') && series.yKey != null && !series.stacked) {\n return __assign$o(__assign$o({}, series), { grouped: series.grouped != null ? series.grouped : true });\n }\n return series;\n });\n try {\n for (var _b = __values$8(groupSeriesByType(preprocessed)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var series = _c.value;\n switch (series[0].type) {\n case 'column':\n case 'bar':\n case 'area':\n result.push(reduceSeries(series));\n break;\n case 'line':\n default:\n if (series.length > 1) {\n console.warn('AG Charts - unexpected grouping of series type: ' + series[0].type);\n }\n result.push(series[0]);\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}\n\nvar __assign$n = (undefined && undefined.__assign) || function () {\n __assign$n = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$n.apply(this, arguments);\n};\nvar __values$7 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$7 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$j(arguments[i]));\n return ar;\n};\nfunction optionsType(input) {\n var _a, _b, _c, _d;\n return _d = (_a = input.type, (_a !== null && _a !== void 0 ? _a : (_c = (_b = input.series) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.type)), (_d !== null && _d !== void 0 ? _d : 'line');\n}\nfunction isAgCartesianChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return true;\n }\n switch (specifiedType) {\n case 'cartesian':\n case 'area':\n case 'bar':\n case 'column':\n case 'groupedCategory':\n case 'histogram':\n case 'line':\n case 'scatter':\n return true;\n default:\n return false;\n }\n}\nfunction isAgHierarchyChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n switch (input.type) {\n case 'hierarchy':\n // fall-through - hierarchy and treemap are synonyms.\n case 'treemap':\n return true;\n default:\n return false;\n }\n}\nfunction isAgPolarChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n switch (input.type) {\n case 'polar':\n // fall-through - polar and pie are synonyms.\n case 'pie':\n return true;\n default:\n return false;\n }\n}\nfunction isSeriesOptionType(input) {\n if (input == null) {\n return false;\n }\n return ['line', 'bar', 'column', 'histogram', 'scatter', 'area', 'pie', 'treemap'].indexOf(input) >= 0;\n}\nfunction countArrayElements(input) {\n var e_1, _a;\n var count = 0;\n try {\n for (var input_1 = __values$7(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {\n var next = input_1_1.value;\n if (next instanceof Array) {\n count += countArrayElements(next);\n }\n if (next != null) {\n count++;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return count;\n}\nfunction takeColours(context, colours, maxCount) {\n var result = [];\n for (var count = 0; count < maxCount; count++) {\n result.push(colours[(count + context.colourIndex) % colours.length]);\n }\n return result;\n}\nvar noDataCloneMergeOptions = {\n avoidDeepClone: ['data'],\n};\nfunction prepareOptions(newOptions) {\n var fallbackOptions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n fallbackOptions[_i - 1] = arguments[_i];\n }\n var _a;\n var options = jsonMerge(__spread$7(fallbackOptions, [newOptions]), noDataCloneMergeOptions);\n sanityCheckOptions(options);\n // Determine type and ensure it's explicit in the options config.\n var userSuppliedOptionsType = options.type;\n var type = optionsType(options);\n options = __assign$n(__assign$n({}, options), { type: type });\n var defaultSeriesType = isAgCartesianChartOptions(options)\n ? 'line'\n : isAgHierarchyChartOptions(options)\n ? 'treemap'\n : isAgPolarChartOptions(options)\n ? 'pie'\n : 'line';\n var defaultOverrides = type === 'bar'\n ? DEFAULT_BAR_CHART_OVERRIDES\n : type === 'scatter'\n ? DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES\n : type === 'histogram'\n ? DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES\n : isAgCartesianChartOptions(options)\n ? DEFAULT_CARTESIAN_CHART_OVERRIDES\n : {};\n var _b = prepareMainOptions(defaultOverrides, options), context = _b.context, mergedOptions = _b.mergedOptions, axesThemes = _b.axesThemes, seriesThemes = _b.seriesThemes;\n // Special cases where we have arrays of elements which need their own defaults.\n // Apply series themes before calling processSeriesOptions() as it reduces and renames some\n // properties, and in that case then cannot correctly have themes applied.\n mergedOptions.series = processSeriesOptions((mergedOptions.series || []).map(function (s) {\n var type = s.type\n ? s.type\n : isSeriesOptionType(userSuppliedOptionsType)\n ? userSuppliedOptionsType\n : defaultSeriesType;\n var mergedSeries = jsonMerge([seriesThemes[type] || {}, __assign$n(__assign$n({}, s), { type: type })], noDataCloneMergeOptions);\n if (type === 'pie') {\n preparePieOptions(seriesThemes.pie, s, mergedSeries);\n }\n return mergedSeries;\n })).map(function (s) { return prepareSeries(context, s); });\n if (isAgCartesianChartOptions(mergedOptions)) {\n mergedOptions.axes = (_a = mergedOptions.axes) === null || _a === void 0 ? void 0 : _a.map(function (a) {\n var _a;\n var type = (_a = a.type, (_a !== null && _a !== void 0 ? _a : 'number'));\n var axis = __assign$n(__assign$n({}, a), { type: type });\n var axesTheme = jsonMerge([axesThemes[type], axesThemes[type][a.position || 'unknown'] || {}]);\n return prepareAxis(axis, axesTheme);\n });\n }\n prepareEnabledOptions(options, mergedOptions);\n return mergedOptions;\n}\nfunction sanityCheckOptions(options) {\n var _a, _b;\n if ((_a = options.series) === null || _a === void 0 ? void 0 : _a.some(function (s) { return s.yKeys != null && s.yKey != null; })) {\n console.warn('AG Charts - series options yKeys and yKey are mutually exclusive, please only use yKey for future compatibility.');\n }\n if ((_b = options.series) === null || _b === void 0 ? void 0 : _b.some(function (s) { return s.yNames != null && s.yName != null; })) {\n console.warn('AG Charts - series options yNames and yName are mutually exclusive, please only use yName for future compatibility.');\n }\n}\nfunction prepareMainOptions(defaultOverrides, options) {\n var _a = prepareTheme(options), theme = _a.theme, cleanedTheme = _a.cleanedTheme, axesThemes = _a.axesThemes, seriesThemes = _a.seriesThemes;\n var context = { colourIndex: 0, palette: theme.palette };\n var mergedOptions = jsonMerge([defaultOverrides, cleanedTheme, options], noDataCloneMergeOptions);\n return { context: context, mergedOptions: mergedOptions, axesThemes: axesThemes, seriesThemes: seriesThemes };\n}\nfunction prepareTheme(options) {\n var theme = getChartTheme(options.theme);\n var themeConfig = theme.getConfig(optionsType(options) || 'cartesian');\n return {\n theme: theme,\n axesThemes: themeConfig['axes'] || {},\n seriesThemes: themeConfig['series'] || {},\n cleanedTheme: jsonMerge([themeConfig, { axes: DELETE, series: DELETE }]),\n };\n}\nfunction prepareSeries(context, input) {\n var defaults = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n defaults[_i - 2] = arguments[_i];\n }\n var paletteOptions = calculateSeriesPalette(context, input);\n // Part of the options interface, but not directly consumed by the series implementations.\n var removeOptions = { stacked: DELETE };\n var mergedResult = jsonMerge(__spread$7(defaults, [paletteOptions, input, removeOptions]), noDataCloneMergeOptions);\n return applySeriesTransform(mergedResult);\n}\nfunction calculateSeriesPalette(context, input) {\n var paletteOptions = {};\n var _a = context.palette, fills = _a.fills, strokes = _a.strokes;\n var inputAny = input;\n var colourCount = countArrayElements(inputAny['yKeys'] || []) || 1; // Defaults to 1 if no yKeys.\n switch (input.type) {\n case 'pie':\n colourCount = Math.max(fills.length, strokes.length);\n // fall-through - only colourCount varies for `pie`.\n case 'area':\n case 'bar':\n case 'column':\n paletteOptions.fills = takeColours(context, fills, colourCount);\n paletteOptions.strokes = takeColours(context, strokes, colourCount);\n break;\n case 'histogram':\n paletteOptions.fill = takeColours(context, fills, 1)[0];\n paletteOptions.stroke = takeColours(context, strokes, 1)[0];\n break;\n case 'scatter':\n paletteOptions.marker = {\n stroke: takeColours(context, strokes, 1)[0],\n fill: takeColours(context, fills, 1)[0],\n };\n break;\n case 'line':\n paletteOptions.stroke = takeColours(context, fills, 1)[0];\n paletteOptions.marker = {\n stroke: takeColours(context, strokes, 1)[0],\n fill: takeColours(context, fills, 1)[0],\n };\n break;\n case 'treemap':\n break;\n default:\n throw new Error('AG Charts - unknown series type: ' + input.type);\n }\n context.colourIndex += colourCount;\n return paletteOptions;\n}\nfunction prepareAxis(axis, axisTheme) {\n // Remove redundant theme overload keys.\n var removeOptions = { top: DELETE, bottom: DELETE, left: DELETE, right: DELETE };\n // Special cross lines case where we have an arrays of cross line elements which need their own defaults.\n if (axis.crossLines) {\n if (!Array.isArray(axis.crossLines)) {\n console.warn('AG Charts - axis[].crossLines should be an array.');\n axis.crossLines = [];\n }\n var crossLinesTheme_1 = axisTheme.crossLines;\n axis.crossLines = axis.crossLines.map(function (crossLine) { return jsonMerge([crossLinesTheme_1, crossLine]); });\n }\n var cleanTheme = { crossLines: DELETE };\n return jsonMerge([axisTheme, cleanTheme, axis, removeOptions], noDataCloneMergeOptions);\n}\nfunction prepareEnabledOptions(options, mergedOptions) {\n // Set `enabled: true` for all option objects where the user has provided values.\n jsonWalk(options, function (_, userOpts, mergedOpts) {\n if (!mergedOpts) {\n return;\n }\n if ('enabled' in mergedOpts && userOpts.enabled == null) {\n mergedOpts.enabled = true;\n }\n }, { skip: ['data'] }, mergedOptions);\n}\nfunction preparePieOptions(pieSeriesTheme, seriesOptions, mergedSeries) {\n if (Array.isArray(seriesOptions.innerLabels)) {\n mergedSeries.innerLabels = seriesOptions.innerLabels.map(function (ln) {\n return jsonMerge([pieSeriesTheme.innerLabels, ln]);\n });\n }\n else {\n mergedSeries.innerLabels = DELETE;\n }\n}\n\nvar horizontalCrosslineTranslationDirections = {\n top: { xTranslationDirection: 0, yTranslationDirection: -1 },\n bottom: { xTranslationDirection: 0, yTranslationDirection: 1 },\n left: { xTranslationDirection: -1, yTranslationDirection: 0 },\n right: { xTranslationDirection: 1, yTranslationDirection: 0 },\n topLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n topRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n bottomLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n bottomRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n inside: { xTranslationDirection: 0, yTranslationDirection: 0 },\n insideLeft: { xTranslationDirection: 1, yTranslationDirection: 0 },\n insideRight: { xTranslationDirection: -1, yTranslationDirection: 0 },\n insideTop: { xTranslationDirection: 0, yTranslationDirection: 1 },\n insideBottom: { xTranslationDirection: 0, yTranslationDirection: -1 },\n insideTopLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n insideBottomLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n insideTopRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n insideBottomRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n};\nvar verticalCrossLineTranslationDirections = {\n top: { xTranslationDirection: 1, yTranslationDirection: 0 },\n bottom: { xTranslationDirection: -1, yTranslationDirection: 0 },\n left: { xTranslationDirection: 0, yTranslationDirection: -1 },\n right: { xTranslationDirection: 0, yTranslationDirection: 1 },\n topLeft: { xTranslationDirection: -1, yTranslationDirection: -1 },\n topRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n bottomLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n bottomRight: { xTranslationDirection: 1, yTranslationDirection: 1 },\n inside: { xTranslationDirection: 0, yTranslationDirection: 0 },\n insideLeft: { xTranslationDirection: 0, yTranslationDirection: 1 },\n insideRight: { xTranslationDirection: 0, yTranslationDirection: -1 },\n insideTop: { xTranslationDirection: -1, yTranslationDirection: 0 },\n insideBottom: { xTranslationDirection: 1, yTranslationDirection: 0 },\n insideTopLeft: { xTranslationDirection: -1, yTranslationDirection: 1 },\n insideBottomLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n insideTopRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n insideBottomRight: { xTranslationDirection: 1, yTranslationDirection: -1 },\n};\nvar calculateLabelTranslation = function (_a) {\n var yDirection = _a.yDirection, _b = _a.padding, padding = _b === void 0 ? 0 : _b, position = _a.position, bbox = _a.bbox;\n var _c;\n var crossLineTranslationDirections = yDirection\n ? horizontalCrosslineTranslationDirections\n : verticalCrossLineTranslationDirections;\n var _d = (_c = crossLineTranslationDirections[position], (_c !== null && _c !== void 0 ? _c : crossLineTranslationDirections['top'])), xTranslationDirection = _d.xTranslationDirection, yTranslationDirection = _d.yTranslationDirection;\n var w = yDirection ? bbox.width : bbox.height;\n var h = yDirection ? bbox.height : bbox.width;\n var xTranslation = xTranslationDirection * (padding + w / 2);\n var yTranslation = yTranslationDirection * (padding + h / 2);\n return {\n xTranslation: xTranslation,\n yTranslation: yTranslation,\n };\n};\nvar POSITION_TOP_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd / 2, y: yStart };\n }\n else {\n return { x: xEnd, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n};\nvar POSITION_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xStart, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n else {\n return { x: xEnd / 2, y: yStart };\n }\n};\nvar POSITION_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n else {\n return { x: xEnd / 2, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar POSITION_BOTTOM_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd / 2, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n};\nvar POSITION_INSIDE_COORDINATES = function (_a) {\n var xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n return { x: xEnd / 2, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n};\nvar POSITION_TOP_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart;\n if (yDirection) {\n return { x: xStart / 2, y: yStart };\n }\n else {\n return { x: xEnd, y: yStart };\n }\n};\nvar POSITION_BOTTOM_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xStart, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: yStart };\n }\n};\nvar POSITION_TOP_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: yStart };\n }\n else {\n return { x: xEnd, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar POSITION_BOTTOM_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar labeldDirectionHandling = {\n top: { c: POSITION_TOP_COORDINATES },\n bottom: { c: POSITION_BOTTOM_COORDINATES },\n left: { c: POSITION_LEFT_COORDINATES },\n right: { c: POSITION_RIGHT_COORDINATES },\n topLeft: { c: POSITION_TOP_LEFT_COORDINATES },\n topRight: { c: POSITION_TOP_RIGHT_COORDINATES },\n bottomLeft: { c: POSITION_BOTTOM_LEFT_COORDINATES },\n bottomRight: { c: POSITION_BOTTOM_RIGHT_COORDINATES },\n inside: { c: POSITION_INSIDE_COORDINATES },\n insideLeft: { c: POSITION_LEFT_COORDINATES },\n insideRight: { c: POSITION_RIGHT_COORDINATES },\n insideTop: { c: POSITION_TOP_COORDINATES },\n insideBottom: { c: POSITION_BOTTOM_COORDINATES },\n insideTopLeft: { c: POSITION_TOP_LEFT_COORDINATES },\n insideBottomLeft: { c: POSITION_BOTTOM_LEFT_COORDINATES },\n insideTopRight: { c: POSITION_TOP_RIGHT_COORDINATES },\n insideBottomRight: { c: POSITION_BOTTOM_RIGHT_COORDINATES },\n};\n\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$m = (undefined && undefined.__assign) || function () {\n __assign$m = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$m.apply(this, arguments);\n};\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Range = /** @class */ (function (_super) {\n __extends$1P(Range, _super);\n function Range() {\n var _this = _super.call(this) || this;\n _this.x1 = 0;\n _this.y1 = 0;\n _this.x2 = 0;\n _this.y2 = 0;\n _this.startLine = false;\n _this.endLine = false;\n _this.isRange = false;\n _this.restoreOwnStyles();\n return _this;\n }\n Range.prototype.computeBBox = function () {\n return new BBox$1(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Range.prototype.isPointInPath = function (_x, _y) {\n return false;\n };\n Range.prototype.render = function (renderCtx) {\n var _a;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _b = this, x1 = _b.x1, y1 = _b.y1, x2 = _b.x2, y2 = _b.y2;\n x1 = this.align(x1);\n y1 = this.align(y1);\n x2 = this.align(x2);\n y2 = this.align(y2);\n var _c = this, fill = _c.fill, opacity = _c.opacity, isRange = _c.isRange;\n var fillActive = !!(isRange && fill);\n if (fillActive) {\n var fillOpacity = this.fillOpacity;\n ctx.fillStyle = fill;\n ctx.globalAlpha = opacity * fillOpacity;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x1, y2);\n ctx.closePath();\n ctx.fill();\n }\n var _d = this, stroke = _d.stroke, strokeWidth = _d.strokeWidth, startLine = _d.startLine, endLine = _d.endLine;\n var strokeActive = !!((startLine || endLine) && stroke && strokeWidth);\n if (strokeActive) {\n var _e = this, strokeOpacity = _e.strokeOpacity, lineDash = _e.lineDash, lineDashOffset = _e.lineDashOffset, lineCap = _e.lineCap, lineJoin = _e.lineJoin;\n ctx.strokeStyle = stroke;\n ctx.globalAlpha = opacity * strokeOpacity;\n ctx.lineWidth = strokeWidth;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n ctx.beginPath();\n if (startLine) {\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y1);\n }\n if (endLine) {\n ctx.moveTo(x2, y2);\n ctx.lineTo(x1, y2);\n }\n ctx.stroke();\n }\n (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Range.className = 'Range';\n Range.defaultStyles = __assign$m(__assign$m({}, Shape$1.defaultStyles), { strokeWidth: 1 });\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"x1\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"y1\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"x2\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"y2\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"startLine\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"endLine\", void 0);\n __decorate$16([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"isRange\", void 0);\n return Range;\n}(Shape$1));\n\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar CROSSLINE_LABEL_POSITIONS = [\n 'top',\n 'left',\n 'right',\n 'bottom',\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight',\n 'inside',\n 'insideLeft',\n 'insideRight',\n 'insideTop',\n 'insideBottom',\n 'insideTopLeft',\n 'insideBottomLeft',\n 'insideTopRight',\n 'insideBottomRight',\n];\nvar OPT_CROSSLINE_LABEL_POSITION = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v) { return CROSSLINE_LABEL_POSITIONS.includes(v); }); }, \"expecting an optional crossLine label position keyword such as 'topLeft', 'topRight' or 'inside'\");\nvar OPT_CROSSLINE_TYPE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v) { return v === 'range' || v === 'line'; }); }, \"expecting a crossLine type keyword such as 'range' or 'line'\");\nvar CrossLineLabel = /** @class */ (function () {\n function CrossLineLabel() {\n this.enabled = undefined;\n this.text = undefined;\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 14;\n this.fontFamily = 'Verdana, sans-serif';\n /**\n * The padding between the label and the line.\n */\n this.padding = 5;\n /**\n * The color of the labels.\n */\n this.color = 'rgba(87, 87, 87, 1)';\n this.position = undefined;\n this.rotation = undefined;\n this.parallel = undefined;\n }\n __decorate$15([\n Validate(OPT_BOOLEAN)\n ], CrossLineLabel.prototype, \"enabled\", void 0);\n __decorate$15([\n Validate(OPT_STRING)\n ], CrossLineLabel.prototype, \"text\", void 0);\n __decorate$15([\n Validate(OPT_FONT_STYLE)\n ], CrossLineLabel.prototype, \"fontStyle\", void 0);\n __decorate$15([\n Validate(OPT_FONT_WEIGHT)\n ], CrossLineLabel.prototype, \"fontWeight\", void 0);\n __decorate$15([\n Validate(NUMBER(0))\n ], CrossLineLabel.prototype, \"fontSize\", void 0);\n __decorate$15([\n Validate(STRING)\n ], CrossLineLabel.prototype, \"fontFamily\", void 0);\n __decorate$15([\n Validate(NUMBER(0))\n ], CrossLineLabel.prototype, \"padding\", void 0);\n __decorate$15([\n Validate(OPT_COLOR_STRING)\n ], CrossLineLabel.prototype, \"color\", void 0);\n __decorate$15([\n Validate(OPT_CROSSLINE_LABEL_POSITION)\n ], CrossLineLabel.prototype, \"position\", void 0);\n __decorate$15([\n Validate(OPT_NUMBER(-360, 360))\n ], CrossLineLabel.prototype, \"rotation\", void 0);\n __decorate$15([\n Validate(OPT_BOOLEAN)\n ], CrossLineLabel.prototype, \"parallel\", void 0);\n return CrossLineLabel;\n}());\nvar CrossLine = /** @class */ (function () {\n function CrossLine() {\n this.id = createId$1(this);\n this.enabled = undefined;\n this.type = undefined;\n this.range = undefined;\n this.value = undefined;\n this.fill = undefined;\n this.fillOpacity = undefined;\n this.stroke = undefined;\n this.strokeWidth = undefined;\n this.strokeOpacity = undefined;\n this.lineDash = undefined;\n this.label = new CrossLineLabel();\n this.scale = undefined;\n this.clippedRange = [-Infinity, Infinity];\n this.gridLength = 0;\n this.sideFlag = -1;\n this.parallelFlipRotation = 0;\n this.regularFlipRotation = 0;\n this.direction = ChartAxisDirection.X;\n this.group = new Group$1({ name: \"\" + this.id, layer: true, zIndex: CrossLine.LINE_LAYER_ZINDEX });\n this.crossLineRange = new Range();\n this.crossLineLabel = new Text$1();\n this.labelPoint = undefined;\n this.data = [];\n this.startLine = false;\n this.endLine = false;\n this.isRange = false;\n var _a = this, group = _a.group, crossLineRange = _a.crossLineRange, crossLineLabel = _a.crossLineLabel;\n group.append([crossLineRange, crossLineLabel]);\n crossLineRange.pointerEvents = PointerEvents$1.None;\n }\n CrossLine.prototype.update = function (visible) {\n if (!this.enabled) {\n return;\n }\n this.group.visible = visible;\n if (!visible) {\n return;\n }\n var dataCreated = this.createNodeData();\n if (!dataCreated) {\n this.group.visible = false;\n return;\n }\n this.updateNodes();\n this.group.zIndex = this.getZIndex(this.isRange);\n };\n CrossLine.prototype.updateNodes = function () {\n this.updateRangeNode();\n if (this.label.enabled) {\n this.updateLabel();\n this.positionLabel();\n }\n };\n CrossLine.prototype.createNodeData = function () {\n var _a, _b, _c, _d, _e, _f;\n var _g, _h;\n var _j = this, scale = _j.scale, gridLength = _j.gridLength, sideFlag = _j.sideFlag, direction = _j.direction, _k = _j.label.position, position = _k === void 0 ? 'top' : _k, clippedRange = _j.clippedRange, _l = _j.strokeWidth, strokeWidth = _l === void 0 ? 0 : _l;\n if (!scale) {\n return false;\n }\n var isContinuous = scale instanceof ContinuousScale$1;\n var bandwidth = (_g = scale.bandwidth, (_g !== null && _g !== void 0 ? _g : 0));\n var clippedRangeClamper = clamper$1(clippedRange);\n var xStart, xEnd, yStart, yEnd, clampedYStart, clampedYEnd;\n _a = __read$i([0, sideFlag * gridLength], 2), xStart = _a[0], xEnd = _a[1];\n _b = __read$i(this.getRange(), 2), yStart = _b[0], yEnd = _b[1];\n _c = __read$i([\n Number(scale.convert(yStart, isContinuous ? clamper$1 : undefined)),\n scale.convert(yEnd, isContinuous ? clamper$1 : undefined) + bandwidth,\n ], 2), clampedYStart = _c[0], clampedYEnd = _c[1];\n clampedYStart = clippedRangeClamper(clampedYStart);\n clampedYEnd = clippedRangeClamper(clampedYEnd);\n _d = __read$i([Number(scale.convert(yStart)), scale.convert(yEnd) + bandwidth], 2), yStart = _d[0], yEnd = _d[1];\n var validRange = !isNaN(clampedYStart) &&\n !isNaN(clampedYEnd) &&\n (yStart === clampedYStart || yEnd === clampedYEnd || clampedYStart !== clampedYEnd) &&\n Math.abs(clampedYEnd - clampedYStart) > 0;\n if (validRange) {\n var reverse = clampedYStart !== Math.min(clampedYStart, clampedYEnd);\n if (reverse) {\n _e = __read$i([\n Math.min(clampedYStart, clampedYEnd),\n Math.max(clampedYStart, clampedYEnd),\n ], 2), clampedYStart = _e[0], clampedYEnd = _e[1];\n _f = __read$i([yEnd, yStart], 2), yStart = _f[0], yEnd = _f[1];\n }\n }\n this.isRange = validRange;\n this.startLine = !isNaN(yStart) && strokeWidth > 0 && yStart === clampedYStart;\n this.endLine = !isNaN(yEnd) && strokeWidth > 0 && yEnd === clampedYEnd;\n if (!validRange && !this.startLine && !this.endLine) {\n return false;\n }\n this.data = [clampedYStart, clampedYEnd];\n if (this.label.enabled) {\n var yDirection = direction === ChartAxisDirection.Y;\n var _m = (_h = labeldDirectionHandling[position], (_h !== null && _h !== void 0 ? _h : {})).c, c = _m === void 0 ? POSITION_TOP_COORDINATES : _m;\n var _o = c({ yDirection: yDirection, xStart: xStart, xEnd: xEnd, yStart: clampedYStart, yEnd: clampedYEnd }), labelX = _o.x, labelY = _o.y;\n this.labelPoint = {\n x: labelX,\n y: labelY,\n };\n }\n return true;\n };\n CrossLine.prototype.updateRangeNode = function () {\n var _a;\n var _b = this, crossLineRange = _b.crossLineRange, sideFlag = _b.sideFlag, gridLength = _b.gridLength, data = _b.data, startLine = _b.startLine, endLine = _b.endLine, isRange = _b.isRange, fill = _b.fill, fillOpacity = _b.fillOpacity, stroke = _b.stroke, strokeWidth = _b.strokeWidth, lineDash = _b.lineDash;\n crossLineRange.x1 = 0;\n crossLineRange.x2 = sideFlag * gridLength;\n crossLineRange.y1 = data[0];\n crossLineRange.y2 = data[1];\n crossLineRange.startLine = startLine;\n crossLineRange.endLine = endLine;\n crossLineRange.isRange = isRange;\n crossLineRange.fill = fill;\n crossLineRange.fillOpacity = (fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1);\n crossLineRange.stroke = stroke;\n crossLineRange.strokeWidth = (strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 1);\n crossLineRange.strokeOpacity = (_a = this.strokeOpacity, (_a !== null && _a !== void 0 ? _a : 1));\n crossLineRange.lineDash = lineDash;\n };\n CrossLine.prototype.updateLabel = function () {\n var _a = this, crossLineLabel = _a.crossLineLabel, label = _a.label;\n if (!label.text) {\n return;\n }\n crossLineLabel.fontStyle = label.fontStyle;\n crossLineLabel.fontWeight = label.fontWeight;\n crossLineLabel.fontSize = label.fontSize;\n crossLineLabel.fontFamily = label.fontFamily;\n crossLineLabel.fill = label.color;\n crossLineLabel.text = label.text;\n };\n CrossLine.prototype.positionLabel = function () {\n var _a = this, crossLineLabel = _a.crossLineLabel, _b = _a.labelPoint, _c = _b === void 0 ? {} : _b, _d = _c.x, x = _d === void 0 ? undefined : _d, _e = _c.y, y = _e === void 0 ? undefined : _e, _f = _a.label, parallel = _f.parallel, rotation = _f.rotation, _g = _f.position, position = _g === void 0 ? 'top' : _g, _h = _f.padding, padding = _h === void 0 ? 0 : _h, direction = _a.direction, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation;\n if (x === undefined || y === undefined) {\n return;\n }\n var labelRotation = rotation ? normalizeAngle360(toRadians(rotation)) : 0;\n var parallelFlipFlag = !labelRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI ? -1 : 1;\n var regularFlipFlag = !labelRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI ? -1 : 1;\n var autoRotation = parallel ? (parallelFlipFlag * Math.PI) / 2 : regularFlipFlag === -1 ? Math.PI : 0;\n crossLineLabel.rotation = autoRotation + labelRotation;\n crossLineLabel.textBaseline = 'middle';\n crossLineLabel.textAlign = 'center';\n var bbox = this.computeLabelBBox();\n if (!bbox) {\n return;\n }\n var yDirection = direction === ChartAxisDirection.Y;\n var _j = calculateLabelTranslation({ yDirection: yDirection, padding: padding, position: position, bbox: bbox }), xTranslation = _j.xTranslation, yTranslation = _j.yTranslation;\n crossLineLabel.translationX = x + xTranslation;\n crossLineLabel.translationY = y + yTranslation;\n };\n CrossLine.prototype.getZIndex = function (isRange) {\n if (isRange === void 0) { isRange = false; }\n if (isRange) {\n return CrossLine.RANGE_LAYER_ZINDEX;\n }\n return CrossLine.LINE_LAYER_ZINDEX;\n };\n CrossLine.prototype.getRange = function () {\n var _a;\n var _b = this, value = _b.value, range = _b.range, scale = _b.scale;\n var isContinuous = scale instanceof ContinuousScale$1;\n var _c = __read$i((range !== null && range !== void 0 ? range : [value, undefined]), 2), start = _c[0], end = _c[1];\n if (!isContinuous && end === undefined) {\n end = start;\n }\n _a = __read$i([checkDatum(start, isContinuous), checkDatum(end, isContinuous)], 2), start = _a[0], end = _a[1];\n if (isContinuous && start === end) {\n end = undefined;\n }\n if (start === undefined && end !== undefined) {\n start = end;\n end = undefined;\n }\n return [start, end];\n };\n CrossLine.prototype.computeLabelBBox = function () {\n return this.crossLineLabel.computeTransformedBBox();\n };\n CrossLine.prototype.calculatePadding = function (padding, seriesRect) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var _l = this, isRange = _l.isRange, startLine = _l.startLine, endLine = _l.endLine;\n if (!isRange && !startLine && !endLine) {\n return;\n }\n var crossLineLabelBBox = this.computeLabelBBox();\n var labelX = (_a = crossLineLabelBBox) === null || _a === void 0 ? void 0 : _a.x;\n var labelY = (_b = crossLineLabelBBox) === null || _b === void 0 ? void 0 : _b.y;\n if (labelX == undefined || labelY == undefined) {\n return;\n }\n var labelWidth = (_d = (_c = crossLineLabelBBox) === null || _c === void 0 ? void 0 : _c.width, (_d !== null && _d !== void 0 ? _d : 0));\n var labelHeight = (_f = (_e = crossLineLabelBBox) === null || _e === void 0 ? void 0 : _e.height, (_f !== null && _f !== void 0 ? _f : 0));\n if (labelX + labelWidth >= seriesRect.x + seriesRect.width) {\n var paddingRight = labelX + labelWidth - (seriesRect.x + seriesRect.width);\n padding.right = (_g = padding.right, (_g !== null && _g !== void 0 ? _g : 0)) >= paddingRight ? padding.right : paddingRight;\n }\n else if (labelX <= seriesRect.x) {\n var paddingLeft = seriesRect.x - labelX;\n padding.left = (_h = padding.left, (_h !== null && _h !== void 0 ? _h : 0)) >= paddingLeft ? padding.left : paddingLeft;\n }\n if (labelY + labelHeight >= seriesRect.y + seriesRect.height) {\n var paddingbottom = labelY + labelHeight - (seriesRect.y + seriesRect.height);\n padding.bottom = (_j = padding.bottom, (_j !== null && _j !== void 0 ? _j : 0)) >= paddingbottom ? padding.bottom : paddingbottom;\n }\n else if (labelY <= seriesRect.y) {\n var paddingTop = seriesRect.y - labelY;\n padding.top = (_k = padding.top, (_k !== null && _k !== void 0 ? _k : 0)) >= paddingTop ? padding.top : paddingTop;\n }\n };\n CrossLine.LINE_LAYER_ZINDEX = Layers.SERIES_CROSSLINE_LINE_ZINDEX;\n CrossLine.RANGE_LAYER_ZINDEX = Layers.SERIES_CROSSLINE_RANGE_ZINDEX;\n CrossLine.className = 'CrossLine';\n __decorate$15([\n Validate(OPT_BOOLEAN)\n ], CrossLine.prototype, \"enabled\", void 0);\n __decorate$15([\n Validate(OPT_CROSSLINE_TYPE)\n ], CrossLine.prototype, \"type\", void 0);\n __decorate$15([\n Validate(OPT_ARRAY(2))\n ], CrossLine.prototype, \"range\", void 0);\n __decorate$15([\n Validate(OPT_COLOR_STRING)\n ], CrossLine.prototype, \"fill\", void 0);\n __decorate$15([\n Validate(OPT_NUMBER(0, 1))\n ], CrossLine.prototype, \"fillOpacity\", void 0);\n __decorate$15([\n Validate(OPT_COLOR_STRING)\n ], CrossLine.prototype, \"stroke\", void 0);\n __decorate$15([\n Validate(OPT_NUMBER())\n ], CrossLine.prototype, \"strokeWidth\", void 0);\n __decorate$15([\n Validate(OPT_NUMBER(0, 1))\n ], CrossLine.prototype, \"strokeOpacity\", void 0);\n __decorate$15([\n Validate(OPT_LINE_DASH)\n ], CrossLine.prototype, \"lineDash\", void 0);\n return CrossLine;\n}());\n\nvar __assign$l = (undefined && undefined.__assign) || function () {\n __assign$l = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$l.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$6 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$h(arguments[i]));\n return ar;\n};\nvar __values$6 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction chartType(options) {\n if (isAgCartesianChartOptions(options)) {\n return 'cartesian';\n }\n else if (isAgPolarChartOptions(options)) {\n return 'polar';\n }\n else if (isAgHierarchyChartOptions(options)) {\n return 'hierarchy';\n }\n throw new Error('AG Chart - unknown type of chart for options with type: ' + options.type);\n}\n// Backwards-compatibility layer.\nvar AgChart = /** @class */ (function () {\n function AgChart() {\n }\n /** @deprecated use AgChart.create() or AgChart.update() instead. */\n AgChart.createComponent = function (options, type) {\n // console.warn('AG Charts - createComponent should no longer be used, use AgChart.update() instead.')\n if (type.indexOf('.series') >= 0) {\n var optionsWithType = __assign$l(__assign$l({}, options), { type: options.type || type.split('.')[0] });\n return createSeries([optionsWithType])[0];\n }\n return null;\n };\n AgChart.create = function (options, _container, _data) {\n return AgChartV2.create(options);\n };\n AgChart.update = function (chart, options, _container, _data) {\n return AgChartV2.update(chart, options);\n };\n AgChart.download = function (chart, options) {\n return AgChartV2.download(chart, options);\n };\n return AgChart;\n}());\nvar AgChartV2 = /** @class */ (function () {\n function AgChartV2() {\n }\n AgChartV2.create = function (userOptions) {\n var _this = this;\n debug('user options', userOptions);\n var mixinOpts = {};\n if (AgChartV2.DEBUG()) {\n mixinOpts['debug'] = true;\n }\n var overrideDevicePixelRatio = userOptions.overrideDevicePixelRatio;\n delete userOptions['overrideDevicePixelRatio'];\n var mergedOptions = prepareOptions(userOptions, mixinOpts);\n var chart = isAgCartesianChartOptions(mergedOptions)\n ? mergedOptions.type === 'groupedCategory'\n ? new GroupedCategoryChart(document, overrideDevicePixelRatio)\n : new CartesianChart(document, overrideDevicePixelRatio)\n : isAgHierarchyChartOptions(mergedOptions)\n ? new HierarchyChart(document, overrideDevicePixelRatio)\n : isAgPolarChartOptions(mergedOptions)\n ? new PolarChart(document, overrideDevicePixelRatio)\n : undefined;\n if (!chart) {\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options: \" + mergedOptions['type']);\n }\n chart.requestFactoryUpdate(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (chart.destroyed) {\n // Chart destroyed, skip processing.\n return [2 /*return*/];\n }\n return [4 /*yield*/, AgChartV2.updateDelta(chart, mergedOptions, userOptions)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n return chart;\n };\n AgChartV2.update = function (chart, userOptions) {\n var _this = this;\n debug('user options', userOptions);\n var mixinOpts = {};\n if (AgChartV2.DEBUG()) {\n mixinOpts['debug'] = true;\n }\n chart.requestFactoryUpdate(function () { return __awaiter(_this, void 0, void 0, function () {\n var mergedOptions, deltaOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (chart.destroyed) {\n // Chart destroyed, skip processing.\n return [2 /*return*/];\n }\n mergedOptions = prepareOptions(userOptions, chart.userOptions, mixinOpts);\n if (chartType(mergedOptions) !== chartType(chart.options)) {\n chart.destroy();\n console.warn('AG Charts - options supplied require a different type of chart, please recreate the chart.');\n return [2 /*return*/];\n }\n deltaOptions = jsonDiff(chart.options, mergedOptions);\n if (deltaOptions == null) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, AgChartV2.updateDelta(chart, deltaOptions, userOptions)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n /**\n * Returns the content of the current canvas as an image.\n * @param opts The download options including `width` and `height` of the image as well as `fileName` and `fileFormat`.\n */\n AgChartV2.download = function (chart, opts) {\n var _a = opts || {}, width = _a.width, height = _a.height, fileName = _a.fileName, fileFormat = _a.fileFormat;\n var currentWidth = chart.width;\n var currentHeight = chart.height;\n var unchanged = (width === undefined && height === undefined) ||\n (chart.scene.canvas.pixelRatio === 1 && currentWidth === width && currentHeight === height);\n if (unchanged) {\n chart.scene.download(fileName, fileFormat);\n return;\n }\n width = (width !== null && width !== void 0 ? width : currentWidth);\n height = (height !== null && height !== void 0 ? height : currentHeight);\n var options = __assign$l(__assign$l({}, chart.userOptions), { container: document.createElement('div'), width: width,\n height: height, autoSize: false, overrideDevicePixelRatio: 1 });\n var clonedChart = AgChartV2.create(options);\n clonedChart.waitForUpdate().then(function () {\n clonedChart.scene.download(fileName, fileFormat);\n clonedChart.destroy();\n });\n };\n AgChartV2.updateDelta = function (chart, update, userOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (update.type == null) {\n update = __assign$l(__assign$l({}, update), { type: chart.options.type || optionsType(update) });\n }\n debug('delta update', update);\n return [4 /*yield*/, chart.awaitUpdateCompletion()];\n case 1:\n _a.sent();\n applyChartOptions(chart, update, userOptions);\n return [2 /*return*/];\n }\n });\n });\n };\n AgChartV2.DEBUG = function () { var _a; return _a = windowValue('agChartsDebug'), (_a !== null && _a !== void 0 ? _a : false); };\n return AgChartV2;\n}());\nfunction debug(message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n if (AgChartV2.DEBUG()) {\n console.log.apply(console, __spread$6([message], optionalParams));\n }\n}\nfunction applyChartOptions(chart, options, userOptions) {\n var _a, _b;\n if (isAgCartesianChartOptions(options)) {\n applyOptionValues(chart, options, {\n skip: ['type', 'data', 'series', 'axes', 'autoSize', 'listeners', 'theme'],\n });\n }\n else if (isAgPolarChartOptions(options)) {\n applyOptionValues(chart, options, { skip: ['type', 'data', 'series', 'autoSize', 'listeners', 'theme'] });\n }\n else if (isAgHierarchyChartOptions(options)) {\n applyOptionValues(chart, options, { skip: ['type', 'data', 'series', 'autoSize', 'listeners', 'theme'] });\n }\n else {\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options and chart: \" + options['type']);\n }\n var forceNodeDataRefresh = false;\n if (options.series && options.series.length > 0) {\n applySeries(chart, options);\n forceNodeDataRefresh = true;\n }\n if (isAgCartesianChartOptions(options) && options.axes) {\n var axesPresent = applyAxes(chart, options);\n if (axesPresent) {\n forceNodeDataRefresh = true;\n }\n }\n var seriesOpts = options.series;\n var seriesDataUpdate = !!options.data || ((_a = seriesOpts) === null || _a === void 0 ? void 0 : _a.some(function (s) { return s.data != null; }));\n var otherRefreshUpdate = options.legend || options.title || options.subtitle;\n forceNodeDataRefresh = forceNodeDataRefresh || seriesDataUpdate || !!otherRefreshUpdate;\n if (options.data) {\n chart.data = options.data;\n }\n // Needs to be done last to avoid overrides by width/height properties.\n if (options.autoSize != null) {\n chart.autoSize = options.autoSize;\n }\n if (options.listeners) {\n registerListeners(chart, options.listeners);\n }\n if ((_b = options.legend) === null || _b === void 0 ? void 0 : _b.listeners) {\n Object.assign(chart.legend.listeners, options.legend.listeners);\n }\n chart.options = jsonMerge([chart.options || {}, options], noDataCloneMergeOptions);\n chart.userOptions = jsonMerge([chart.userOptions || {}, userOptions], noDataCloneMergeOptions);\n var updateType = forceNodeDataRefresh ? ChartUpdateType.PROCESS_DATA : ChartUpdateType.PERFORM_LAYOUT;\n chart.update(updateType, { forceNodeDataRefresh: forceNodeDataRefresh });\n}\nfunction applySeries(chart, options) {\n var optSeries = options.series;\n if (!optSeries) {\n return;\n }\n var matchingTypes = chart.series.length === optSeries.length && chart.series.every(function (s, i) { var _a; return s.type === ((_a = optSeries[i]) === null || _a === void 0 ? void 0 : _a.type); });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n chart.series.forEach(function (s, i) {\n var _a, _b;\n var previousOpts = ((_b = (_a = chart.options) === null || _a === void 0 ? void 0 : _a.series) === null || _b === void 0 ? void 0 : _b[i]) || {};\n var seriesDiff = jsonDiff(previousOpts, optSeries[i] || {});\n if (!seriesDiff) {\n return;\n }\n debug(\"applying series diff idx \" + i, seriesDiff);\n applySeriesValues(s, seriesDiff, { path: \"series[\" + i + \"]\" });\n s.markNodeDataDirty();\n });\n return;\n }\n chart.series = createSeries(optSeries);\n}\nfunction applyAxes(chart, options) {\n var optAxes = options.axes;\n if (!optAxes) {\n return false;\n }\n var matchingTypes = chart.axes.length === optAxes.length && chart.axes.every(function (a, i) { return a.type === optAxes[i].type; });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n var oldOpts_1 = chart.options;\n if (isAgCartesianChartOptions(oldOpts_1)) {\n chart.axes.forEach(function (a, i) {\n var _a;\n var previousOpts = ((_a = oldOpts_1.axes) === null || _a === void 0 ? void 0 : _a[i]) || {};\n var axisDiff = jsonDiff(previousOpts, optAxes[i]);\n debug(\"applying axis diff idx \" + i, axisDiff);\n var path = \"axes[\" + i + \"]\";\n var skip = ['axes[].type'];\n applyOptionValues(a, axisDiff, { path: path, skip: skip });\n });\n return true;\n }\n }\n chart.axes = createAxis(optAxes);\n return true;\n}\nfunction createSeries(options) {\n var e_1, _a;\n var series = [];\n var index = 0;\n try {\n for (var _b = __values$6(options || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var seriesOptions = _c.value;\n var path = \"series[\" + index++ + \"]\";\n switch (seriesOptions.type) {\n case 'area':\n series.push(applySeriesValues(new AreaSeries(), seriesOptions, { path: path }));\n break;\n case 'bar':\n // fall-through - bar and column are synonyms.\n case 'column':\n series.push(applySeriesValues(new BarSeries(), seriesOptions, { path: path }));\n break;\n case 'histogram':\n series.push(applySeriesValues(new HistogramSeries(), seriesOptions, { path: path }));\n break;\n case 'line':\n series.push(applySeriesValues(new LineSeries(), seriesOptions, { path: path }));\n break;\n case 'scatter':\n series.push(applySeriesValues(new ScatterSeries(), seriesOptions, { path: path }));\n break;\n case 'pie':\n series.push(applySeriesValues(new PieSeries(), seriesOptions, { path: path }));\n break;\n case 'treemap':\n series.push(applySeriesValues(new TreemapSeries(), seriesOptions, { path: path }));\n break;\n default:\n throw new Error('AG Charts - unknown series type: ' + seriesOptions.type);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return series;\n}\nfunction createAxis(options) {\n var e_2, _a;\n var axes = [];\n var index = 0;\n try {\n for (var _b = __values$6(options || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var axisOptions = _c.value;\n var path = \"axes[\" + index++ + \"]\";\n var skip = ['axes[].type'];\n switch (axisOptions.type) {\n case 'number':\n axes.push(applyOptionValues(new NumberAxis(), axisOptions, { path: path, skip: skip }));\n break;\n case LogAxis.type:\n axes.push(applyOptionValues(new LogAxis(), axisOptions, { path: path, skip: skip }));\n break;\n case CategoryAxis.type:\n axes.push(applyOptionValues(new CategoryAxis(), axisOptions, { path: path, skip: skip }));\n break;\n case GroupedCategoryAxis.type:\n axes.push(applyOptionValues(new GroupedCategoryAxis(), axisOptions, { path: path, skip: skip }));\n break;\n case TimeAxis.type:\n axes.push(applyOptionValues(new TimeAxis(), axisOptions, { path: path, skip: skip }));\n break;\n default:\n throw new Error('AG Charts - unknown axis type: ' + axisOptions['type']);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return axes;\n}\nfunction registerListeners(source, listeners) {\n source.clearEventListeners();\n for (var property in listeners) {\n source.addEventListener(property, listeners[property]);\n }\n}\nvar JSON_APPLY_OPTIONS = {\n constructors: {\n title: Caption,\n subtitle: Caption,\n shadow: DropShadow,\n innerCircle: DoughnutInnerCircle,\n 'axes[].crossLines[]': CrossLine,\n 'series[].innerLabels[]': DoughnutInnerLabel,\n },\n allowedTypes: {\n 'series[].marker.shape': ['primitive', 'function'],\n 'axis[].tick.count': ['primitive', 'class-instance'],\n },\n};\nfunction applyOptionValues(target, options, _a) {\n var _b = _a === void 0 ? {} : _a, skip = _b.skip, path = _b.path;\n var applyOpts = __assign$l(__assign$l(__assign$l({}, JSON_APPLY_OPTIONS), { skip: skip }), (path ? { path: path } : {}));\n return jsonApply(target, options, applyOpts);\n}\nfunction applySeriesValues(target, options, _a) {\n var path = (_a === void 0 ? {} : _a).path;\n var _b, _c;\n var skip = ['series[].listeners'];\n var ctrs = ((_b = JSON_APPLY_OPTIONS) === null || _b === void 0 ? void 0 : _b.constructors) || {};\n var seriesTypeOverrides = {\n constructors: __assign$l(__assign$l({}, ctrs), { title: target.type === 'pie' ? PieTitle : ctrs['title'] }),\n };\n var applyOpts = __assign$l(__assign$l(__assign$l(__assign$l({}, JSON_APPLY_OPTIONS), seriesTypeOverrides), { skip: __spread$6(['series[].type'], (skip || [])) }), (path ? { path: path } : {}));\n var result = jsonApply(target, options, applyOpts);\n var listeners = (_c = options) === null || _c === void 0 ? void 0 : _c.listeners;\n if (listeners != null) {\n registerListeners(target, listeners);\n }\n return result;\n}\n\nvar time = {\n millisecond: millisecond$1,\n second: second$1,\n minute: minute$1,\n hour: hour$1,\n day: day$1,\n sunday: sunday$1,\n monday: monday$1,\n tuesday: tuesday,\n wednesday: wednesday,\n thursday: thursday$1,\n friday: friday,\n saturday: saturday,\n month: month$1,\n year: year$1,\n utcMinute: utcMinute,\n utcHour: utcHour,\n utcDay: utcDay$1,\n utcMonth: utcMonth,\n utcYear: utcYear$1,\n};\n\nfunction getSeriesType(chartType) {\n switch (chartType) {\n case 'bar':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return 'bar';\n case 'column':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n return 'column';\n case 'line':\n return 'line';\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return 'area';\n case 'scatter':\n case 'bubble':\n return 'scatter';\n case 'histogram':\n return 'histogram';\n case 'pie':\n case 'doughnut':\n return 'pie';\n default:\n return 'cartesian';\n }\n}\n\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartController = /** @class */ (function (_super) {\n __extends$1O(ChartController, _super);\n function ChartController(model) {\n var _this = _super.call(this) || this;\n _this.model = model;\n return _this;\n }\n ChartController.prototype.init = function () {\n var _this = this;\n this.setChartRange();\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function (event) {\n if (event.id && event.id === _this.model.chartId) {\n _this.updateForRangeChange();\n }\n });\n if (this.model.unlinked) {\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.updateForDataChange.bind(this));\n };\n ChartController.prototype.updateForGridChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateCellRanges();\n this.setChartRange();\n };\n ChartController.prototype.updateForDataChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateData();\n this.raiseChartModelUpdateEvent();\n };\n ChartController.prototype.updateForRangeChange = function () {\n this.updateForGridChange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.updateForPanelChange = function (updatedCol) {\n this.model.updateCellRanges(updatedCol);\n this.setChartRange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.getChartUpdateParams = function () {\n var selectedCols = this.getSelectedValueColState();\n var fields = selectedCols.map(function (c) { return ({ colId: c.colId, displayName: c.displayName }); });\n var data = this.getChartData();\n var selectedDimension = this.getSelectedDimension();\n return {\n data: data,\n grouping: this.isGrouping(),\n category: {\n id: selectedDimension.colId,\n name: selectedDimension.displayName,\n chartDataType: this.model.getChartDataType(selectedDimension.colId)\n },\n fields: fields,\n chartId: this.getChartId(),\n getCrossFilteringContext: function () { return ({ lastSelectedChartId: 'xxx' }); },\n seriesChartTypes: this.getSeriesChartTypes()\n };\n };\n ChartController.prototype.getChartModel = function () {\n var modelType = this.model.pivotChart ? 'pivot' : 'range';\n var seriesChartTypes = this.isComboChart() ? this.model.seriesChartTypes : undefined;\n return {\n modelType: modelType,\n chartId: this.model.chartId,\n chartType: this.model.chartType,\n chartThemeName: this.model.chartThemeName,\n chartOptions: this.chartProxy.getChartOptions(),\n chartPalette: this.chartProxy.getChartPalette(),\n cellRange: this.getCellRangeParams(),\n suppressChartRanges: this.model.suppressChartRanges,\n aggFunc: this.model.aggFunc,\n unlinkChart: this.model.unlinked,\n seriesChartTypes: seriesChartTypes\n };\n };\n ChartController.prototype.getChartId = function () {\n return this.model.chartId;\n };\n ChartController.prototype.getChartData = function () {\n return this.model.chartData;\n };\n ChartController.prototype.getChartType = function () {\n return this.model.chartType;\n };\n ChartController.prototype.setChartType = function (chartType) {\n this.model.chartType = chartType;\n this.model.updateSeriesChartTypes();\n this.raiseChartModelUpdateEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.setChartThemeName = function (chartThemeName) {\n this.model.chartThemeName = chartThemeName;\n this.raiseChartModelUpdateEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.getChartThemeName = function () {\n return this.model.chartThemeName;\n };\n ChartController.prototype.isPivotChart = function () {\n return this.model.pivotChart;\n };\n ChartController.prototype.isPivotMode = function () {\n return this.model.isPivotMode();\n };\n ChartController.prototype.isGrouping = function () {\n return this.model.isGrouping();\n };\n ChartController.prototype.getThemes = function () {\n return this.gridOptionsWrapper.getChartThemes();\n };\n ChartController.prototype.getPalettes = function () {\n var _this = this;\n var themeNames = this.gridOptionsWrapper.getChartThemes();\n return themeNames.map(function (themeName) {\n var stockTheme = _this.chartProxy.isStockTheme(themeName);\n var theme = stockTheme ? themeName : _this.chartProxy.lookupCustomChartTheme(themeName);\n return getChartTheme(theme).palette;\n });\n };\n ChartController.prototype.getValueColState = function () {\n return this.model.valueColState.map(this.displayNameMapper.bind(this));\n };\n ChartController.prototype.getSelectedValueColState = function () {\n return this.getValueColState().filter(function (cs) { return cs.selected; });\n };\n ChartController.prototype.getDimensionColState = function () {\n return this.model.dimensionColState;\n };\n ChartController.prototype.getSelectedDimension = function () {\n return this.model.getSelectedDimension();\n };\n ChartController.prototype.displayNameMapper = function (col) {\n var columnNames = this.model.columnNames[col.colId];\n col.displayName = columnNames ? columnNames.join(' - ') : this.model.getColDisplayName(col.column);\n return col;\n };\n ChartController.prototype.getColStateForMenu = function () {\n return { dimensionCols: this.model.dimensionColState, valueCols: this.getValueColState() };\n };\n ChartController.prototype.isDefaultCategorySelected = function () {\n return this.model.getSelectedDimension().colId === ChartDataModel.DEFAULT_CATEGORY;\n };\n ChartController.prototype.setChartRange = function (silent) {\n if (silent === void 0) { silent = false; }\n if (this.rangeService && !this.model.suppressChartRanges && !this.model.unlinked) {\n this.rangeService.setCellRanges(this.getCellRanges());\n }\n if (!silent) {\n this.raiseChartModelUpdateEvent();\n }\n };\n ChartController.prototype.detachChartRange = function () {\n // when chart is detached it won't listen to changes from the grid\n this.model.unlinked = !this.model.unlinked;\n if (this.model.unlinked) {\n // remove range from grid\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n else {\n // update chart data may have changed\n this.updateForGridChange();\n }\n };\n ChartController.prototype.setChartProxy = function (chartProxy) {\n this.chartProxy = chartProxy;\n };\n ChartController.prototype.getChartProxy = function () {\n return this.chartProxy;\n };\n ChartController.prototype.isActiveXYChart = function () {\n return _.includes(['scatter', 'bubble'], this.getChartType());\n };\n ChartController.prototype.isChartLinked = function () {\n return !this.model.unlinked;\n };\n ChartController.prototype.customComboExists = function () {\n return this.model.savedCustomSeriesChartTypes && this.model.savedCustomSeriesChartTypes.length > 0;\n };\n ChartController.prototype.getSeriesChartTypes = function () {\n return this.model.seriesChartTypes;\n };\n ChartController.prototype.isComboChart = function () {\n return this.model.isComboChart();\n };\n ChartController.prototype.updateSeriesChartType = function (colId, chartType, secondaryAxis) {\n var seriesChartType = this.model.seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n // once a combo chart has been modified it is now a 'customCombo' chart\n var updateChartType = this.model.chartType !== 'customCombo';\n if (updateChartType) {\n this.model.chartType = 'customCombo';\n }\n var prevSeriesChartType = seriesChartType.chartType;\n if (chartType != null) {\n seriesChartType.chartType = chartType;\n }\n if (secondaryAxis != null) {\n seriesChartType.secondaryAxis = secondaryAxis;\n }\n // replace existing custom series types with this latest version\n this.model.savedCustomSeriesChartTypes = this.model.seriesChartTypes;\n // series chart types can be modified, i.e. column chart types should be moved to primary axis\n this.model.updateSeriesChartTypes();\n this.updateForDataChange();\n if (updateChartType) {\n // update the settings panel by raising an EVENT_CHART_TYPE_CHANGED event\n this.dispatchEvent(Object.freeze({\n type: ChartController.EVENT_CHART_TYPE_CHANGED\n }));\n }\n if (prevSeriesChartType !== chartType) {\n // update the format panel by raising an EVENT_CHART_SERIES_CHART_TYPE_CHANGED event\n this.dispatchEvent(Object.freeze({\n type: ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED\n }));\n }\n }\n };\n ChartController.prototype.getActiveSeriesChartTypes = function () {\n var selectedColIds = this.getSelectedValueColState().map(function (c) { return c.colId; });\n return this.getSeriesChartTypes().filter(function (s) { return selectedColIds.includes(s.colId); });\n };\n ChartController.prototype.getChartSeriesTypes = function () {\n var supportedComboSeriesTypes = ['line', 'column', 'area'];\n return this.isComboChart() ? supportedComboSeriesTypes : [getSeriesType(this.getChartType())];\n };\n ChartController.prototype.getCellRanges = function () {\n return [this.model.dimensionCellRange, this.model.valueCellRange].filter(function (r) { return r; });\n };\n ChartController.prototype.getCellRangeParams = function () {\n var cellRanges = this.getCellRanges();\n var firstCellRange = cellRanges[0];\n var startRow = (firstCellRange && firstCellRange.startRow) || null;\n var endRow = (firstCellRange && firstCellRange.endRow) || null;\n return {\n rowStartIndex: startRow && startRow.rowIndex,\n rowStartPinned: startRow && startRow.rowPinned,\n rowEndIndex: endRow && endRow.rowIndex,\n rowEndPinned: endRow && endRow.rowPinned,\n columns: cellRanges.reduce(function (columns, value) { return columns.concat(value.columns.map(function (c) { return c.getId(); })); }, [])\n };\n };\n ChartController.prototype.raiseChartModelUpdateEvent = function () {\n var event = Object.freeze({\n type: ChartController.EVENT_CHART_MODEL_UPDATE\n });\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartUpdatedEvent = function () {\n var event = Object.freeze({\n type: ChartController.EVENT_CHART_UPDATED\n });\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartOptionsChangedEvent = function () {\n var _a = this.getChartModel(), chartId = _a.chartId, chartType = _a.chartType;\n var event = Object.freeze({\n type: Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartId,\n chartType: chartType,\n chartThemeName: this.model.chartThemeName,\n chartOptions: this.chartProxy.getChartOptions()\n });\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartRangeSelectionChangedEvent = function () {\n var event = Object.freeze({\n type: Events.EVENT_CHART_RANGE_SELECTION_CHANGED,\n id: this.model.chartId,\n chartId: this.model.chartId,\n cellRange: this.getCellRangeParams()\n });\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n };\n ChartController.EVENT_CHART_UPDATED = 'chartUpdated';\n ChartController.EVENT_CHART_MODEL_UPDATE = 'chartModelUpdate';\n ChartController.EVENT_CHART_TYPE_CHANGED = 'chartTypeChanged';\n ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED = 'chartSeriesChartTypeChanged';\n __decorate$14([\n Autowired('rangeService')\n ], ChartController.prototype, \"rangeService\", void 0);\n __decorate$14([\n PostConstruct\n ], ChartController.prototype, \"init\", null);\n return ChartController;\n}(BeanStub));\n\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$5 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$g(arguments[i]));\n return ar;\n};\nvar __values$5 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ChartDataPanel = /** @class */ (function (_super) {\n __extends$1N(ChartDataPanel, _super);\n function ChartDataPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, ChartDataPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.columnComps = new Map();\n return _this;\n }\n ChartDataPanel.prototype.init = function () {\n this.updatePanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_MODEL_UPDATE, this.updatePanels.bind(this));\n this.createAutoScrollService();\n };\n ChartDataPanel.prototype.destroy = function () {\n this.clearComponents();\n _super.prototype.destroy.call(this);\n };\n ChartDataPanel.prototype.updatePanels = function () {\n var _this = this;\n var currentChartType = this.chartType;\n var _a = this.chartController.getColStateForMenu(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var colIds = dimensionCols.map(function (c) { return c.colId; }).concat(valueCols.map(function (c) { return c.colId; }));\n this.chartType = this.chartController.getChartType();\n var groupExpandedState = this.getGroupExpandedState();\n if (_.areEqual(_.keys(this.columnComps), colIds) && this.chartType === currentChartType) {\n // if possible, we just update existing components\n __spread$5(dimensionCols, valueCols).forEach(function (col) {\n _this.columnComps.get(col.colId).setValue(col.selected, true);\n });\n if (this.chartController.isActiveXYChart()) {\n var getSeriesLabel_1 = this.generateGetSeriesLabel();\n valueCols.forEach(function (col) {\n _this.columnComps.get(col.colId).setLabel(getSeriesLabel_1(col));\n });\n }\n // recreate series chart type group if it exists as series may be added or removed via series group panel\n _.removeFromParent(this.getGui().querySelector('#seriesChartTypeGroup'));\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n this.createSeriesChartTypeGroup(valueCols);\n }\n else {\n // otherwise, we re-create everything\n this.clearComponents();\n this.createCategoriesGroup(dimensionCols);\n this.createSeriesGroup(valueCols);\n this.createSeriesChartTypeGroup(valueCols);\n }\n this.restoreGroupExpandedState(groupExpandedState);\n };\n ChartDataPanel.prototype.getGroupExpandedState = function () {\n return [\n this.categoriesGroupComp,\n this.seriesGroupComp,\n this.seriesChartTypeGroupComp\n ].map(function (group) { return !group ? true : group.isExpanded(); });\n };\n ChartDataPanel.prototype.restoreGroupExpandedState = function (groupExpandedState) {\n [\n this.categoriesGroupComp,\n this.seriesGroupComp,\n this.seriesChartTypeGroupComp\n ].forEach(function (group, idx) {\n if (!group) {\n return;\n }\n group.toggleGroupExpand(groupExpandedState[idx]);\n });\n };\n ChartDataPanel.prototype.createAutoScrollService = function () {\n var eGui = this.getGui();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: eGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return eGui.scrollTop; },\n setVerticalPosition: function (position) { return eGui.scrollTop = position; }\n });\n };\n ChartDataPanel.prototype.addComponent = function (parent, component, id) {\n var eDiv = document.createElement('div');\n eDiv.id = id;\n eDiv.className = 'ag-chart-data-section';\n eDiv.appendChild(component.getGui());\n parent.appendChild(eDiv);\n };\n ChartDataPanel.prototype.addChangeListener = function (component, columnState) {\n var _this = this;\n this.addManagedListener(component, AgAbstractField.EVENT_CHANGED, function () {\n columnState.selected = component.getValue();\n _this.chartController.updateForPanelChange(columnState);\n });\n };\n ChartDataPanel.prototype.createCategoriesGroup = function (columns) {\n var _this = this;\n this.categoriesGroupComp = this.createBean(new AgGroupComponent({\n title: this.getCategoryGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var inputName = \"chartDimension\" + this.getCompId();\n columns.forEach(function (col) {\n var comp = _this.categoriesGroupComp.createManagedBean(new AgRadioButton());\n comp.setLabel(_.escapeString(col.displayName));\n comp.setValue(col.selected);\n comp.setInputName(inputName);\n _this.addChangeListener(comp, col);\n _this.categoriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n });\n this.addComponent(this.getGui(), this.categoriesGroupComp, 'categoriesGroup');\n };\n ChartDataPanel.prototype.createSeriesGroup = function (columns) {\n var _this = this;\n this.seriesGroupComp = this.createManagedBean(new AgGroupComponent({\n title: this.getSeriesGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n if (this.chartController.isActiveXYChart()) {\n var pairedModeToggle = this.seriesGroupComp.createManagedBean(new AgToggleButton());\n pairedModeToggle\n .setLabel(this.chartTranslationService.translate('paired'))\n .setLabelAlignment('left')\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getPairedMode())\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setPairedMode(!!newValue);\n _this.chartController.updateForGridChange();\n });\n this.seriesGroupComp.addItem(pairedModeToggle);\n }\n var getSeriesLabel = this.generateGetSeriesLabel();\n columns.forEach(function (col) {\n var comp = _this.seriesGroupComp.createManagedBean(new AgCheckbox());\n comp.addCssClass('ag-data-select-checkbox');\n var label = getSeriesLabel(col);\n comp.setLabel(label);\n comp.setValue(col.selected);\n _this.addChangeListener(comp, col);\n _this.seriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n _this.addDragHandle(comp, col);\n });\n this.addComponent(this.getGui(), this.seriesGroupComp, 'seriesGroup');\n var dropTarget = {\n getIconName: function () { return DragAndDropService.ICON_MOVE; },\n getContainer: function () { return _this.seriesGroupComp.getGui(); },\n onDragging: function (params) { return _this.onDragging(params); },\n onDragLeave: function () { return _this.onDragLeave(); },\n isInterestedIn: this.isInterestedIn.bind(this),\n targetContainsSource: true\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n };\n ChartDataPanel.prototype.createSeriesChartTypeGroup = function (columns) {\n var _this = this;\n if (!this.chartController.isComboChart()) {\n return;\n }\n this.seriesChartTypeGroupComp = this.createManagedBean(new AgGroupComponent({\n title: this.chartTranslationService.translate('seriesChartType'),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var seriesChartTypes = this.chartController.getSeriesChartTypes();\n columns.forEach(function (col) {\n if (!col.selected) {\n return;\n }\n var seriesChartType = seriesChartTypes.filter(function (s) { return s.colId === col.colId; })[0];\n if (!seriesChartType) {\n return;\n }\n var seriesItemGroup = _this.seriesChartTypeGroupComp.createManagedBean(new AgGroupComponent({\n title: col.displayName,\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-format-sub-level'\n }));\n var secondaryAxisComp = _this.seriesChartTypeGroupComp\n .createManagedBean(new AgCheckbox())\n .setLabel(_this.chartTranslationService.translate('secondaryAxis'))\n .setLabelWidth(\"flex\")\n .setDisabled(['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType))\n .setValue(!!seriesChartType.secondaryAxis)\n .onValueChange(function (enabled) { return _this.chartController.updateSeriesChartType(col.colId, undefined, enabled); });\n seriesItemGroup.addItem(secondaryAxisComp);\n var translate = function (key, defaultText) {\n return _this.chartTranslationService.translate(key, defaultText);\n };\n var availableChartTypes = [\n { value: 'line', text: translate('line', 'Line') },\n { value: 'area', text: translate('area', 'Area') },\n { value: 'stackedArea', text: translate('stackedArea', 'StackedArea') },\n { value: 'groupedColumn', text: translate('groupedColumn', 'Grouped Column') },\n { value: 'stackedColumn', text: translate('stackedColumn', 'Stacked Column') },\n ];\n var chartTypeComp = seriesItemGroup.createManagedBean(new AgSelect());\n chartTypeComp\n .setLabelAlignment('left')\n .setLabelWidth(\"flex\")\n .addOptions(availableChartTypes)\n .setValue(seriesChartType.chartType)\n .onValueChange(function (chartType) { return _this.chartController.updateSeriesChartType(col.colId, chartType); });\n seriesItemGroup.addItem(chartTypeComp);\n _this.seriesChartTypeGroupComp.addItem(seriesItemGroup);\n });\n this.addComponent(this.getGui(), this.seriesChartTypeGroupComp, 'seriesChartTypeGroup');\n };\n ChartDataPanel.prototype.addDragHandle = function (comp, col) {\n var _this = this;\n var eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n eDragHandle.classList.add('ag-drag-handle', 'ag-chart-data-column-drag-handle');\n comp.getGui().insertAdjacentElement('beforeend', eDragHandle);\n var dragSource = {\n type: DragSourceType.ChartPanel,\n eElement: eDragHandle,\n dragItemName: col.displayName,\n getDragItem: function () { return ({ columns: [col.column] }); },\n onDragStopped: function () { return _this.onDragStop(); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ChartDataPanel.prototype.generateGetSeriesLabel = function () {\n if (!this.chartController.isActiveXYChart()) {\n return function (col) { return _.escapeString(col.displayName); };\n }\n var isBubble = this.chartType === 'bubble';\n var isInPairedMode = this.isInPairedMode();\n var selectedValuesCount = 0;\n var indexToAxisLabel = new Map();\n indexToAxisLabel.set(0, 'X');\n indexToAxisLabel.set(1, 'Y');\n indexToAxisLabel.set(2, 'size');\n return function (col) {\n var escapedLabel = _.escapeString(col.displayName);\n if (!col.selected) {\n return escapedLabel;\n }\n var axisLabel;\n if (isInPairedMode) {\n axisLabel = indexToAxisLabel.get(selectedValuesCount % (isBubble ? 3 : 2));\n }\n else {\n if (selectedValuesCount === 0) {\n axisLabel = 'X';\n }\n else {\n axisLabel = isBubble && selectedValuesCount % 2 === 0 ? 'size' : 'Y';\n }\n }\n selectedValuesCount++;\n return escapedLabel + \" (\" + axisLabel + \")\";\n };\n };\n ChartDataPanel.prototype.getCategoryGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'labels' : 'categories');\n };\n ChartDataPanel.prototype.getSeriesGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'xyValues' : 'series');\n };\n ChartDataPanel.prototype.isInPairedMode = function () {\n return this.chartController.isActiveXYChart() && this.chartOptionsService.getSeriesOption('paired', 'scatter');\n };\n ChartDataPanel.prototype.clearComponents = function () {\n _.clearElement(this.getGui());\n this.categoriesGroupComp = this.destroyBean(this.categoriesGroupComp);\n this.seriesGroupComp = this.destroyBean(this.seriesGroupComp);\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n this.columnComps.clear();\n };\n ChartDataPanel.prototype.onDragging = function (draggingEvent) {\n var itemHovered = this.checkHoveredItem(draggingEvent);\n if (!itemHovered) {\n return;\n }\n this.lastDraggedColumn = draggingEvent.dragItem.columns[0];\n var comp = itemHovered.comp, position = itemHovered.position;\n var _a = this.lastHoveredItem || {}, lastHoveredComp = _a.comp, lastHoveredPosition = _a.position;\n if (comp === lastHoveredComp && position === lastHoveredPosition) {\n return;\n }\n this.autoScrollService.check(draggingEvent.event);\n this.clearHoveredItems();\n this.lastHoveredItem = { comp: comp, position: position };\n var eGui = comp.getGui();\n eGui.classList.add('ag-list-item-hovered', \"ag-item-highlight-\" + position);\n };\n ChartDataPanel.prototype.checkHoveredItem = function (draggingEvent) {\n var e_1, _a;\n if (_.missing(draggingEvent.vDirection)) {\n return null;\n }\n var mouseEvent = draggingEvent.event;\n try {\n for (var _b = __values$5(this.columnComps.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var comp = _c.value;\n var eGui = comp.getGui();\n if (!eGui.querySelector('.ag-chart-data-column-drag-handle')) {\n continue;\n }\n var rect = eGui.getBoundingClientRect();\n var isOverComp = mouseEvent.clientY >= rect.top && mouseEvent.clientY <= rect.bottom;\n if (isOverComp) {\n var height = eGui.clientHeight;\n var position = mouseEvent.clientY > rect.top + (height / 2) ? 'bottom' : 'top';\n return { comp: comp, position: position };\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n };\n ChartDataPanel.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n };\n ChartDataPanel.prototype.onDragStop = function () {\n var _this = this;\n if (this.lastHoveredItem) {\n var _a = this.chartController.getColStateForMenu(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var draggedColumnState = __spread$5(dimensionCols, valueCols).find(function (state) { return state.column === _this.lastDraggedColumn; });\n if (draggedColumnState) {\n var targetIndex = Array.from(this.columnComps.values()).indexOf(this.lastHoveredItem.comp);\n if (this.lastHoveredItem.position === 'bottom') {\n targetIndex++;\n }\n draggedColumnState.order = targetIndex;\n this.chartController.updateForPanelChange(draggedColumnState);\n }\n }\n this.clearHoveredItems();\n this.lastDraggedColumn = undefined;\n this.autoScrollService.ensureCleared();\n };\n ChartDataPanel.prototype.clearHoveredItems = function () {\n this.columnComps.forEach(function (columnComp) {\n columnComp.getGui().classList.remove('ag-list-item-hovered', 'ag-item-highlight-top', 'ag-item-highlight-bottom');\n });\n this.lastHoveredItem = undefined;\n };\n ChartDataPanel.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.ChartPanel;\n };\n ChartDataPanel.TEMPLATE = \"
\";\n __decorate$13([\n Autowired('dragAndDropService')\n ], ChartDataPanel.prototype, \"dragAndDropService\", void 0);\n __decorate$13([\n Autowired('chartTranslationService')\n ], ChartDataPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$13([\n PostConstruct\n ], ChartDataPanel.prototype, \"init\", null);\n return ChartDataPanel;\n}(Component));\n\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FontPanel = /** @class */ (function (_super) {\n __extends$1M(FontPanel, _super);\n function FontPanel(params) {\n var _this = _super.call(this) || this;\n _this.activeComps = [];\n _this.params = params;\n return _this;\n }\n FontPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(FontPanel.TEMPLATE, { fontGroup: groupParams });\n this.initGroup();\n this.initFontFamilySelect();\n this.initFontWeightStyleSelect();\n this.initFontSizeSelect();\n this.initFontColorPicker();\n };\n FontPanel.prototype.addCompToPanel = function (comp) {\n this.fontGroup.addItem(comp);\n this.activeComps.push(comp);\n };\n FontPanel.prototype.setEnabled = function (enabled) {\n this.fontGroup.setEnabled(enabled);\n };\n FontPanel.prototype.initGroup = function () {\n var _this = this;\n this.fontGroup\n .setTitle(this.params.name || this.chartTranslationService.translate('font'))\n .setEnabled(this.params.enabled)\n .hideEnabledCheckbox(!!this.params.suppressEnabledCheckbox)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (enabled) {\n if (_this.params.setEnabled) {\n _this.params.setEnabled(enabled);\n }\n });\n };\n FontPanel.prototype.initFontFamilySelect = function () {\n var _this = this;\n var families = [\n 'Arial, sans-serif',\n 'Aria Black, sans-serif',\n 'Book Antiqua, serif',\n 'Charcoal, sans-serif',\n 'Comic Sans MS, cursive',\n 'Courier, monospace',\n 'Courier New, monospace',\n 'Gadget, sans-serif',\n 'Geneva, sans-serif',\n 'Helvetica, sans-serif',\n 'Impact, sans-serif',\n 'Lucida Console, monospace',\n 'Lucida Grande, sans-serif',\n 'Lucida Sans Unicode, sans-serif',\n 'Monaco, monospace',\n 'Palatino Linotype, serif',\n 'Palatino, serif',\n 'Times New Roman, serif',\n 'Times, serif',\n 'Verdana, sans-serif'\n ];\n var family = this.params.initialFont.family;\n var initialValue = families[0];\n if (family) {\n // check for known values using lowercase\n var lowerCaseValues = families.map(function (f) { return f.toLowerCase(); });\n var valueIndex = lowerCaseValues.indexOf(family.toLowerCase());\n if (valueIndex >= 0) {\n initialValue = families[valueIndex];\n }\n else {\n // add user provided value to list\n var capitalisedFontValue = _.capitalise(family);\n families.push(capitalisedFontValue);\n initialValue = capitalisedFontValue;\n }\n }\n var options = families.sort().map(function (value) { return ({ value: value, text: value }); });\n this.familySelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + initialValue)\n .onValueChange(function (newValue) { return _this.params.setFont({ family: newValue }); });\n };\n FontPanel.prototype.initFontSizeSelect = function () {\n var _this = this;\n var sizes = [8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36];\n var size = this.params.initialFont.size;\n if (!_.includes(sizes, size)) {\n sizes.push(size);\n }\n var options = sizes.sort(function (a, b) { return a - b; }).map(function (value) { return ({ value: \"\" + value, text: \"\" + value }); });\n this.sizeSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + size)\n .onValueChange(function (newValue) { return _this.params.setFont({ size: parseInt(newValue, 10) }); });\n this.sizeSelect.setLabel(this.chartTranslationService.translate('size'));\n };\n FontPanel.prototype.initFontWeightStyleSelect = function () {\n var _this = this;\n var _a = this.params.initialFont, _b = _a.weight, weight = _b === void 0 ? 'normal' : _b, _c = _a.style, style = _c === void 0 ? 'normal' : _c;\n var weightStyles = [\n { name: 'normal', weight: 'normal', style: 'normal' },\n { name: 'bold', weight: 'bold', style: 'normal' },\n { name: 'italic', weight: 'normal', style: 'italic' },\n { name: 'boldItalic', weight: 'bold', style: 'italic' }\n ];\n var selectedOption = weightStyles.find(function (x) { return x.weight === weight && x.style === style; });\n if (!selectedOption) {\n selectedOption = { name: 'predefined', weight: weight, style: style };\n weightStyles.unshift(selectedOption);\n }\n var options = weightStyles.map(function (ws) { return ({\n value: ws.name,\n text: _this.chartTranslationService.translate(ws.name),\n }); });\n this.weightStyleSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(selectedOption.name)\n .onValueChange(function (newValue) {\n var selectedWeightStyle = weightStyles.find(function (x) { return x.name === newValue; });\n _this.params.setFont({ weight: selectedWeightStyle.weight, style: selectedWeightStyle.style });\n });\n };\n FontPanel.prototype.initFontColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setInputWidth(45)\n .setValue(\"\" + this.params.initialFont.color)\n .onValueChange(function (newColor) { return _this.params.setFont({ color: newColor }); });\n };\n FontPanel.prototype.destroyActiveComps = function () {\n var _this = this;\n this.activeComps.forEach(function (comp) {\n _.removeFromParent(comp.getGui());\n _this.destroyBean(comp);\n });\n };\n FontPanel.prototype.destroy = function () {\n this.destroyActiveComps();\n _super.prototype.destroy.call(this);\n };\n FontPanel.TEMPLATE = \"
\\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$12([\n RefSelector('fontGroup')\n ], FontPanel.prototype, \"fontGroup\", void 0);\n __decorate$12([\n RefSelector('familySelect')\n ], FontPanel.prototype, \"familySelect\", void 0);\n __decorate$12([\n RefSelector('weightStyleSelect')\n ], FontPanel.prototype, \"weightStyleSelect\", void 0);\n __decorate$12([\n RefSelector('sizeSelect')\n ], FontPanel.prototype, \"sizeSelect\", void 0);\n __decorate$12([\n RefSelector('colorPicker')\n ], FontPanel.prototype, \"colorPicker\", void 0);\n __decorate$12([\n Autowired('chartTranslationService')\n ], FontPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$12([\n PostConstruct\n ], FontPanel.prototype, \"init\", null);\n return FontPanel;\n}(Component));\n\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LegendPanel = /** @class */ (function (_super) {\n __extends$1L(LegendPanel, _super);\n function LegendPanel(_a) {\n var chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n LegendPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(LegendPanel.TEMPLATE, { legendGroup: groupParams });\n this.initLegendGroup();\n this.initLegendPosition();\n this.initLegendPadding();\n this.initLegendItems();\n this.initLabelPanel();\n };\n LegendPanel.prototype.initLegendGroup = function () {\n var _this = this;\n this.legendGroup\n .setTitle(this.chartTranslationService.translate(\"legend\"))\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"legend.enabled\") || false)\n .toggleGroupExpand(this.isExpandedOnInit)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"legend.enabled\", enabled);\n _this.legendGroup.toggleGroupExpand(true);\n });\n };\n LegendPanel.prototype.initLegendPosition = function () {\n var _this = this;\n var positions = [LegendPosition.Top, LegendPosition.Right, LegendPosition.Bottom, LegendPosition.Left];\n this.legendPositionSelect\n .setLabel(this.chartTranslationService.translate(\"position\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(80)\n .addOptions(positions.map(function (position) { return ({\n value: position,\n text: _this.chartTranslationService.translate(position)\n }); }))\n .setValue(this.chartOptionsService.getChartOption(\"legend.position\"))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.position\", newValue); });\n };\n LegendPanel.prototype.initLegendPadding = function () {\n var _this = this;\n var currentValue = this.chartOptionsService.getChartOption(\"legend.spacing\");\n this.legendPaddingSlider\n .setLabel(this.chartTranslationService.translate(\"spacing\"))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.spacing\", newValue); });\n };\n LegendPanel.prototype.initLegendItems = function () {\n var _this = this;\n var initSlider = function (expression, labelKey, input, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getChartOption(\"legend.\" + expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setChartOption(\"legend.\" + expression, newValue);\n });\n };\n initSlider(\"item.marker.size\", \"markerSize\", this.markerSizeSlider, 40);\n initSlider(\"item.marker.strokeWidth\", \"markerStroke\", this.markerStrokeSlider, 10);\n initSlider(\"item.marker.padding\", \"itemSpacing\", this.markerPaddingSlider, 20);\n initSlider(\"item.paddingX\", \"layoutHorizontalSpacing\", this.itemPaddingXSlider, 50);\n initSlider(\"item.paddingY\", \"layoutVerticalSpacing\", this.itemPaddingYSlider, 50);\n };\n LegendPanel.prototype.initLabelPanel = function () {\n var _this = this;\n var chartProxy = this.chartOptionsService;\n var initialFont = {\n family: chartProxy.getChartOption(\"legend.item.label.fontFamily\"),\n style: chartProxy.getChartOption(\"legend.item.label.fontStyle\"),\n weight: chartProxy.getChartOption(\"legend.item.label.fontWeight\"),\n size: chartProxy.getChartOption(\"legend.item.label.fontSize\"),\n color: chartProxy.getChartOption(\"legend.item.label.color\")\n };\n var setFont = function (font) {\n var proxy = _this.chartOptionsService;\n if (font.family) {\n proxy.setChartOption(\"legend.item.label.fontFamily\", font.family);\n }\n if (font.weight) {\n proxy.setChartOption(\"legend.item.label.fontWeight\", font.weight);\n }\n if (font.style) {\n proxy.setChartOption(\"legend.item.label.fontStyle\", font.style);\n }\n if (font.size) {\n proxy.setChartOption(\"legend.item.label.fontSize\", font.size);\n }\n if (font.color) {\n proxy.setChartOption(\"legend.item.label.color\", font.color);\n }\n };\n var params = {\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var fontPanelComp = this.createBean(new FontPanel(params));\n this.legendGroup.addItem(fontPanelComp);\n this.activePanels.push(fontPanelComp);\n };\n LegendPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n LegendPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n LegendPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$11([\n RefSelector('legendGroup')\n ], LegendPanel.prototype, \"legendGroup\", void 0);\n __decorate$11([\n RefSelector('legendPositionSelect')\n ], LegendPanel.prototype, \"legendPositionSelect\", void 0);\n __decorate$11([\n RefSelector('legendPaddingSlider')\n ], LegendPanel.prototype, \"legendPaddingSlider\", void 0);\n __decorate$11([\n RefSelector('markerSizeSlider')\n ], LegendPanel.prototype, \"markerSizeSlider\", void 0);\n __decorate$11([\n RefSelector('markerStrokeSlider')\n ], LegendPanel.prototype, \"markerStrokeSlider\", void 0);\n __decorate$11([\n RefSelector('markerPaddingSlider')\n ], LegendPanel.prototype, \"markerPaddingSlider\", void 0);\n __decorate$11([\n RefSelector('itemPaddingXSlider')\n ], LegendPanel.prototype, \"itemPaddingXSlider\", void 0);\n __decorate$11([\n RefSelector('itemPaddingYSlider')\n ], LegendPanel.prototype, \"itemPaddingYSlider\", void 0);\n __decorate$11([\n Autowired('chartTranslationService')\n ], LegendPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$11([\n PostConstruct\n ], LegendPanel.prototype, \"init\", null);\n return LegendPanel;\n}(Component));\n\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisTicksPanel = /** @class */ (function (_super) {\n __extends$1K(AxisTicksPanel, _super);\n function AxisTicksPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n AxisTicksPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(AxisTicksPanel.TEMPLATE, { axisTicksGroup: groupParams });\n this.initAxisTicks();\n };\n AxisTicksPanel.prototype.initAxisTicks = function () {\n var _this = this;\n this.axisTicksGroup\n .setTitle(this.chartTranslationService.translate(\"ticks\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n this.axisTicksColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"tick.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"tick.color\", newColor); });\n var initInput = function (expression, input, label, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getAxisProperty(expression);\n input.setLabel(label)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(expression, newValue); });\n };\n initInput(\"tick.width\", this.axisTicksWidthSlider, this.chartTranslationService.translate(\"width\"), 10);\n initInput(\"tick.size\", this.axisTicksSizeSlider, this.chartTranslationService.translate(\"length\"), 30);\n };\n AxisTicksPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$10([\n RefSelector('axisTicksGroup')\n ], AxisTicksPanel.prototype, \"axisTicksGroup\", void 0);\n __decorate$10([\n RefSelector('axisTicksColorPicker')\n ], AxisTicksPanel.prototype, \"axisTicksColorPicker\", void 0);\n __decorate$10([\n RefSelector('axisTicksWidthSlider')\n ], AxisTicksPanel.prototype, \"axisTicksWidthSlider\", void 0);\n __decorate$10([\n RefSelector('axisTicksSizeSlider')\n ], AxisTicksPanel.prototype, \"axisTicksSizeSlider\", void 0);\n __decorate$10([\n Autowired('chartTranslationService')\n ], AxisTicksPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$10([\n PostConstruct\n ], AxisTicksPanel.prototype, \"init\", null);\n return AxisTicksPanel;\n}(Component));\n\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisPanel = /** @class */ (function (_super) {\n __extends$1J(AxisPanel, _super);\n function AxisPanel(_a) {\n var chartController = _a.chartController, chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.axisLabelUpdateFuncs = [];\n _this.prevXRotation = 0;\n _this.prevYRotation = 0;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n AxisPanel.prototype.init = function () {\n var _this = this;\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(AxisPanel.TEMPLATE, { axisGroup: groupParams });\n this.initAxis();\n this.initAxisTicks();\n this.initAxisLabels();\n var updateAxisLabelRotations = function () { return _this.axisLabelUpdateFuncs.forEach(function (func) { return func(); }); };\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, updateAxisLabelRotations);\n };\n AxisPanel.prototype.initAxis = function () {\n var _this = this;\n this.axisGroup\n .setTitle(this.translate(\"axis\"))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n this.axisColorInput\n .setLabel(this.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"line.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"line.color\", newColor); });\n var currentValue = this.chartOptionsService.getAxisProperty(\"line.width\");\n this.axisLineWidthSlider\n .setMaxValue(getMaxValue(currentValue, 10))\n .setLabel(this.translate(\"thickness\"))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"line.width\", newValue); });\n };\n AxisPanel.prototype.initAxisTicks = function () {\n var axisTicksComp = this.createBean(new AxisTicksPanel(this.chartOptionsService));\n this.axisGroup.addItem(axisTicksComp);\n this.activePanels.push(axisTicksComp);\n };\n AxisPanel.prototype.initAxisLabels = function () {\n var _this = this;\n var initialFont = {\n family: this.chartOptionsService.getAxisProperty(\"label.fontFamily\"),\n style: this.chartOptionsService.getAxisProperty(\"label.fontStyle\"),\n weight: this.chartOptionsService.getAxisProperty(\"label.fontWeight\"),\n size: this.chartOptionsService.getAxisProperty(\"label.fontSize\"),\n color: this.chartOptionsService.getAxisProperty(\"label.color\")\n };\n var setFont = function (font) {\n if (font.family) {\n _this.chartOptionsService.setAxisProperty(\"label.fontFamily\", font.family);\n }\n if (font.weight) {\n _this.chartOptionsService.setAxisProperty(\"label.fontWeight\", font.weight);\n }\n if (font.style) {\n _this.chartOptionsService.setAxisProperty(\"label.fontStyle\", font.style);\n }\n if (font.size) {\n _this.chartOptionsService.setAxisProperty(\"label.fontSize\", font.size);\n }\n if (font.color) {\n _this.chartOptionsService.setAxisProperty(\"label.color\", font.color);\n }\n };\n var params = {\n name: this.translate(\"labels\"),\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var labelPanelComp = this.createBean(new FontPanel(params));\n this.axisGroup.addItem(labelPanelComp);\n this.activePanels.push(labelPanelComp);\n this.addAdditionalLabelComps(labelPanelComp);\n };\n AxisPanel.prototype.addAdditionalLabelComps = function (labelPanelComp) {\n this.addLabelPadding(labelPanelComp);\n var _a = this.createRotationWidgets(), xRotationComp = _a.xRotationComp, yRotationComp = _a.yRotationComp;\n var autoRotateCb = this.initLabelRotations(xRotationComp, yRotationComp);\n labelPanelComp.addCompToPanel(autoRotateCb);\n labelPanelComp.addCompToPanel(xRotationComp);\n labelPanelComp.addCompToPanel(yRotationComp);\n };\n AxisPanel.prototype.initLabelRotations = function (xRotationComp, yRotationComp) {\n var _this = this;\n var getLabelRotation = function (axisType) {\n return _this.chartOptionsService.getLabelRotation(axisType);\n };\n var setLabelRotation = function (axisType, value) {\n _this.chartOptionsService.setLabelRotation(axisType, value);\n };\n var updateAutoRotate = function (autoRotate) {\n _this.chartOptionsService.setAxisProperty(\"label.autoRotate\", autoRotate);\n if (autoRotate) {\n // store prev rotations before we remove them from the options\n _this.prevXRotation = getLabelRotation(\"xAxis\");\n _this.prevYRotation = getLabelRotation(\"yAxis\");\n // `autoRotate` is only\n setLabelRotation(\"xAxis\", undefined);\n setLabelRotation(\"yAxis\", undefined);\n }\n else {\n // reinstate prev rotations\n setLabelRotation(\"xAxis\", _this.prevXRotation);\n setLabelRotation(\"yAxis\", _this.prevYRotation);\n }\n xRotationComp.setDisabled(autoRotate);\n yRotationComp.setDisabled(autoRotate);\n };\n var getAutoRotateValue = function () {\n var xRotation = getLabelRotation(\"xAxis\");\n var yRotation = getLabelRotation(\"yAxis\");\n if (xRotation == undefined && yRotation == undefined) {\n return _this.chartOptionsService.getAxisProperty(\"label.autoRotate\");\n }\n return false;\n };\n var autoRotate = getAutoRotateValue();\n var autoRotateCheckbox = this.createBean(new AgCheckbox())\n .setLabel(this.translate('autoRotate'))\n .setValue(autoRotate)\n .onValueChange(updateAutoRotate);\n // init rotation comp state\n xRotationComp.setDisabled(autoRotate);\n yRotationComp.setDisabled(autoRotate);\n return autoRotateCheckbox;\n };\n AxisPanel.prototype.createRotationWidgets = function () {\n var _this = this;\n var degreesSymbol = String.fromCharCode(176);\n var createRotationComp = function (labelKey, axisType) {\n var label = _this.chartTranslationService.translate(labelKey) + \" \" + degreesSymbol;\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n var angleSelect = new AgAngleSelect()\n .setLabel(label)\n .setLabelWidth(\"flex\")\n .setValue(value || 0)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setLabelRotation(axisType, newValue); });\n // the axis label rotation needs to be updated when the default category changes in the data panel\n _this.axisLabelUpdateFuncs.push(function () {\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n angleSelect.setValue(value || 0);\n });\n return _this.createBean(angleSelect);\n };\n return {\n xRotationComp: createRotationComp(\"xRotation\", \"xAxis\"),\n yRotationComp: createRotationComp(\"yRotation\", \"yAxis\")\n };\n };\n AxisPanel.prototype.addLabelPadding = function (labelPanelComp) {\n var _this = this;\n var labelPaddingSlider = this.createBean(new AgSlider());\n var currentValue = this.chartOptionsService.getAxisProperty(\"label.padding\");\n labelPaddingSlider.setLabel(this.chartTranslationService.translate(\"padding\"))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"label.padding\", newValue); });\n labelPanelComp.addCompToPanel(labelPaddingSlider);\n };\n AxisPanel.prototype.translate = function (key, defaultText) {\n return this.chartTranslationService.translate(key, defaultText);\n };\n AxisPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n AxisPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n AxisPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n
\";\n __decorate$$([\n RefSelector('axisGroup')\n ], AxisPanel.prototype, \"axisGroup\", void 0);\n __decorate$$([\n RefSelector('axisColorInput')\n ], AxisPanel.prototype, \"axisColorInput\", void 0);\n __decorate$$([\n RefSelector('axisLineWidthSlider')\n ], AxisPanel.prototype, \"axisLineWidthSlider\", void 0);\n __decorate$$([\n Autowired('chartTranslationService')\n ], AxisPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$$([\n PostConstruct\n ], AxisPanel.prototype, \"init\", null);\n return AxisPanel;\n}(Component));\n\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigatorPanel = /** @class */ (function (_super) {\n __extends$1I(NavigatorPanel, _super);\n function NavigatorPanel(_a) {\n var chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n NavigatorPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(NavigatorPanel.TEMPLATE, { navigatorGroup: groupParams });\n this.initNavigator();\n };\n NavigatorPanel.prototype.initNavigator = function () {\n var _this = this;\n var chartTranslationService = this.chartTranslationService;\n this.navigatorGroup\n .setTitle(chartTranslationService.translate(\"navigator\"))\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"navigator.enabled\") || false)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"navigator.enabled\", enabled);\n _this.navigatorGroup.toggleGroupExpand(true);\n })\n .toggleGroupExpand(this.isExpandedOnInit);\n var currentValue = this.chartOptionsService.getChartOption(\"navigator.height\");\n this.navigatorHeightSlider\n .setLabel(chartTranslationService.translate(\"height\"))\n .setMinValue(10)\n .setMaxValue(getMaxValue(currentValue, 60))\n .setTextFieldWidth(45)\n .setValue(\"\" + (currentValue || 30))\n .onValueChange(function (height) { return _this.chartOptionsService.setChartOption(\"navigator.height\", height); });\n };\n NavigatorPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NavigatorPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$_([\n RefSelector('navigatorGroup')\n ], NavigatorPanel.prototype, \"navigatorGroup\", void 0);\n __decorate$_([\n RefSelector('navigatorHeightSlider')\n ], NavigatorPanel.prototype, \"navigatorHeightSlider\", void 0);\n __decorate$_([\n Autowired('chartTranslationService')\n ], NavigatorPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$_([\n PostConstruct\n ], NavigatorPanel.prototype, \"init\", null);\n return NavigatorPanel;\n}(Component));\n\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaddingPanel = /** @class */ (function (_super) {\n __extends$1H(PaddingPanel, _super);\n function PaddingPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n PaddingPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(PaddingPanel.TEMPLATE, { chartPaddingGroup: groupParams });\n this.initGroup();\n this.initChartPaddingItems();\n };\n PaddingPanel.prototype.initGroup = function () {\n this.chartPaddingGroup\n .setTitle(this.chartTranslationService.translate(\"padding\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n };\n PaddingPanel.prototype.initChartPaddingItems = function () {\n var _this = this;\n var initInput = function (property, input) {\n var currentValue = _this.chartOptionsService.getChartOption('padding.' + property);\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption('padding.' + property, newValue); });\n };\n initInput('top', this.paddingTopSlider);\n initInput('right', this.paddingRightSlider);\n initInput('bottom', this.paddingBottomSlider);\n initInput('left', this.paddingLeftSlider);\n };\n PaddingPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$Z([\n RefSelector('chartPaddingGroup')\n ], PaddingPanel.prototype, \"chartPaddingGroup\", void 0);\n __decorate$Z([\n RefSelector('paddingTopSlider')\n ], PaddingPanel.prototype, \"paddingTopSlider\", void 0);\n __decorate$Z([\n RefSelector('paddingRightSlider')\n ], PaddingPanel.prototype, \"paddingRightSlider\", void 0);\n __decorate$Z([\n RefSelector('paddingBottomSlider')\n ], PaddingPanel.prototype, \"paddingBottomSlider\", void 0);\n __decorate$Z([\n RefSelector('paddingLeftSlider')\n ], PaddingPanel.prototype, \"paddingLeftSlider\", void 0);\n __decorate$Z([\n Autowired('chartTranslationService')\n ], PaddingPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$Z([\n PostConstruct\n ], PaddingPanel.prototype, \"init\", null);\n return PaddingPanel;\n}(Component));\n\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BackgroundPanel = /** @class */ (function (_super) {\n __extends$1G(BackgroundPanel, _super);\n function BackgroundPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n BackgroundPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(BackgroundPanel.TEMPLATE, { chartBackgroundGroup: groupParams });\n this.initGroup();\n this.initColorPicker();\n };\n BackgroundPanel.prototype.initGroup = function () {\n var _this = this;\n this.group\n .setTitle(this.chartTranslationService.translate('background'))\n .setEnabled(this.chartOptionsService.getChartOption('background.visible'))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (enabled) { return _this.chartOptionsService.setChartOption('background.visible', enabled); });\n };\n BackgroundPanel.prototype.initColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getChartOption('background.fill'))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setChartOption('background.fill', newColor); });\n };\n BackgroundPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$Y([\n RefSelector('chartBackgroundGroup')\n ], BackgroundPanel.prototype, \"group\", void 0);\n __decorate$Y([\n RefSelector('colorPicker')\n ], BackgroundPanel.prototype, \"colorPicker\", void 0);\n __decorate$Y([\n Autowired('chartTranslationService')\n ], BackgroundPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$Y([\n PostConstruct\n ], BackgroundPanel.prototype, \"init\", null);\n return BackgroundPanel;\n}(Component));\n\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TitlePanel = /** @class */ (function (_super) {\n __extends$1F(TitlePanel, _super);\n function TitlePanel(chartOptionsService) {\n var _this = _super.call(this, TitlePanel.TEMPLATE) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n return _this;\n }\n TitlePanel.prototype.init = function () {\n this.initFontPanel();\n this.titlePlaceholder = this.chartTranslationService.translate('titlePlaceholder');\n };\n TitlePanel.prototype.hasTitle = function () {\n var title = this.getOption('title');\n return title && title.enabled && title.text && title.text.length > 0;\n };\n TitlePanel.prototype.initFontPanel = function () {\n var _this = this;\n var hasTitle = this.hasTitle;\n var setFont = function (font) {\n if (font.family) {\n _this.setOption('title.fontFamily', font.family);\n }\n if (font.weight) {\n _this.setOption('title.fontWeight', font.weight);\n }\n if (font.style) {\n _this.setOption('title.fontStyle', font.style);\n }\n if (font.size) {\n _this.setOption('title.fontSize', font.size);\n }\n if (font.color) {\n _this.setOption('title.color', font.color);\n }\n };\n var initialFont = {\n family: this.getOption('title.fontFamily'),\n style: this.getOption('title.fontStyle'),\n weight: this.getOption('title.fontWeight'),\n size: this.getOption('title.fontSize'),\n color: this.getOption('title.color')\n };\n if (!hasTitle) {\n setFont(initialFont);\n }\n var fontPanelParams = {\n name: this.chartTranslationService.translate('title'),\n enabled: this.hasTitle(),\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont,\n setEnabled: function (enabled) {\n _this.setOption('title.enabled', enabled);\n var currentTitleText = _this.getOption('title.text');\n if (enabled && currentTitleText === 'Title') {\n _this.setOption('title.text', _this.titlePlaceholder);\n }\n }\n };\n var fontPanelComp = this.createBean(new FontPanel(fontPanelParams));\n this.getGui().appendChild(fontPanelComp.getGui());\n this.activePanels.push(fontPanelComp);\n // edits to the title can disable it, so keep the checkbox in sync:\n this.addManagedListener(this.eventService, 'chartTitleEdit', function () {\n fontPanelComp.setEnabled(_this.hasTitle());\n });\n };\n TitlePanel.prototype.getOption = function (expression) {\n return this.chartOptionsService.getChartOption(expression);\n };\n TitlePanel.prototype.setOption = function (property, value) {\n this.chartOptionsService.setChartOption(property, value);\n };\n TitlePanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n TitlePanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n TitlePanel.TEMPLATE = \"
\";\n __decorate$X([\n Autowired('chartTranslationService')\n ], TitlePanel.prototype, \"chartTranslationService\", void 0);\n __decorate$X([\n PostConstruct\n ], TitlePanel.prototype, \"init\", null);\n return TitlePanel;\n}(Component));\n\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartPanel = /** @class */ (function (_super) {\n __extends$1E(ChartPanel, _super);\n function ChartPanel(_a) {\n var chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n ChartPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(ChartPanel.TEMPLATE, { chartGroup: groupParams });\n this.initGroup();\n this.initTitles();\n this.initPaddingPanel();\n this.initBackgroundPanel();\n };\n ChartPanel.prototype.initGroup = function () {\n this.chartGroup\n .setTitle(this.chartTranslationService.translate('chart'))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n };\n ChartPanel.prototype.initTitles = function () {\n var titlePanelComp = this.createBean(new TitlePanel(this.chartOptionsService));\n this.chartGroup.addItem(titlePanelComp);\n this.activePanels.push(titlePanelComp);\n };\n ChartPanel.prototype.initPaddingPanel = function () {\n var paddingPanelComp = this.createBean(new PaddingPanel(this.chartOptionsService));\n this.chartGroup.addItem(paddingPanelComp);\n this.activePanels.push(paddingPanelComp);\n };\n ChartPanel.prototype.initBackgroundPanel = function () {\n var backgroundPanelComp = this.createBean(new BackgroundPanel(this.chartOptionsService));\n this.chartGroup.addItem(backgroundPanelComp);\n this.activePanels.push(backgroundPanelComp);\n };\n ChartPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n ChartPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n ChartPanel.TEMPLATE = \"
\\n \\n
\";\n __decorate$W([\n RefSelector('chartGroup')\n ], ChartPanel.prototype, \"chartGroup\", void 0);\n __decorate$W([\n Autowired('chartTranslationService')\n ], ChartPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$W([\n PostConstruct\n ], ChartPanel.prototype, \"init\", null);\n return ChartPanel;\n}(Component));\n\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ShadowPanel = /** @class */ (function (_super) {\n __extends$1D(ShadowPanel, _super);\n function ShadowPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n ShadowPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(ShadowPanel.TEMPLATE, { shadowGroup: groupParams });\n this.shadowBlurSlider.setTextFieldWidth(45);\n this.shadowXOffsetSlider.setTextFieldWidth(45);\n this.shadowYOffsetSlider.setTextFieldWidth(45);\n this.initSeriesShadow();\n };\n ShadowPanel.prototype.initSeriesShadow = function () {\n var _this = this;\n this.shadowGroup\n .setTitle(this.chartTranslationService.translate(\"shadow\"))\n .setEnabled(this.chartOptionsService.getSeriesOption(\"shadow.enabled\", this.getSelectedSeries()))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.enabled\", newValue, _this.getSelectedSeries()); });\n this.shadowColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getSeriesOption(\"shadow.color\", this.getSelectedSeries()))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.color\", newValue, _this.getSelectedSeries()); });\n var initInput = function (input, property, minValue, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(\"shadow.\" + property, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMinValue(minValue)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.\" + property, newValue, _this.getSelectedSeries()); });\n };\n initInput(this.shadowBlurSlider, \"blur\", 0, 20);\n initInput(this.shadowXOffsetSlider, \"xOffset\", -10, 10);\n initInput(this.shadowYOffsetSlider, \"yOffset\", -10, 10);\n };\n ShadowPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$V([\n RefSelector('shadowGroup')\n ], ShadowPanel.prototype, \"shadowGroup\", void 0);\n __decorate$V([\n RefSelector('shadowColorPicker')\n ], ShadowPanel.prototype, \"shadowColorPicker\", void 0);\n __decorate$V([\n RefSelector('shadowBlurSlider')\n ], ShadowPanel.prototype, \"shadowBlurSlider\", void 0);\n __decorate$V([\n RefSelector('shadowXOffsetSlider')\n ], ShadowPanel.prototype, \"shadowXOffsetSlider\", void 0);\n __decorate$V([\n RefSelector('shadowYOffsetSlider')\n ], ShadowPanel.prototype, \"shadowYOffsetSlider\", void 0);\n __decorate$V([\n Autowired('chartTranslationService')\n ], ShadowPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$V([\n PostConstruct\n ], ShadowPanel.prototype, \"init\", null);\n return ShadowPanel;\n}(Component));\n\nfunction initFontPanelParams(chartTranslationService, chartOptionsService, getSelectedSeries) {\n var getFontOptionExpression = function (fontOption) {\n var labelProperty = getSelectedSeries() === 'pie' ? 'calloutLabel' : 'label';\n return labelProperty + \".\" + fontOption;\n };\n var getFontOption = function (fontOption) {\n var expression = getFontOptionExpression(fontOption);\n return chartOptionsService.getSeriesOption(expression, getSelectedSeries());\n };\n var setFontOption = function (fontOption, value) {\n var expression = getFontOptionExpression(fontOption);\n chartOptionsService.setSeriesOption(expression, value, getSelectedSeries());\n };\n var initialFont = {\n family: getFontOption('fontFamily'),\n style: getFontOption('fontStyle'),\n weight: getFontOption('fontWeight'),\n size: getFontOption('fontSize'),\n color: getFontOption('color'),\n };\n var setFont = function (font) {\n if (font.family) {\n setFontOption('fontFamily', font.family);\n }\n if (font.weight) {\n setFontOption('fontWeight', font.weight);\n }\n if (font.style) {\n setFontOption('fontStyle', font.style);\n }\n if (font.size) {\n setFontOption('fontSize', font.size);\n }\n if (font.color) {\n setFontOption('color', font.color);\n }\n };\n var params = {\n name: chartTranslationService.translate('labels'),\n enabled: getFontOption('enabled') || false,\n setEnabled: function (enabled) { return setFontOption('enabled', enabled); },\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont\n };\n return params;\n}\n\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MarkersPanel = /** @class */ (function (_super) {\n __extends$1C(MarkersPanel, _super);\n function MarkersPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n MarkersPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(MarkersPanel.TEMPLATE, { seriesMarkersGroup: groupParams });\n this.initMarkers();\n };\n MarkersPanel.prototype.initMarkers = function () {\n var _this = this;\n var seriesMarkerShapeOptions = [\n {\n value: 'square',\n text: 'Square'\n },\n {\n value: 'circle',\n text: 'Circle'\n },\n {\n value: 'cross',\n text: 'Cross'\n },\n {\n value: 'diamond',\n text: 'Diamond'\n },\n {\n value: 'plus',\n text: 'Plus'\n },\n {\n value: 'triangle',\n text: 'Triangle'\n },\n {\n value: 'heart',\n text: 'Heart'\n }\n ];\n this.seriesMarkerShapeSelect\n .addOptions(seriesMarkerShapeOptions)\n .setLabel(this.chartTranslationService.translate('shape'))\n .setValue(this.getSeriesOption(\"marker.shape\"))\n .onValueChange(function (value) { return _this.setSeriesOption(\"marker.shape\", value); });\n // scatter charts should always show markers\n var chartType = this.chartOptionsService.getChartType();\n var shouldHideEnabledCheckbox = _.includes(['scatter', 'bubble'], chartType);\n this.seriesMarkersGroup\n .setTitle(this.chartTranslationService.translate(\"markers\"))\n .hideEnabledCheckbox(shouldHideEnabledCheckbox)\n .setEnabled(this.getSeriesOption(\"marker.enabled\") || false)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (newValue) { return _this.setSeriesOption(\"marker.enabled\", newValue); });\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.getSeriesOption(expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.setSeriesOption(expression, newValue); });\n };\n if (chartType === 'bubble') {\n initInput(\"marker.maxSize\", this.seriesMarkerMinSizeSlider, \"maxSize\", 60);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"minSize\", 60);\n }\n else {\n this.seriesMarkerMinSizeSlider.setDisplayed(false);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"size\", 60);\n }\n initInput(\"marker.strokeWidth\", this.seriesMarkerStrokeWidthSlider, \"strokeWidth\", 10);\n };\n MarkersPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.getSelectedSeries());\n };\n MarkersPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.getSelectedSeries());\n };\n MarkersPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$U([\n RefSelector('seriesMarkersGroup')\n ], MarkersPanel.prototype, \"seriesMarkersGroup\", void 0);\n __decorate$U([\n RefSelector('seriesMarkerShapeSelect')\n ], MarkersPanel.prototype, \"seriesMarkerShapeSelect\", void 0);\n __decorate$U([\n RefSelector('seriesMarkerSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerSizeSlider\", void 0);\n __decorate$U([\n RefSelector('seriesMarkerMinSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerMinSizeSlider\", void 0);\n __decorate$U([\n RefSelector('seriesMarkerStrokeWidthSlider')\n ], MarkersPanel.prototype, \"seriesMarkerStrokeWidthSlider\", void 0);\n __decorate$U([\n Autowired('chartTranslationService')\n ], MarkersPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$U([\n PostConstruct\n ], MarkersPanel.prototype, \"init\", null);\n return MarkersPanel;\n}(Component));\n\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CalloutPanel = /** @class */ (function (_super) {\n __extends$1B(CalloutPanel, _super);\n function CalloutPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n CalloutPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(CalloutPanel.TEMPLATE, { calloutGroup: groupParams });\n this.initCalloutOptions();\n };\n CalloutPanel.prototype.initCalloutOptions = function () {\n var _this = this;\n this.calloutGroup\n .setTitle(this.chartTranslationService.translate(\"callout\"))\n .setEnabled(true)\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(expression, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(expression, newValue, _this.getSelectedSeries()); });\n };\n initInput('calloutLine.length', this.calloutLengthSlider, 'length', 40);\n initInput('calloutLine.strokeWidth', this.calloutStrokeWidthSlider, 'strokeWidth', 10);\n initInput('calloutLabel.offset', this.labelOffsetSlider, 'offset', 30);\n };\n CalloutPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$T([\n RefSelector('calloutGroup')\n ], CalloutPanel.prototype, \"calloutGroup\", void 0);\n __decorate$T([\n RefSelector('calloutLengthSlider')\n ], CalloutPanel.prototype, \"calloutLengthSlider\", void 0);\n __decorate$T([\n RefSelector('calloutStrokeWidthSlider')\n ], CalloutPanel.prototype, \"calloutStrokeWidthSlider\", void 0);\n __decorate$T([\n RefSelector('labelOffsetSlider')\n ], CalloutPanel.prototype, \"labelOffsetSlider\", void 0);\n __decorate$T([\n Autowired('chartTranslationService')\n ], CalloutPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$T([\n PostConstruct\n ], CalloutPanel.prototype, \"init\", null);\n return CalloutPanel;\n}(Component));\n\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SeriesPanel = /** @class */ (function (_super) {\n __extends$1A(SeriesPanel, _super);\n function SeriesPanel(_a) {\n var chartController = _a.chartController, chartOptionsService = _a.chartOptionsService, seriesType = _a.seriesType, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.widgetFuncs = {\n 'lineWidth': function () { return _this.initLineWidth(); },\n 'strokeWidth': function () { return _this.initStrokeWidth(); },\n 'lineDash': function () { return _this.initLineDash(); },\n 'lineOpacity': function () { return _this.initLineOpacity(); },\n 'fillOpacity': function () { return _this.initFillOpacity(); },\n 'markers': function () { return _this.initMarkers(); },\n 'labels': function () { return _this.initLabels(); },\n 'shadow': function () { return _this.initShadow(); },\n 'tooltips': function () { return _this.initTooltips(); },\n 'bins': function () { return _this.initBins(); },\n };\n _this.seriesWidgetMappings = {\n 'area': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'markers', 'labels', 'shadow'],\n 'bar': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'column': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'line': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'markers', 'labels'],\n 'histogram': ['tooltips', 'bins', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'scatter': ['tooltips', 'markers', 'labels'],\n 'pie': ['tooltips', 'strokeWidth', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n };\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.seriesType = seriesType || _this.getChartSeriesType();\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n SeriesPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(SeriesPanel.TEMPLATE, { seriesGroup: groupParams });\n this.seriesGroup\n .setTitle(this.translate(\"series\"))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED, this.refreshWidgets.bind(this));\n this.refreshWidgets();\n };\n SeriesPanel.prototype.refreshWidgets = function () {\n var _this = this;\n this.destroyActivePanels();\n var chart = this.chartController.getChartProxy().getChart();\n chart.waitForUpdate().then(function () {\n if (_this.chartController.isComboChart()) {\n _this.updateSeriesType();\n _this.initSeriesSelect();\n }\n _this.seriesWidgetMappings[_this.seriesType].forEach(function (w) { return _this.widgetFuncs[w](); });\n });\n };\n SeriesPanel.prototype.initSeriesSelect = function () {\n var _this = this;\n var seriesSelect = this.seriesGroup.createManagedBean(new AgSelect());\n seriesSelect\n .setLabel(this.translate('seriesType'))\n .setLabelAlignment(\"left\")\n .setLabelWidth('flex')\n .setInputWidth(100)\n .addOptions(this.getSeriesSelectOptions())\n .setValue(\"\" + this.seriesType)\n .onValueChange(function (newValue) {\n _this.seriesType = newValue;\n _this.refreshWidgets();\n });\n this.seriesGroup.addItem(seriesSelect);\n this.activePanels.push(seriesSelect);\n };\n SeriesPanel.prototype.initTooltips = function () {\n var _this = this;\n var seriesTooltipsToggle = this.createBean(new AgToggleButton());\n seriesTooltipsToggle\n .setLabel(this.translate(\"tooltips\"))\n .setLabelAlignment(\"left\")\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.getSeriesOption(\"tooltip.enabled\") || false)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"tooltip.enabled\", newValue); });\n this.addWidget(seriesTooltipsToggle);\n };\n SeriesPanel.prototype.initStrokeWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesStrokeWidthSlider = this.createBean(new AgSlider());\n seriesStrokeWidthSlider\n .setLabel(this.translate(\"strokeWidth\"))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesStrokeWidthSlider);\n };\n SeriesPanel.prototype.initLineWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesLineWidthSlider = this.createBean(new AgSlider());\n seriesLineWidthSlider\n .setLabel(this.translate('lineWidth'))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesLineWidthSlider);\n };\n SeriesPanel.prototype.initLineDash = function () {\n var _this = this;\n var lineDash = this.getSeriesOption(\"lineDash\");\n var currentValue = lineDash ? lineDash[0] : 0;\n var seriesLineDashSlider = this.createBean(new AgSlider());\n seriesLineDashSlider\n .setLabel(this.translate('lineDash'))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"lineDash\", [newValue]); });\n this.addWidget(seriesLineDashSlider);\n };\n SeriesPanel.prototype.initLineOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeOpacity\");\n var seriesLineOpacitySlider = this.createBean(new AgSlider());\n seriesLineOpacitySlider\n .setLabel(this.translate(\"strokeOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeOpacity\", newValue); });\n this.addWidget(seriesLineOpacitySlider);\n };\n SeriesPanel.prototype.initFillOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"fillOpacity\");\n var seriesFillOpacitySlider = this.createBean(new AgSlider());\n seriesFillOpacitySlider\n .setLabel(this.translate(\"fillOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"fillOpacity\", newValue); });\n this.addWidget(seriesFillOpacitySlider);\n };\n SeriesPanel.prototype.initLabels = function () {\n var _this = this;\n var params = initFontPanelParams(this.chartTranslationService, this.chartOptionsService, function () { return _this.seriesType; });\n var labelPanelComp = this.createBean(new FontPanel(params));\n if (this.seriesType === 'pie') {\n var calloutPanelComp = this.createBean(new CalloutPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n labelPanelComp.addCompToPanel(calloutPanelComp);\n this.activePanels.push(calloutPanelComp);\n }\n this.addWidget(labelPanelComp);\n };\n SeriesPanel.prototype.initShadow = function () {\n var _this = this;\n var shadowPanelComp = this.createBean(new ShadowPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(shadowPanelComp);\n };\n SeriesPanel.prototype.initMarkers = function () {\n var _this = this;\n var markersPanelComp = this.createBean(new MarkersPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(markersPanelComp);\n };\n SeriesPanel.prototype.initBins = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"bins\").length;\n var seriesBinCountSlider = this.createBean(new AgSlider());\n seriesBinCountSlider\n .setLabel(this.translate(\"histogramBinCount\"))\n .setMinValue(0)\n .setMaxValue(getMaxValue(currentValue, 20))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"binCount\", newValue); });\n this.addWidget(seriesBinCountSlider);\n };\n SeriesPanel.prototype.addWidget = function (widget) {\n this.seriesGroup.addItem(widget);\n this.activePanels.push(widget);\n };\n SeriesPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.seriesType);\n };\n SeriesPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.seriesType);\n };\n SeriesPanel.prototype.getChartSeriesType = function () {\n if (this.chartController.getSeriesChartTypes().length === 0) {\n return 'column';\n }\n var ct = this.chartController.getSeriesChartTypes()[0].chartType;\n return (ct === 'columnLineCombo') ? 'column' : (ct === 'areaColumnCombo') ? 'area' : getSeriesType(ct);\n };\n SeriesPanel.prototype.getSeriesSelectOptions = function () {\n var _this = this;\n if (!this.seriesSelectOptions) {\n // lazy init options as they are only required for combo charts\n this.seriesSelectOptions = new Map([\n ['area', { value: 'area', text: this.translate('area', 'Area') }],\n ['bar', { value: 'bar', text: this.translate('bar', 'Bar') }],\n ['column', { value: 'column', text: this.translate('column', 'Column') }],\n ['line', { value: 'line', text: this.translate('line', 'Line') }],\n ['scatter', { value: 'scatter', text: this.translate('scatter', 'Scatter') }],\n ['histogram', { value: 'histogram', text: this.translate('histogram', 'Histogram') }],\n ['pie', { value: 'pie', text: this.translate('pie', 'Pie') }],\n ]);\n }\n var seriesSelectOptions = new Set();\n this.chartController.getActiveSeriesChartTypes().forEach(function (s) {\n var chartType = getSeriesType(s.chartType);\n seriesSelectOptions.add(_this.seriesSelectOptions.get(chartType));\n });\n return Array.from(seriesSelectOptions);\n };\n SeriesPanel.prototype.updateSeriesType = function () {\n var activeChartTypes = this.chartController.getActiveSeriesChartTypes().map(function (s) { return getSeriesType(s.chartType); });\n var invalidSeriesType = !activeChartTypes.includes(this.seriesType);\n if (invalidSeriesType && activeChartTypes.length > 0) {\n this.seriesType = activeChartTypes[0]; // default to first active series type\n }\n };\n SeriesPanel.prototype.translate = function (key, defaultText) {\n return this.chartTranslationService.translate(key, defaultText);\n };\n SeriesPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n SeriesPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n SeriesPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$S([\n RefSelector('seriesGroup')\n ], SeriesPanel.prototype, \"seriesGroup\", void 0);\n __decorate$S([\n Autowired('chartTranslationService')\n ], SeriesPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$S([\n PostConstruct\n ], SeriesPanel.prototype, \"init\", null);\n return SeriesPanel;\n}(Component));\n\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction getMaxValue(currentValue, defaultMaxValue) {\n return Math.max(currentValue, defaultMaxValue);\n}\nvar DefaultFormatPanelDef = {\n groups: [\n { type: 'chart' },\n { type: 'legend' },\n { type: 'series' },\n { type: 'axis' },\n { type: 'navigator' },\n ]\n};\nvar FormatPanel = /** @class */ (function (_super) {\n __extends$1z(FormatPanel, _super);\n function FormatPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, FormatPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = [];\n _this.isGroupPanelShownInSeries = function (group, seriesType) {\n var commonGroupPanels = ['chart', 'legend', 'series'];\n if (commonGroupPanels.includes(group)) {\n return true;\n }\n var cartesianOnlyGroupPanels = ['axis', 'navigator'];\n var cartesianSeries = ['bar', 'column', 'line', 'area', 'scatter', 'histogram', 'cartesian'];\n return !!(cartesianOnlyGroupPanels.includes(group) && cartesianSeries.includes(seriesType));\n };\n return _this;\n }\n FormatPanel.prototype.init = function () {\n this.createPanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, this.createPanels.bind(this));\n };\n FormatPanel.prototype.createPanels = function () {\n var _this = this;\n var _a;\n var chartType = this.chartController.getChartType();\n var isGrouping = this.chartController.isGrouping();\n var seriesType = getSeriesType(chartType);\n if (chartType === this.chartType && isGrouping === this.isGrouping) {\n // existing panels can be re-used\n return;\n }\n this.destroyPanels();\n (_a = this.getFormatPanelDef().groups) === null || _a === void 0 ? void 0 : _a.forEach(function (groupDef) {\n var group = groupDef.type;\n // ensure the group should be displayed for the current series type\n if (!_this.isGroupPanelShownInSeries(group, seriesType)) {\n return;\n }\n var opts = {\n chartController: _this.chartController,\n chartOptionsService: _this.chartOptionsService,\n isExpandedOnInit: groupDef.isOpen,\n seriesType: seriesType\n };\n if (group === 'chart') {\n _this.addComponent(new ChartPanel(opts));\n }\n else if (group === 'legend') {\n _this.addComponent(new LegendPanel(opts));\n }\n else if (group === 'axis') {\n _this.addComponent(new AxisPanel(opts));\n }\n else if (group === 'series') {\n _this.addComponent(new SeriesPanel(opts));\n }\n else if (group === 'navigator') {\n _this.addComponent(new NavigatorPanel(opts));\n }\n else {\n console.warn(\"AG Grid: invalid charts format panel group name supplied: '\" + groupDef.type + \"'\");\n }\n });\n this.chartType = chartType;\n this.isGrouping = isGrouping;\n };\n FormatPanel.prototype.getFormatPanelDef = function () {\n var _a;\n var userProvidedFormatPanelDef = (_a = this.gridOptionsWrapper.getChartToolPanelsDef()) === null || _a === void 0 ? void 0 : _a.formatPanel;\n return userProvidedFormatPanelDef ? userProvidedFormatPanelDef : DefaultFormatPanelDef;\n };\n FormatPanel.prototype.addComponent = function (component) {\n this.createBean(component);\n this.panels.push(component);\n component.addCssClass('ag-chart-format-section');\n this.getGui().appendChild(component.getGui());\n };\n FormatPanel.prototype.destroyPanels = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n FormatPanel.prototype.destroy = function () {\n this.destroyPanels();\n _super.prototype.destroy.call(this);\n };\n FormatPanel.TEMPLATE = \"
\";\n __decorate$R([\n PostConstruct\n ], FormatPanel.prototype, \"init\", null);\n return FormatPanel;\n}(Component));\n\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChart = /** @class */ (function (_super) {\n __extends$1y(MiniChart, _super);\n function MiniChart(container, tooltipName) {\n var _this = _super.call(this) || this;\n _this.size = 58;\n _this.padding = 5;\n _this.root = new Group$1();\n var scene = new Scene$1({ document: window.document, width: _this.size, height: _this.size });\n scene.canvas.element.classList.add('ag-chart-mini-thumbnail-canvas');\n scene.root = _this.root;\n scene.container = container;\n _this.scene = scene;\n _this.tooltipName = tooltipName;\n return _this;\n }\n MiniChart.prototype.init = function () {\n this.scene.canvas.element.title = this.chartTranslationService.translate(this.tooltipName);\n // necessary to force scene graph render as we are not using the standalone factory!\n this.scene.render();\n };\n __decorate$Q([\n Autowired('chartTranslationService')\n ], MiniChart.prototype, \"chartTranslationService\", void 0);\n __decorate$Q([\n PostConstruct\n ], MiniChart.prototype, \"init\", null);\n return MiniChart;\n}(Component));\n\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChartWithAxes = /** @class */ (function (_super) {\n __extends$1x(MiniChartWithAxes, _super);\n function MiniChartWithAxes(container, tooltipName) {\n var _this = _super.call(this, container, tooltipName) || this;\n _this.stroke = 'gray';\n _this.axisOvershoot = 3;\n return _this;\n }\n MiniChartWithAxes.prototype.addAxes = function () {\n var size = this.size;\n var padding = this.padding;\n var leftAxis = new Line$1();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + this.axisOvershoot;\n leftAxis.stroke = this.stroke;\n var bottomAxis = new Line$1();\n bottomAxis.x1 = padding - this.axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = this.stroke;\n var root = this.root;\n root.append(leftAxis);\n root.append(bottomAxis);\n };\n __decorate$P([\n PostConstruct\n ], MiniChartWithAxes.prototype, \"addAxes\", null);\n return MiniChartWithAxes;\n}(MiniChart));\n\nfunction createColumnRects(params) {\n var stacked = params.stacked, size = params.size, padding = params.padding, xScalePadding = params.xScalePadding, xScaleDomain = params.xScaleDomain, yScaleDomain = params.yScaleDomain;\n var xScale = new BandScale$1();\n xScale.domain = xScaleDomain;\n xScale.range = [padding, size - padding];\n xScale.paddingInner = xScalePadding;\n xScale.paddingOuter = xScalePadding;\n var yScale = new LinearScale$1();\n yScale.domain = yScaleDomain;\n yScale.range = [size - padding, padding];\n var createBars = function (series, xScale, yScale) {\n return series.map(function (datum, i) {\n var top = yScale.convert(datum);\n var rect = new Rect();\n rect.x = xScale.convert(i);\n rect.y = top;\n rect.width = xScale.bandwidth;\n rect.height = yScale.convert(0) - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n };\n if (stacked) {\n return params.data.map(function (d) { return createBars(d, xScale, yScale); });\n }\n return createBars(params.data, xScale, yScale);\n}\nfunction createLinePaths(root, data, size, padding) {\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 10];\n yScale.range = [size - padding, padding];\n var lines = data.map(function (series) {\n var line = new Path$1();\n line.strokeWidth = 3;\n line.lineCap = \"round\";\n line.fill = undefined;\n series.forEach(function (datum, i) {\n line.path[i > 0 ? \"lineTo\" : \"moveTo\"](xScale.convert(i), yScale.convert(datum));\n });\n return line;\n });\n var clipRect = new ClipRect();\n clipRect.x = clipRect.y = padding;\n clipRect.width = clipRect.height = size - padding * 2;\n clipRect.append(lines);\n root.append(clipRect);\n return lines;\n}\n\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumn = /** @class */ (function (_super) {\n __extends$1w(MiniColumn, _super);\n function MiniColumn(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedColumnTooltip\") || this;\n _this.columnData = [2, 3, 4];\n var _a = _this, root = _a.root, columnData = _a.columnData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: [0, 4],\n xScalePadding: 0.3\n });\n root.append(_this.columns);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumn.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (column, i) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n };\n MiniColumn.chartType = 'groupedColumn';\n return MiniColumn;\n}(MiniChartWithAxes));\n\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedColumn = /** @class */ (function (_super) {\n __extends$1v(MiniStackedColumn, _super);\n function MiniStackedColumn(container, fills, strokes, data, yScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedColumn.data; }\n if (yScaleDomain === void 0) { yScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedColumnTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var _a = _this, root = _a.root, size = _a.size, padding = _a.padding;\n _this.stackedColumns = createColumnRects({\n stacked: true,\n root: root,\n data: data,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: yScaleDomain,\n xScalePadding: 0.3,\n });\n root.append([].concat.apply([], _this.stackedColumns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniStackedColumn.prototype.updateColors = function (fills, strokes) {\n this.stackedColumns.forEach(function (series, i) {\n return series.forEach(function (column) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n });\n };\n MiniStackedColumn.chartType = 'stackedColumn';\n MiniStackedColumn.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedColumn;\n}(MiniChartWithAxes));\n\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedColumn = /** @class */ (function (_super) {\n __extends$1u(MiniNormalizedColumn, _super);\n function MiniNormalizedColumn(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedColumn.data, [0, 10], \"normalizedColumnTooltip\") || this;\n }\n MiniNormalizedColumn.chartType = 'normalizedColumn';\n MiniNormalizedColumn.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedColumn;\n}(MiniStackedColumn));\n\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniBar = /** @class */ (function (_super) {\n __extends$1t(MiniBar, _super);\n function MiniBar(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedBarTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n var data = [2, 3, 4];\n var yScale = new BandScale$1();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n };\n MiniBar.chartType = 'groupedBar';\n return MiniBar;\n}(MiniChartWithAxes));\n\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedBar = /** @class */ (function (_super) {\n __extends$1s(MiniStackedBar, _super);\n function MiniStackedBar(container, fills, strokes, data, xScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedBar.data; }\n if (xScaleDomain === void 0) { xScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedBarTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var yScale = new BandScale$1();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = xScaleDomain;\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (series) {\n return series.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n });\n _this.updateColors(fills, strokes);\n _this.root.append([].concat.apply([], _this.bars));\n return _this;\n }\n MiniStackedBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (series, i) {\n return series.forEach(function (bar) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n });\n };\n MiniStackedBar.chartType = 'stackedBar';\n MiniStackedBar.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedBar;\n}(MiniChartWithAxes));\n\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedBar = /** @class */ (function (_super) {\n __extends$1r(MiniNormalizedBar, _super);\n function MiniNormalizedBar(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedBar.data, [0, 10], \"normalizedBarTooltip\") || this;\n }\n MiniNormalizedBar.chartType = 'normalizedBar';\n MiniNormalizedBar.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedBar;\n}(MiniStackedBar));\n\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniDoughnut = /** @class */ (function (_super) {\n __extends$1q(MiniDoughnut, _super);\n function MiniDoughnut(container, fills, strokes, centerRadiusScaler, tooltipName) {\n if (centerRadiusScaler === void 0) { centerRadiusScaler = 0.6; }\n if (tooltipName === void 0) { tooltipName = \"doughnutTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var radius = (_this.size - _this.padding * 2) / 2;\n var center = radius + _this.padding;\n var angles = [\n [toRadians(-90), toRadians(30)],\n [toRadians(30), toRadians(120)],\n [toRadians(120), toRadians(180)],\n [toRadians(180), toRadians(210)],\n [toRadians(210), toRadians(240)],\n [toRadians(240), toRadians(270)]\n ];\n _this.sectors = angles.map(function (_a) {\n var _b = __read$f(_a, 2), startAngle = _b[0], endAngle = _b[1];\n var sector = new Sector();\n sector.centerX = center;\n sector.centerY = center;\n sector.innerRadius = radius * centerRadiusScaler;\n sector.outerRadius = radius;\n sector.startAngle = startAngle;\n sector.endAngle = endAngle;\n sector.stroke = undefined;\n sector.strokeWidth = 1;\n return sector;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.sectors);\n return _this;\n }\n MiniDoughnut.prototype.updateColors = function (fills, strokes) {\n this.sectors.forEach(function (sector, i) {\n sector.fill = fills[i % fills.length];\n sector.stroke = strokes[i % strokes.length];\n });\n };\n MiniDoughnut.chartType = 'doughnut';\n return MiniDoughnut;\n}(MiniChart));\n\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniPie = /** @class */ (function (_super) {\n __extends$1p(MiniPie, _super);\n function MiniPie(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, 0, \"pieTooltip\") || this;\n }\n MiniPie.chartType = 'pie';\n return MiniPie;\n}(MiniDoughnut));\n\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniLine = /** @class */ (function (_super) {\n __extends$1o(MiniLine, _super);\n function MiniLine(container, fills, strokes) {\n var _this = _super.call(this, container, \"lineTooltip\") || this;\n _this.data = [\n [9, 7, 8, 5, 6],\n [5, 6, 3, 4, 1],\n [1, 3, 4, 8, 7]\n ];\n _this.lines = createLinePaths(_this.root, _this.data, _this.size, _this.padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniLine.prototype.updateColors = function (fills, strokes) {\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i];\n });\n };\n MiniLine.chartType = 'line';\n return MiniLine;\n}(MiniChartWithAxes));\n\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniScatter = /** @class */ (function (_super) {\n __extends$1n(MiniScatter, _super);\n function MiniScatter(container, fills, strokes) {\n var _this = _super.call(this, container, \"scatterTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y] pairs\n var data = [\n [[0.3, 3], [1.1, 0.9], [2, 0.4], [3.4, 2.4]],\n [[0, 0.3], [1, 2], [2.4, 1.4], [3, 0]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [-0.5, 4];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [-0.5, 3.5];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$e(_a, 2), x = _b[0], y = _b[1];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radiusX = arc.radiusY = 2.5;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var clipRect = new ClipRect();\n clipRect.x = clipRect.y = padding;\n clipRect.width = clipRect.height = size - padding * 2;\n clipRect.append(_this.points);\n _this.root.append(clipRect);\n return _this;\n }\n MiniScatter.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniScatter.chartType = 'scatter';\n return MiniScatter;\n}(MiniChartWithAxes));\n\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniBubble = /** @class */ (function (_super) {\n __extends$1m(MiniBubble, _super);\n function MiniBubble(container, fills, strokes) {\n var _this = _super.call(this, container, \"bubbleTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y, radius] triples\n var data = [\n [[0.1, 0.3, 5], [0.5, 0.4, 7], [0.2, 0.8, 7]], [[0.8, 0.7, 5], [0.7, 0.3, 9]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [0, 1];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 1];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$d(_a, 3), x = _b[0], y = _b[1], radius = _b[2];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radiusX = arc.radiusY = radius;\n arc.fillOpacity = 0.7;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var clipRect = new ClipRect();\n clipRect.x = padding;\n clipRect.y = padding;\n clipRect.width = size - padding * 2;\n clipRect.height = size - padding * 2;\n clipRect.append(_this.points);\n _this.root.append(clipRect);\n return _this;\n }\n MiniBubble.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniBubble.chartType = 'bubble';\n return MiniBubble;\n}(MiniChartWithAxes));\n\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniArea = /** @class */ (function (_super) {\n __extends$1l(MiniArea, _super);\n function MiniArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniArea.data; }\n var _this = _super.call(this, container, \"groupedAreaTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$1();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 6];\n yScale.range = [size - padding + 0.5, padding];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n var bottomY = yScale.convert(0);\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: bottomY\n };\n });\n });\n _this.areas = pathData.reverse().map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n area.fillOpacity = 0.7;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniArea.chartType = 'area';\n MiniArea.data = [\n [1, 3, 5],\n [2, 6, 4],\n [5, 3, 1]\n ];\n return MiniArea;\n}(MiniChartWithAxes));\n\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedArea = /** @class */ (function (_super) {\n __extends$1k(MiniStackedArea, _super);\n function MiniStackedArea(container, fills, strokes, data, tooltipName) {\n if (data === void 0) { data = MiniStackedArea.data; }\n if (tooltipName === void 0) { tooltipName = \"stackedAreaTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$1();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 16];\n yScale.range = [size - padding + 0.5, padding + 0.5];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n var total = 0;\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(total + yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: yScale.convert(total) // bottom y\n };\n total += yDatum;\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniStackedArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniStackedArea.chartType = 'stackedArea';\n MiniStackedArea.data = [\n [2, 3, 2],\n [3, 6, 5],\n [6, 2, 2]\n ];\n return MiniStackedArea;\n}(MiniChartWithAxes));\n\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedArea = /** @class */ (function (_super) {\n __extends$1j(MiniNormalizedArea, _super);\n function MiniNormalizedArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniNormalizedArea.data; }\n return _super.call(this, container, fills, strokes, data, \"normalizedAreaTooltip\") || this;\n }\n MiniNormalizedArea.chartType = 'normalizedArea';\n MiniNormalizedArea.data = MiniStackedArea.data.map(function (stack) {\n var sum = stack.reduce(function (p, c) { return p + c; }, 0);\n return stack.map(function (v) { return v / sum * 16; });\n });\n return MiniNormalizedArea;\n}(MiniStackedArea));\n\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniHistogram = /** @class */ (function (_super) {\n __extends$1i(MiniHistogram, _super);\n function MiniHistogram(container, fills, strokes) {\n var _this = _super.call(this, container, \"histogramTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n // approx normal curve\n var data = [2, 5, 11, 13, 10, 6, 1];\n var xScale = new LinearScale$1();\n xScale.domain = [0, data.length];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, data.reduce(function (a, b) { return Math.max(a, b); }, 0)];\n yScale.range = [size - padding, padding];\n var bottom = yScale.convert(0);\n _this.bars = data.map(function (datum, i) {\n var top = yScale.convert(datum);\n var left = xScale.convert(i);\n var right = xScale.convert(i + 1);\n var rect = new Rect();\n rect.x = left;\n rect.y = top;\n rect.width = right - left;\n rect.height = bottom - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniHistogram.prototype.updateColors = function (_a, _b) {\n var _c = __read$c(_a, 1), fill = _c[0];\n var _d = __read$c(_b, 1), stroke = _d[0];\n this.bars.forEach(function (bar) {\n bar.fill = fill;\n bar.stroke = stroke;\n });\n };\n MiniHistogram.chartType = 'histogram';\n return MiniHistogram;\n}(MiniChartWithAxes));\n\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumnLineCombo = /** @class */ (function (_super) {\n __extends$1h(MiniColumnLineCombo, _super);\n function MiniColumnLineCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"columnLineComboTooltip\") || this;\n _this.columnData = [3, 4];\n _this.lineData = [\n [5, 4, 6, 5, 4]\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumnLineCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniColumnLineCombo.chartType = 'columnLineCombo';\n return MiniColumnLineCombo;\n}(MiniChartWithAxes));\n\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniAreaColumnCombo = /** @class */ (function (_super) {\n __extends$1g(MiniAreaColumnCombo, _super);\n function MiniAreaColumnCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"areaColumnComboTooltip\") || this;\n _this.columnData = [3, 4.5];\n _this.areaData = [\n [5, 4, 6, 5, 4],\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, areaData = _a.areaData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 6],\n xScalePadding: 0.5,\n });\n // scale for area series\n var xScale = new BandScale$1();\n xScale.range = [padding, size - padding];\n xScale.domain = [0, 1, 2, 3, 4];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n var yScale = new LinearScale$1();\n yScale.range = [size - padding, padding];\n yScale.domain = [0, 6];\n var pathData = [];\n var yZero = yScale.convert(0);\n var firstX = xScale.convert(0);\n areaData.forEach(function (series, i) {\n var points = pathData[i] || (pathData[i] = []);\n series.forEach(function (data, j) {\n var yDatum = data;\n var xDatum = j;\n var x = xScale.convert(xDatum);\n var y = yScale.convert(yDatum);\n points[j] = { x: x, y: y };\n });\n var lastX = xScale.convert(series.length - 1);\n pathData[i].push({\n x: lastX,\n y: yZero\n }, {\n x: firstX,\n y: yZero\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n area.fillOpacity = 0.8;\n var path = area.path;\n points.forEach(function (point, i) { return path[i > 0 ? 'lineTo' : 'moveTo'](point.x, point.y); });\n return area;\n });\n root.append(_this.areas);\n root.append([].concat.apply([], _this.columns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniAreaColumnCombo.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i + 1];\n bar.stroke = strokes[i + 1];\n });\n };\n MiniAreaColumnCombo.chartType = 'areaColumnCombo';\n return MiniAreaColumnCombo;\n}(MiniChartWithAxes));\n\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniCustomCombo = /** @class */ (function (_super) {\n __extends$1f(MiniCustomCombo, _super);\n function MiniCustomCombo(container, fills, strokes) {\n var _this = _super.call(this, container, 'customComboTooltip') || this;\n _this.columnData = [3, 4];\n _this.lineData = [[5, 4, 6, 5, 4]];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5,\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n var axisStroke = 'grey';\n var axisOvershoot = 3;\n var leftAxis = new Line$1();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + axisOvershoot;\n leftAxis.stroke = axisStroke;\n var bottomAxis = new Line$1();\n bottomAxis.x1 = padding - axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = axisStroke;\n var penIcon = new Path$1();\n _this.buildPenIconPath(penIcon);\n penIcon.fill = 'whitesmoke';\n penIcon.stroke = 'darkslategrey';\n penIcon.strokeWidth = 1;\n root.append([bottomAxis, leftAxis, penIcon]);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniCustomCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniCustomCombo.prototype.buildPenIconPath = function (penIcon) {\n var path = penIcon.path;\n path.moveTo(25.76, 43.46);\n path.lineTo(31.27, 48.53);\n path.moveTo(49.86, 22);\n path.lineTo(49.86, 22);\n path.cubicCurveTo(49.01994659053345, 21.317514933510974, 47.89593834348529, 21.09645997825817, 46.86, 21.41);\n path.lineTo(46.86, 21.41);\n path.cubicCurveTo(45.55460035985361, 21.77260167850787, 44.38777081121966, 22.517979360321792, 43.51, 23.55);\n path.lineTo(25.51, 43.8);\n path.lineTo(25.43, 43.89);\n path.lineTo(23.01, 51.89);\n path.lineTo(22.83, 52.46);\n path.lineTo(31.02, 48.86);\n path.lineTo(49.02, 28.52);\n path.lineTo(49.02, 28.52);\n path.cubicCurveTo(49.940716461596224, 27.521914221246085, 50.54302631059587, 26.2720342455763, 50.75, 24.93);\n path.lineTo(50.75, 24.93);\n path.cubicCurveTo(50.95363374988308, 23.866379846512814, 50.62080640232334, 22.77066734274871, 49.86, 22.0);\n path.closePath();\n path.moveTo(41.76, 25.5);\n path.lineTo(47.34, 30.5);\n path.moveTo(40.74, 26.65);\n path.lineTo(46.25, 31.71);\n };\n MiniCustomCombo.chartType = 'customCombo';\n return MiniCustomCombo;\n}(MiniChart));\n\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$k = (undefined && undefined.__assign) || function () {\n __assign$k = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$k.apply(this, arguments);\n};\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar miniChartMapping = {\n columnGroup: {\n column: MiniColumn,\n stackedColumn: MiniStackedColumn,\n normalizedColumn: MiniNormalizedColumn\n },\n barGroup: {\n bar: MiniBar,\n stackedBar: MiniStackedBar,\n normalizedBar: MiniNormalizedBar\n },\n pieGroup: {\n pie: MiniPie,\n doughnut: MiniDoughnut\n },\n lineGroup: {\n line: MiniLine\n },\n scatterGroup: {\n scatter: MiniScatter,\n bubble: MiniBubble\n },\n areaGroup: {\n area: MiniArea,\n stackedArea: MiniStackedArea,\n normalizedArea: MiniNormalizedArea\n },\n histogramGroup: {\n histogram: MiniHistogram\n },\n combinationGroup: {\n columnLineCombo: MiniColumnLineCombo,\n areaColumnCombo: MiniAreaColumnCombo,\n customCombo: MiniCustomCombo\n }\n};\nvar MiniChartsContainer = /** @class */ (function (_super) {\n __extends$1e(MiniChartsContainer, _super);\n function MiniChartsContainer(chartController, fills, strokes, chartGroups) {\n if (chartGroups === void 0) { chartGroups = DEFAULT_CHART_GROUPS; }\n var _this = _super.call(this, MiniChartsContainer.TEMPLATE) || this;\n _this.wrappers = {};\n _this.chartController = chartController;\n _this.fills = fills;\n _this.strokes = strokes;\n _this.chartGroups = __assign$k({}, chartGroups);\n return _this;\n }\n MiniChartsContainer.prototype.init = function () {\n var _this = this;\n // hide MiniCustomCombo if no custom combo exists\n if (!this.chartController.customComboExists() && this.chartGroups.combinationGroup) {\n this.chartGroups.combinationGroup = this.chartGroups.combinationGroup.filter(function (chartType) { return chartType !== 'customCombo'; });\n }\n var eGui = this.getGui();\n Object.keys(this.chartGroups).forEach(function (group) {\n var chartGroupValues = _this.chartGroups[group];\n var groupComponent = _this.createBean(new AgGroupComponent({\n title: _this.chartTranslationService.translate(group),\n suppressEnabledCheckbox: true,\n enabled: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-settings',\n direction: 'horizontal'\n }));\n chartGroupValues.forEach(function (chartType) {\n var MiniClass = miniChartMapping[group][chartType];\n if (!MiniClass) {\n console.warn(\"AG Grid - invalid chart type '\" + chartType + \"' in group '\" + group + \"'\");\n return;\n }\n var miniWrapper = document.createElement('div');\n miniWrapper.classList.add('ag-chart-mini-thumbnail');\n var miniClassChartType = MiniClass.chartType;\n _this.addManagedListener(miniWrapper, 'click', function () {\n _this.chartController.setChartType(miniClassChartType);\n _this.updateSelectedMiniChart();\n });\n _this.wrappers[miniClassChartType] = miniWrapper;\n _this.createBean(new MiniClass(miniWrapper, _this.fills, _this.strokes));\n groupComponent.addItem(miniWrapper);\n });\n eGui.appendChild(groupComponent.getGui());\n });\n this.updateSelectedMiniChart();\n };\n MiniChartsContainer.prototype.updateSelectedMiniChart = function () {\n var selectedChartType = this.chartController.getChartType();\n for (var miniChartType in this.wrappers) {\n var miniChart = this.wrappers[miniChartType];\n var selected = miniChartType === selectedChartType;\n miniChart.classList.toggle('ag-selected', selected);\n }\n };\n MiniChartsContainer.TEMPLATE = \"
\";\n __decorate$O([\n Autowired('chartTranslationService')\n ], MiniChartsContainer.prototype, \"chartTranslationService\", void 0);\n __decorate$O([\n PostConstruct\n ], MiniChartsContainer.prototype, \"init\", null);\n return MiniChartsContainer;\n}(Component));\n\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartSettingsPanel = /** @class */ (function (_super) {\n __extends$1d(ChartSettingsPanel, _super);\n function ChartSettingsPanel(chartController) {\n var _this = _super.call(this, ChartSettingsPanel.TEMPLATE) || this;\n _this.miniCharts = [];\n _this.cardItems = [];\n _this.activePaletteIndex = 0;\n _this.palettes = [];\n _this.themes = [];\n _this.chartController = chartController;\n return _this;\n }\n ChartSettingsPanel.prototype.postConstruct = function () {\n var _this = this;\n this.resetPalettes();\n this.ePrevBtn.insertAdjacentElement('afterbegin', _.createIconNoSpan('previous', this.gridOptionsWrapper));\n this.eNextBtn.insertAdjacentElement('afterbegin', _.createIconNoSpan('next', this.gridOptionsWrapper));\n this.addManagedListener(this.ePrevBtn, 'click', function () { return _this.setActivePalette(_this.getPrev(), 'left'); });\n this.addManagedListener(this.eNextBtn, 'click', function () { return _this.setActivePalette(_this.getNext(), 'right'); });\n // change the selected chart when a combo chart is modified via the data panel, i.e. the custom combo should be selected\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_TYPE_CHANGED, function () { return _this.resetPalettes(true); });\n this.scrollSelectedIntoView();\n };\n ChartSettingsPanel.prototype.scrollSelectedIntoView = function () {\n var _this = this;\n // the panel is not immediately visible due to the slide animation, so we add a\n // setTimeout to wait until the panel animation is over and is able to scroll\n setTimeout(function () {\n var currentPallet = _this.miniCharts.find(function (pallet) { return !pallet.getGui().classList.contains('ag-hidden'); });\n var currentChart = currentPallet.getGui().querySelector('.ag-selected');\n if (currentChart) {\n currentChart.scrollIntoView({ block: 'nearest' });\n }\n }, 250);\n };\n ChartSettingsPanel.prototype.resetPalettes = function (forceReset) {\n var _this = this;\n var _a, _b;\n var palettes = this.chartController.getPalettes();\n var chartGroups = (_b = (_a = this.gridOptionsWrapper.getChartToolPanelsDef()) === null || _a === void 0 ? void 0 : _a.settingsPanel) === null || _b === void 0 ? void 0 : _b.chartGroupsDef;\n if ((_.shallowCompare(palettes, this.palettes) && !forceReset) || this.isAnimating) {\n return;\n }\n this.palettes = palettes;\n this.themes = this.chartController.getThemes();\n this.activePaletteIndex = this.themes.findIndex(function (name) { return name === _this.chartController.getChartThemeName(); });\n this.cardItems = [];\n _.clearElement(this.eCardSelector);\n this.destroyMiniCharts();\n this.palettes.forEach(function (palette, index) {\n var isActivePalette = _this.activePaletteIndex === index;\n var fills = palette.fills, strokes = palette.strokes;\n var miniChartsContainer = _this.createBean(new MiniChartsContainer(_this.chartController, fills, strokes, chartGroups));\n _this.miniCharts.push(miniChartsContainer);\n _this.eMiniChartsContainer.appendChild(miniChartsContainer.getGui());\n _this.addCardLink(index);\n if (isActivePalette) {\n miniChartsContainer.updateSelectedMiniChart();\n }\n else {\n miniChartsContainer.addCssClass('ag-hidden');\n }\n });\n this.eNavBar.classList.toggle('ag-hidden', this.palettes.length <= 1);\n _.radioCssClass(this.cardItems[this.activePaletteIndex], 'ag-selected', 'ag-not-selected');\n };\n ChartSettingsPanel.prototype.addCardLink = function (index) {\n var _this = this;\n var link = document.createElement('div');\n link.classList.add('ag-chart-settings-card-item');\n this.addManagedListener(link, 'click', function () {\n _this.setActivePalette(index, index < _this.activePaletteIndex ? 'left' : 'right');\n });\n this.eCardSelector.appendChild(link);\n this.cardItems.push(link);\n };\n ChartSettingsPanel.prototype.getPrev = function () {\n var prev = this.activePaletteIndex - 1;\n if (prev < 0) {\n prev = this.palettes.length - 1;\n }\n return prev;\n };\n ChartSettingsPanel.prototype.getNext = function () {\n var next = this.activePaletteIndex + 1;\n if (next >= this.palettes.length) {\n next = 0;\n }\n return next;\n };\n ChartSettingsPanel.prototype.setActivePalette = function (index, animationDirection) {\n var _this = this;\n if (this.isAnimating || this.activePaletteIndex === index) {\n return;\n }\n _.radioCssClass(this.cardItems[index], 'ag-selected', 'ag-not-selected');\n var currentPalette = this.miniCharts[this.activePaletteIndex];\n var currentGui = currentPalette.getGui();\n var futurePalette = this.miniCharts[index];\n var nextGui = futurePalette.getGui();\n currentPalette.updateSelectedMiniChart();\n futurePalette.updateSelectedMiniChart();\n var multiplier = animationDirection === 'left' ? -1 : 1;\n var final = nextGui.style.left = (_.getAbsoluteWidth(this.getGui()) * multiplier) + \"px\";\n this.activePaletteIndex = index;\n this.isAnimating = true;\n var animatingClass = 'ag-animating';\n futurePalette.removeCssClass('ag-hidden');\n currentPalette.addCssClass(animatingClass);\n futurePalette.addCssClass(animatingClass);\n this.chartController.setChartThemeName(this.themes[index]);\n window.setTimeout(function () {\n currentGui.style.left = -parseFloat(final) + \"px\";\n nextGui.style.left = '0px';\n }, 0);\n window.setTimeout(function () {\n _this.isAnimating = false;\n currentPalette.removeCssClass(animatingClass);\n futurePalette.removeCssClass(animatingClass);\n currentPalette.addCssClass('ag-hidden');\n }, 300);\n };\n ChartSettingsPanel.prototype.destroyMiniCharts = function () {\n _.clearElement(this.eMiniChartsContainer);\n this.miniCharts = this.destroyBeans(this.miniCharts);\n };\n ChartSettingsPanel.prototype.destroy = function () {\n this.destroyMiniCharts();\n _super.prototype.destroy.call(this);\n };\n ChartSettingsPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\";\n __decorate$N([\n Autowired('resizeObserverService')\n ], ChartSettingsPanel.prototype, \"resizeObserverService\", void 0);\n __decorate$N([\n RefSelector('eMiniChartsContainer')\n ], ChartSettingsPanel.prototype, \"eMiniChartsContainer\", void 0);\n __decorate$N([\n RefSelector('eNavBar')\n ], ChartSettingsPanel.prototype, \"eNavBar\", void 0);\n __decorate$N([\n RefSelector('eCardSelector')\n ], ChartSettingsPanel.prototype, \"eCardSelector\", void 0);\n __decorate$N([\n RefSelector('ePrevBtn')\n ], ChartSettingsPanel.prototype, \"ePrevBtn\", void 0);\n __decorate$N([\n RefSelector('eNextBtn')\n ], ChartSettingsPanel.prototype, \"eNextBtn\", void 0);\n __decorate$N([\n PostConstruct\n ], ChartSettingsPanel.prototype, \"postConstruct\", null);\n return ChartSettingsPanel;\n}(Component));\n\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedChartMenu = /** @class */ (function (_super) {\n __extends$1c(TabbedChartMenu, _super);\n function TabbedChartMenu(params) {\n var _this = _super.call(this) || this;\n _this.tabs = [];\n var controller = params.controller, panels = params.panels, chartOptionsService = params.chartOptionsService;\n _this.chartController = controller;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = panels;\n return _this;\n }\n TabbedChartMenu.prototype.init = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n var panelType = panel.replace('chart', '').toLowerCase();\n var _a = _this.createTab(panel, panelType, _this.getPanelClass(panelType)), comp = _a.comp, tab = _a.tab;\n _this.tabs.push(tab);\n _this.addDestroyFunc(function () { return _this.destroyBean(comp); });\n });\n this.tabbedLayout = new TabbedLayout({\n items: this.tabs,\n cssClass: 'ag-chart-tabbed-menu',\n keepScrollPosition: true\n });\n this.getContext().createBean(this.tabbedLayout);\n };\n TabbedChartMenu.prototype.createTab = function (name, title, TabPanelClass) {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-chart-tab', \"ag-chart-\" + title);\n var comp = new TabPanelClass(this.chartController, this.chartOptionsService);\n this.getContext().createBean(comp);\n eWrapperDiv.appendChild(comp.getGui());\n var titleEl = document.createElement('div');\n var translatedTitle = this.chartTranslationService.translate(title);\n titleEl.innerText = translatedTitle;\n return {\n comp: comp,\n tab: {\n title: titleEl,\n titleLabel: translatedTitle,\n bodyPromise: AgPromise.resolve(eWrapperDiv),\n getScrollableContainer: function () {\n var scrollableContainer = eWrapperDiv.querySelector('.ag-scrollable-container');\n return (scrollableContainer || eWrapperDiv);\n },\n name: name\n }\n };\n };\n TabbedChartMenu.prototype.showTab = function (tab) {\n var tabItem = this.tabs[tab];\n this.tabbedLayout.showItem(tabItem);\n };\n TabbedChartMenu.prototype.getGui = function () {\n return this.tabbedLayout && this.tabbedLayout.getGui();\n };\n TabbedChartMenu.prototype.destroy = function () {\n if (this.parentComponent && this.parentComponent.isAlive()) {\n this.destroyBean(this.parentComponent);\n }\n _super.prototype.destroy.call(this);\n };\n TabbedChartMenu.prototype.getPanelClass = function (panelType) {\n switch (panelType) {\n case TabbedChartMenu.TAB_DATA:\n return ChartDataPanel;\n case TabbedChartMenu.TAB_FORMAT:\n return FormatPanel;\n default:\n return ChartSettingsPanel;\n }\n };\n TabbedChartMenu.TAB_DATA = 'data';\n TabbedChartMenu.TAB_FORMAT = 'format';\n __decorate$M([\n Autowired('chartTranslationService')\n ], TabbedChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$M([\n PostConstruct\n ], TabbedChartMenu.prototype, \"init\", null);\n return TabbedChartMenu;\n}(Component));\n\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$4 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$b(arguments[i]));\n return ar;\n};\nvar ChartMenu = /** @class */ (function (_super) {\n __extends$1b(ChartMenu, _super);\n function ChartMenu(eChartContainer, eMenuPanelContainer, chartController, chartOptionsService) {\n var _this = _super.call(this, ChartMenu.TEMPLATE) || this;\n _this.eChartContainer = eChartContainer;\n _this.eMenuPanelContainer = eMenuPanelContainer;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.buttons = {\n chartSettings: ['menu', function () { return _this.showMenu(_this.defaultPanel); }],\n chartData: ['menu', function () { return _this.showMenu(\"chartData\"); }],\n chartFormat: ['menu', function () { return _this.showMenu(\"chartFormat\"); }],\n chartLink: ['linked', function (e) { return _this.toggleDetached(e); }],\n chartUnlink: ['unlinked', function (e) { return _this.toggleDetached(e); }],\n chartDownload: ['save', function () { return _this.saveChart(); }]\n };\n _this.panels = [];\n _this.menuVisible = false;\n return _this;\n }\n ChartMenu.prototype.postConstruct = function () {\n var _this = this;\n this.createButtons();\n this.addManagedListener(this.eventService, Events.EVENT_CHART_CREATED, function (e) {\n var _a;\n if (e.chartId === _this.chartController.getChartId()) {\n var showDefaultToolPanel = Boolean((_a = _this.gridOptionsWrapper.getChartToolPanelsDef()) === null || _a === void 0 ? void 0 : _a.defaultToolPanel);\n if (showDefaultToolPanel) {\n _this.showMenu(_this.defaultPanel, false);\n }\n }\n });\n this.refreshMenuClasses();\n if (this.gridOptionsWrapper.isEnableChartToolPanelsButton()) {\n this.getGui().classList.add('ag-chart-tool-panel-button-enable');\n this.addManagedListener(this.eHideButton, 'click', this.toggleMenu.bind(this));\n }\n };\n ChartMenu.prototype.isVisible = function () {\n return this.menuVisible;\n };\n ChartMenu.prototype.getToolbarOptions = function () {\n var _this = this;\n var _a, _b, _c;\n var useChartToolPanelCustomisation = Boolean(this.gridOptionsWrapper.getChartToolPanelsDef());\n if (useChartToolPanelCustomisation) {\n var defaultChartToolbarOptions = [\n this.chartController.isChartLinked() ? 'chartLink' : 'chartUnlink',\n 'chartDownload'\n ];\n var toolbarItemsFunc = this.gridOptionsWrapper.getChartToolbarItemsFunc();\n var params = {\n defaultItems: defaultChartToolbarOptions\n };\n var chartToolbarOptions = toolbarItemsFunc\n ? toolbarItemsFunc(params).filter(function (option) {\n if (!CHART_TOOLBAR_ALLOW_LIST.includes(option)) {\n var msg = CHART_TOOL_PANEL_ALLOW_LIST.includes(option)\n ? \"AG Grid: '\" + option + \"' is a Chart Tool Panel option and will be ignored since 'chartToolPanelsDef' is used. Please use 'chartToolPanelsDef.panels' grid option instead\"\n : \"AG Grid: '\" + option + \"' is not a valid Chart Toolbar Option\";\n console.warn(msg);\n return false;\n }\n return true;\n })\n : defaultChartToolbarOptions;\n var panelsOverride = (_b = (_a = this.gridOptionsWrapper.getChartToolPanelsDef()) === null || _a === void 0 ? void 0 : _a.panels) === null || _b === void 0 ? void 0 : _b.map(function (panel) {\n var menuOption = CHART_TOOL_PANEL_MENU_OPTIONS[panel];\n if (!menuOption) {\n console.warn(\"AG Grid - invalid panel in chartToolPanelsDef.panels: '\" + panel + \"'\");\n }\n return menuOption;\n }).filter(function (panel) { return Boolean(panel); });\n this.panels = panelsOverride\n ? panelsOverride\n : Object.values(CHART_TOOL_PANEL_MENU_OPTIONS);\n // pivot charts use the column tool panel instead of the data panel\n if (this.chartController.isPivotChart()) {\n this.panels = this.panels.filter(function (panel) { return panel !== 'chartData'; });\n }\n var defaultToolPanel = (_c = this.gridOptionsWrapper.getChartToolPanelsDef()) === null || _c === void 0 ? void 0 : _c.defaultToolPanel;\n this.defaultPanel = (defaultToolPanel && CHART_TOOL_PANEL_MENU_OPTIONS[defaultToolPanel]) || this.panels[0];\n return this.panels.length > 0\n // Only one panel is required to display menu icon in toolbar\n ? __spread$4([this.panels[0]], chartToolbarOptions) : chartToolbarOptions;\n }\n else { // To be deprecated in future. Toolbar options will be different to chart tool panels.\n var tabOptions = [\n 'chartSettings',\n 'chartData',\n 'chartFormat',\n this.chartController.isChartLinked() ? 'chartLink' : 'chartUnlink',\n 'chartDownload'\n ];\n var toolbarItemsFunc = this.gridOptionsWrapper.getChartToolbarItemsFunc();\n if (toolbarItemsFunc) {\n var params = {\n defaultItems: tabOptions\n };\n tabOptions = toolbarItemsFunc(params).filter(function (option) {\n if (!_this.buttons[option]) {\n console.warn(\"AG Grid: '\" + option + \"' is not a valid Chart Toolbar Option\");\n return false;\n }\n return true;\n });\n }\n // pivot charts use the column tool panel instead of the data panel\n if (this.chartController.isPivotChart()) {\n tabOptions = tabOptions.filter(function (option) { return option !== 'chartData'; });\n }\n var ignoreOptions_1 = ['chartUnlink', 'chartLink', 'chartDownload'];\n this.panels = tabOptions.filter(function (option) { return ignoreOptions_1.indexOf(option) === -1; });\n this.defaultPanel = this.panels[0];\n return tabOptions.filter(function (value) {\n return ignoreOptions_1.indexOf(value) !== -1 ||\n (_this.panels.length && value === _this.panels[0]);\n });\n }\n };\n ChartMenu.prototype.toggleDetached = function (e) {\n var target = e.target;\n var active = target.classList.contains('ag-icon-linked');\n target.classList.toggle('ag-icon-linked', !active);\n target.classList.toggle('ag-icon-unlinked', active);\n var tooltipKey = active ? 'chartUnlinkToolbarTooltip' : 'chartLinkToolbarTooltip';\n var tooltipTitle = this.chartTranslationService.translate(tooltipKey);\n if (tooltipTitle) {\n target.title = tooltipTitle;\n }\n this.chartController.detachChartRange();\n };\n ChartMenu.prototype.createButtons = function () {\n var _this = this;\n var chartToolbarOptions = this.getToolbarOptions();\n var menuEl = this.eMenu;\n chartToolbarOptions.forEach(function (button) {\n var buttonConfig = _this.buttons[button];\n var _a = __read$b(buttonConfig, 2), iconName = _a[0], callback = _a[1];\n var buttonEl = _.createIconNoSpan(iconName, _this.gridOptionsWrapper, undefined, true);\n buttonEl.classList.add('ag-chart-menu-icon');\n var tooltipTitle = _this.chartTranslationService.translate(button + 'ToolbarTooltip');\n if (tooltipTitle) {\n buttonEl.title = tooltipTitle;\n }\n _this.addManagedListener(buttonEl, 'click', callback);\n menuEl.appendChild(buttonEl);\n });\n };\n ChartMenu.prototype.saveChart = function () {\n var event = { type: ChartMenu.EVENT_DOWNLOAD_CHART };\n this.dispatchEvent(event);\n };\n ChartMenu.prototype.createMenuPanel = function (defaultTab) {\n var _this = this;\n var width = this.gridOptionsWrapper.chartMenuPanelWidth();\n var menuPanel = this.menuPanel = this.createBean(new AgPanel({\n minWidth: width,\n width: width,\n height: '100%',\n closable: true,\n hideTitleBar: true,\n cssIdentifier: 'chart-menu'\n }));\n menuPanel.setParentComponent(this);\n this.eMenuPanelContainer.appendChild(menuPanel.getGui());\n this.tabbedMenu = this.createBean(new TabbedChartMenu({\n controller: this.chartController,\n type: this.chartController.getChartType(),\n panels: this.panels,\n chartOptionsService: this.chartOptionsService\n }));\n this.addManagedListener(menuPanel, Component.EVENT_DESTROYED, function () { return _this.destroyBean(_this.tabbedMenu); });\n return new AgPromise(function (res) {\n window.setTimeout(function () {\n menuPanel.setBodyComponent(_this.tabbedMenu);\n _this.tabbedMenu.showTab(defaultTab);\n _this.addManagedListener(_this.eChartContainer, 'click', function (event) {\n if (_this.getGui().contains(event.target)) {\n return;\n }\n if (_this.menuVisible) {\n _this.hideMenu();\n }\n });\n res(menuPanel);\n }, 100);\n });\n };\n ChartMenu.prototype.showContainer = function () {\n if (!this.menuPanel) {\n return;\n }\n this.menuVisible = true;\n this.showParent(this.menuPanel.getWidth());\n this.refreshMenuClasses();\n };\n ChartMenu.prototype.toggleMenu = function () {\n this.menuVisible ? this.hideMenu() : this.showMenu();\n };\n ChartMenu.prototype.showMenu = function (panel, animate) {\n var _this = this;\n if (animate === void 0) { animate = true; }\n if (!animate) {\n this.eMenuPanelContainer.classList.add('ag-no-transition');\n }\n var menuPanel = panel || this.defaultPanel;\n var tab = this.panels.indexOf(menuPanel);\n if (tab < 0) {\n console.warn(\"AG Grid: '\" + panel + \"' is not a valid Chart Tool Panel name\");\n tab = this.panels.indexOf(this.defaultPanel);\n }\n if (this.menuPanel) {\n this.tabbedMenu.showTab(tab);\n this.showContainer();\n }\n else {\n this.createMenuPanel(tab).then(this.showContainer.bind(this));\n }\n if (!animate) {\n // Wait for menu to render\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n _this.eMenuPanelContainer.classList.remove('ag-no-transition');\n }, 500);\n }\n };\n ChartMenu.prototype.hideMenu = function () {\n var _this = this;\n this.hideParent();\n window.setTimeout(function () {\n _this.menuVisible = false;\n _this.refreshMenuClasses();\n }, 500);\n };\n ChartMenu.prototype.refreshMenuClasses = function () {\n this.eChartContainer.classList.toggle('ag-chart-menu-visible', this.menuVisible);\n this.eChartContainer.classList.toggle('ag-chart-menu-hidden', !this.menuVisible);\n if (this.gridOptionsWrapper.isEnableChartToolPanelsButton()) {\n this.eHideButtonIcon.classList.toggle('ag-icon-contracted', this.menuVisible);\n this.eHideButtonIcon.classList.toggle('ag-icon-expanded', !this.menuVisible);\n }\n };\n ChartMenu.prototype.showParent = function (width) {\n this.eMenuPanelContainer.style.minWidth = width + \"px\";\n };\n ChartMenu.prototype.hideParent = function () {\n this.eMenuPanelContainer.style.minWidth = '0';\n };\n ChartMenu.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.menuPanel && this.menuPanel.isAlive()) {\n this.destroyBean(this.menuPanel);\n }\n };\n ChartMenu.EVENT_DOWNLOAD_CHART = \"downloadChart\";\n ChartMenu.TEMPLATE = \"
\\n
\\n \\n
\";\n __decorate$L([\n Autowired('chartTranslationService')\n ], ChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$L([\n RefSelector(\"eMenu\")\n ], ChartMenu.prototype, \"eMenu\", void 0);\n __decorate$L([\n RefSelector(\"eHideButton\")\n ], ChartMenu.prototype, \"eHideButton\", void 0);\n __decorate$L([\n RefSelector(\"eHideButtonIcon\")\n ], ChartMenu.prototype, \"eHideButtonIcon\", void 0);\n __decorate$L([\n PostConstruct\n ], ChartMenu.prototype, \"postConstruct\", null);\n return ChartMenu;\n}(Component));\n\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$j = (undefined && undefined.__assign) || function () {\n __assign$j = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$j.apply(this, arguments);\n};\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TitleEdit = /** @class */ (function (_super) {\n __extends$1a(TitleEdit, _super);\n function TitleEdit(chartMenu) {\n var _this = _super.call(this, TitleEdit.TEMPLATE) || this;\n _this.chartMenu = chartMenu;\n return _this;\n }\n TitleEdit.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.getGui(), 'keypress', function (e) {\n if (e.key === 'Enter') {\n _this.endEditing();\n }\n });\n this.addManagedListener(this.getGui(), 'blur', this.endEditing.bind(this));\n };\n /* should be called when the containing component changes to a new chart proxy */\n TitleEdit.prototype.refreshTitle = function (chartController, chartOptionsService) {\n var _this = this;\n this.chartController = chartController;\n this.chartOptionsService = chartOptionsService;\n var chartProxy = this.chartController.getChartProxy();\n if (chartProxy) {\n for (var i = 0; i++; i < this.destroyableChartListeners.length) {\n this.destroyableChartListeners[i]();\n }\n this.destroyableChartListeners = [];\n }\n var chart = chartProxy.getChart();\n var canvas = chart.scene.canvas.element;\n var destroyDbleClickListener = this.addManagedListener(canvas, 'dblclick', function (event) {\n var title = chart.title;\n if (title && title.node.containsPoint(event.offsetX, event.offsetY)) {\n var bbox = title.node.computeBBox();\n var xy = title.node.inverseTransformPoint(bbox.x, bbox.y);\n _this.startEditing(__assign$j(__assign$j({}, bbox), xy));\n }\n });\n var wasInTitle = false;\n var destroyMouseMoveListener = this.addManagedListener(canvas, 'mousemove', function (event) {\n var title = chart.title;\n var inTitle = !!(title && title.enabled && title.node.containsPoint(event.offsetX, event.offsetY));\n if (wasInTitle !== inTitle) {\n canvas.style.cursor = inTitle ? 'pointer' : '';\n }\n wasInTitle = inTitle;\n });\n this.destroyableChartListeners = [\n destroyDbleClickListener,\n destroyMouseMoveListener\n ];\n };\n TitleEdit.prototype.startEditing = function (titleBBox) {\n if (this.chartMenu && this.chartMenu.isVisible()) {\n // currently, we ignore requests to edit the chart title while the chart menu is showing\n // because the click to edit the chart will also close the chart menu, making the position\n // of the title change.\n return;\n }\n var minimumTargetInputWidth = 300;\n var maximumInputWidth = this.chartController.getChartProxy().getChart().width;\n var inputWidth = Math.max(Math.min(titleBBox.width + 20, maximumInputWidth), minimumTargetInputWidth);\n var inputElement = this.getGui();\n inputElement.classList.add('currently-editing');\n var inputStyle = inputElement.style;\n // match style of input to title that we're editing\n inputStyle.fontFamily = this.chartOptionsService.getChartOption('title.fontFamily');\n inputStyle.fontWeight = this.chartOptionsService.getChartOption('title.fontWeight');\n inputStyle.fontStyle = this.chartOptionsService.getChartOption('title.fontStyle');\n inputStyle.fontSize = this.chartOptionsService.getChartOption('title.fontSize') + 'px';\n inputStyle.color = this.chartOptionsService.getChartOption('title.color');\n // populate the input with the title, unless the title is the placeholder:\n var oldTitle = this.chartOptionsService.getChartOption('title.text');\n var isTitlePlaceholder = oldTitle === this.chartTranslationService.translate('titlePlaceholder');\n inputElement.value = isTitlePlaceholder ? '' : oldTitle;\n var inputRect = inputElement.getBoundingClientRect();\n inputStyle.left = Math.round(titleBBox.x + titleBBox.width / 2 - inputWidth / 2) + 'px';\n inputStyle.top = Math.round(titleBBox.y + titleBBox.height / 2 - inputRect.height / 2) + 'px';\n inputStyle.width = Math.round(inputWidth) + 'px';\n inputElement.focus();\n };\n TitleEdit.prototype.endEditing = function () {\n var value = this.getGui().value;\n this.chartOptionsService.setChartOption('title.text', value);\n this.eventService.dispatchEvent({ type: 'chartTitleEdit' });\n this.getGui().classList.remove('currently-editing');\n };\n TitleEdit.TEMPLATE = \"\\n \";\n __decorate$K([\n Autowired('chartTranslationService')\n ], TitleEdit.prototype, \"chartTranslationService\", void 0);\n __decorate$K([\n PostConstruct\n ], TitleEdit.prototype, \"init\", null);\n return TitleEdit;\n}(Component));\n\n// deepMerge\nfunction emptyTarget(value) {\n return Array.isArray(value) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return (options.clone !== false && options.isMergeableObject(value))\n ? deepMerge(emptyTarget(value), value, options)\n : value;\n}\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepMerge;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepMerge;\n}\nfunction getEnumerableOwnPropertySymbols(target) {\n // @ts-ignore\n return Object.getOwnPropertySymbols\n // @ts-ignore\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n })\n : [];\n}\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n }\n catch (_) {\n return false;\n }\n}\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\nfunction mergeObject(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n }\n else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\nfunction defaultIsMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n}\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]';\n}\nfunction deepMerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n }\n else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n }\n else {\n return mergeObject(target, source, options);\n }\n}\n\nvar __assign$i = (undefined && undefined.__assign) || function () {\n __assign$i = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$i.apply(this, arguments);\n};\nvar ChartProxy = /** @class */ (function () {\n function ChartProxy(chartProxyParams) {\n this.chartProxyParams = chartProxyParams;\n this.chartType = chartProxyParams.chartType;\n this.crossFiltering = chartProxyParams.crossFiltering;\n this.crossFilterCallback = chartProxyParams.crossFilterCallback;\n this.standaloneChartType = getSeriesType(this.chartType);\n if (this.chartProxyParams.chartOptionsToRestore) {\n this.chartOptions = this.chartProxyParams.chartOptionsToRestore;\n this.chartPalette = this.chartProxyParams.chartPaletteToRestore;\n var themeOverrides = { overrides: this.chartOptions, palette: this.chartPalette };\n this.chartTheme = getIntegratedChartTheme(__assign$i({ baseTheme: this.getSelectedTheme() }, themeOverrides));\n return;\n }\n this.chartTheme = this.createChartTheme();\n this.chartOptions = this.convertConfigToOverrides(this.chartTheme.config);\n this.chartPalette = this.chartTheme.palette;\n }\n ChartProxy.prototype.recreateChart = function () {\n var _this = this;\n if (this.chart) {\n this.destroyChart();\n }\n this.chart = this.createChart();\n if (this.crossFiltering) {\n // add event listener to chart canvas to detect when user wishes to reset filters\n var resetFilters_1 = true;\n this.chart.addEventListener('click', function (e) { return _this.crossFilterCallback(e, resetFilters_1); });\n }\n };\n ChartProxy.prototype.getChart = function () {\n return this.chart;\n };\n ChartProxy.prototype.createChartTheme = function () {\n var _this = this;\n var themeName = this.getSelectedTheme();\n var stockTheme = this.isStockTheme(themeName);\n var gridOptionsThemeOverrides = this.chartProxyParams.getGridOptionsChartThemeOverrides();\n var apiThemeOverrides = this.chartProxyParams.apiChartThemeOverrides;\n if (gridOptionsThemeOverrides || apiThemeOverrides) {\n var themeOverrides_1 = {\n overrides: ChartProxy.mergeThemeOverrides(gridOptionsThemeOverrides, apiThemeOverrides)\n };\n var getCustomTheme = function () { return deepMerge(_this.lookupCustomChartTheme(themeName), themeOverrides_1); };\n return getIntegratedChartTheme(stockTheme ? __assign$i({ baseTheme: themeName }, themeOverrides_1) : getCustomTheme());\n }\n return getIntegratedChartTheme(stockTheme ? themeName : this.lookupCustomChartTheme(themeName));\n };\n ChartProxy.prototype.isStockTheme = function (themeName) {\n return _.includes(Object.keys(themes), themeName);\n };\n ChartProxy.prototype.getSelectedTheme = function () {\n var chartThemeName = this.chartProxyParams.getChartThemeName();\n var availableThemes = this.chartProxyParams.getChartThemes();\n if (!_.includes(availableThemes, chartThemeName)) {\n chartThemeName = availableThemes[0];\n }\n return chartThemeName;\n };\n ChartProxy.prototype.lookupCustomChartTheme = function (name) {\n var customChartThemes = this.chartProxyParams.customChartThemes;\n var customChartTheme = customChartThemes && customChartThemes[name];\n if (!customChartTheme) {\n console.warn(\"AG Grid: no stock theme exists with the name '\" + name + \"' and no \" +\n \"custom chart theme with that name was supplied to 'customChartThemes'\");\n }\n return customChartTheme;\n };\n ChartProxy.mergeThemeOverrides = function (gridOptionsThemeOverrides, apiThemeOverrides) {\n if (!gridOptionsThemeOverrides) {\n return apiThemeOverrides;\n }\n if (!apiThemeOverrides) {\n return gridOptionsThemeOverrides;\n }\n return deepMerge(gridOptionsThemeOverrides, apiThemeOverrides);\n };\n ChartProxy.prototype.downloadChart = function (dimensions, fileName, fileFormat) {\n var chart = this.chart;\n var imageFileName = fileName || (chart.title ? chart.title.text : 'chart');\n var _a = dimensions || {}, width = _a.width, height = _a.height;\n AgChart.download(chart, { width: width, height: height, fileName: imageFileName, fileFormat: fileFormat });\n };\n ChartProxy.prototype.getChartImageDataURL = function (type) {\n return this.chart.scene.getDataURL(type);\n };\n ChartProxy.prototype.getChartOptions = function () {\n return this.chartOptions;\n };\n ChartProxy.prototype.getChartPalette = function () {\n return this.chartPalette;\n };\n ChartProxy.prototype.transformData = function (data, categoryKey, categoryAxis) {\n if (categoryAxis) {\n // replace the values for the selected category with a complex object to allow for duplicated categories\n return data.map(function (d, index) {\n var value = d[categoryKey];\n var valueString = value && value.toString ? value.toString() : '';\n var datum = __assign$i({}, d);\n datum[categoryKey] = { id: index, value: value, toString: function () { return valueString; } };\n return datum;\n });\n }\n return data;\n };\n ChartProxy.prototype.getCommonChartOptions = function () {\n var _this = this;\n var getChartOption = function (propertyKey) {\n return _.get(_this.chartOptions, _this.standaloneChartType + \".\" + propertyKey, undefined);\n };\n return {\n padding: getChartOption('padding'),\n background: getChartOption('background'),\n title: getChartOption('title'),\n subtitle: getChartOption('subtitle'),\n tooltip: getChartOption('tooltip'),\n legend: getChartOption('legend'),\n navigator: getChartOption('navigator'),\n };\n };\n ChartProxy.prototype.convertConfigToOverrides = function (config) {\n var isComboChart = ['columnLineCombo', 'areaColumnCombo', 'customCombo'].includes(this.chartType);\n var overrideObjs = isComboChart ? ['line', 'area', 'column', 'cartesian'] : [this.standaloneChartType];\n var overrides = {};\n overrideObjs.forEach(function (overrideObj) {\n var chartOverrides = deepMerge({}, config[overrideObj]);\n chartOverrides.series = chartOverrides.series[overrideObj];\n // special handing to add the scatter paired mode to the chart options\n if (overrideObj === 'scatter') {\n chartOverrides.paired = true;\n }\n overrides[overrideObj] = chartOverrides;\n });\n return overrides;\n };\n ChartProxy.prototype.destroy = function () {\n this.destroyChart();\n };\n ChartProxy.prototype.destroyChart = function () {\n if (this.chart) {\n this.chart.destroy();\n this.chart = undefined;\n }\n };\n return ChartProxy;\n}());\n\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$h = (undefined && undefined.__assign) || function () {\n __assign$h = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$h.apply(this, arguments);\n};\nvar CartesianChartProxy = /** @class */ (function (_super) {\n __extends$19(CartesianChartProxy, _super);\n function CartesianChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.supportsAxesUpdates = true;\n _this.axisTypeToClassMap = {\n number: NumberAxis,\n category: CategoryAxis,\n groupedCategory: GroupedCategoryAxis,\n time: TimeAxis,\n };\n _this.crossFilteringAllPoints = new Set();\n _this.crossFilteringSelectedPoints = [];\n return _this;\n }\n CartesianChartProxy.prototype.createChart = function () {\n return AgChart.create({\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n });\n };\n CartesianChartProxy.prototype.update = function (params) {\n if (this.supportsAxesUpdates) {\n this.updateAxes(params);\n }\n var options = __assign$h(__assign$h({}, this.getCommonChartOptions()), { data: this.getData(params), axes: this.getAxes(params), series: this.getSeries(params) });\n if (this.crossFiltering) {\n options = this.addCrossFilterOptions(options);\n }\n AgChart.update(this.chart, options);\n };\n CartesianChartProxy.prototype.getDataTransformedData = function (params) {\n var isCategoryAxis = this.xAxisType === 'category';\n return this.transformData(params.data, params.category.id, isCategoryAxis);\n };\n CartesianChartProxy.prototype.addCrossFilterOptions = function (options) {\n var _this = this;\n var seriesOverrides = this.extractSeriesOverrides();\n options.tooltip = __assign$h(__assign$h({}, options.tooltip), { delay: 500 });\n options.legend = __assign$h(__assign$h(__assign$h({}, options.legend), seriesOverrides.legend), { listeners: {\n legendItemClick: function (e) {\n _this.chart.series.forEach(function (s) {\n s.toggleSeriesItem(e.itemId, e.enabled);\n s.toggleSeriesItem(e.itemId + \"-filtered-out\", e.enabled);\n });\n }\n } });\n return options;\n };\n CartesianChartProxy.prototype.extractSeriesOverrides = function (chartSeriesType) {\n var seriesOverrides = this.chartOptions[chartSeriesType ? chartSeriesType : this.standaloneChartType].series;\n // TODO: remove once `yKeys` and `yNames` have been removed from the options\n delete seriesOverrides.yKeys;\n delete seriesOverrides.yNames;\n return seriesOverrides;\n };\n CartesianChartProxy.prototype.updateAxes = function (params) {\n // when grouping recreate chart if the axis is not a 'groupedCategory', otherwise return\n if (params.grouping) {\n if (!(this.axisTypeToClassMap[this.xAxisType] === GroupedCategoryAxis)) {\n this.xAxisType = 'groupedCategory';\n this.recreateChart();\n }\n return;\n }\n // only update axis has changed and recreate the chart, i.e. switching from 'category' to 'time' axis\n var newXAxisType = CartesianChartProxy.isTimeAxis(params) ? 'time' : 'category';\n if (newXAxisType !== this.xAxisType) {\n this.xAxisType = newXAxisType;\n this.recreateChart();\n }\n };\n CartesianChartProxy.prototype.getAxesOptions = function (chartSeriesType) {\n if (chartSeriesType === void 0) { chartSeriesType = this.standaloneChartType; }\n return this.chartOptions[chartSeriesType].axes;\n };\n CartesianChartProxy.isTimeAxis = function (params) {\n if (params.category && params.category.chartDataType) {\n return params.category.chartDataType === 'time';\n }\n var testDatum = params.data[0];\n return (testDatum && testDatum[params.category.id]) instanceof Date;\n };\n CartesianChartProxy.prototype.crossFilteringReset = function () {\n this.crossFilteringSelectedPoints = [];\n this.crossFilteringAllPoints.clear();\n };\n CartesianChartProxy.prototype.crossFilteringPointSelected = function (point) {\n return this.crossFilteringSelectedPoints.length == 0 || this.crossFilteringSelectedPoints.includes(point);\n };\n CartesianChartProxy.prototype.crossFilteringDeselectedPoints = function () {\n return this.crossFilteringSelectedPoints.length > 0 &&\n this.crossFilteringAllPoints.size !== this.crossFilteringSelectedPoints.length;\n };\n CartesianChartProxy.prototype.extractLineAreaCrossFilterSeries = function (series, params) {\n var _this = this;\n var getYKey = function (yKey) {\n if (_this.standaloneChartType === 'area') {\n var lastSelectedChartId = params.getCrossFilteringContext().lastSelectedChartId;\n return (lastSelectedChartId === params.chartId) ? yKey + '-total' : yKey;\n }\n return yKey + '-total';\n };\n return series.map(function (s) {\n var seriesOverrides = _this.extractSeriesOverrides();\n s.yKey = getYKey(s.yKey);\n s.listeners = __assign$h(__assign$h({}, seriesOverrides.listeners), { nodeClick: function (e) {\n var value = e.datum[s.xKey];\n var multiSelection = e.event.metaKey || e.event.ctrlKey;\n _this.crossFilteringAddSelectedPoint(multiSelection, value);\n _this.crossFilterCallback(e);\n } });\n s.marker = {\n formatter: function (p) {\n var category = p.datum[params.category.id];\n return {\n fill: p.highlighted ? 'yellow' : p.fill,\n size: p.highlighted ? 14 : _this.crossFilteringPointSelected(category) ? 8 : 0,\n };\n }\n };\n if (_this.standaloneChartType === 'area') {\n s.fillOpacity = _this.crossFilteringDeselectedPoints() ? 0.3 : 1;\n }\n if (_this.standaloneChartType === 'line') {\n s.strokeOpacity = _this.crossFilteringDeselectedPoints() ? 0.3 : 1;\n }\n return s;\n });\n };\n CartesianChartProxy.prototype.getLineAreaCrossFilterData = function (params) {\n var _this = this;\n this.crossFilteringAllPoints.clear();\n var colId = params.fields[0].colId;\n var filteredOutColId = colId + \"-filtered-out\";\n var lastSelectedChartId = params.getCrossFilteringContext().lastSelectedChartId;\n return params.data.map(function (d) {\n var category = d[params.category.id];\n _this.crossFilteringAllPoints.add(category);\n var pointSelected = _this.crossFilteringPointSelected(category);\n if (_this.standaloneChartType === 'area' && lastSelectedChartId === params.chartId) {\n d[colId + \"-total\"] = pointSelected ? d[colId] : d[colId] + d[filteredOutColId];\n }\n if (_this.standaloneChartType === 'line') {\n d[colId + \"-total\"] = pointSelected ? d[colId] : d[colId] + d[filteredOutColId];\n }\n return d;\n });\n };\n CartesianChartProxy.prototype.crossFilteringAddSelectedPoint = function (multiSelection, value) {\n multiSelection ? this.crossFilteringSelectedPoints.push(value) : this.crossFilteringSelectedPoints = [value];\n };\n return CartesianChartProxy;\n}(ChartProxy));\n\nfunction hexToRGBA(hex, alpha) {\n var r = parseInt(hex.slice(1, 3), 16);\n var g = parseInt(hex.slice(3, 5), 16);\n var b = parseInt(hex.slice(5, 7), 16);\n return alpha ? \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\" : \"rgba(\" + r + \", \" + g + \", \" + b + \")\";\n}\nfunction changeOpacity(fills, alpha) {\n return fills.map(function (fill) {\n var c = Color$2.fromString(fill);\n return new Color$2(c.r, c.g, c.b, alpha).toHexString();\n });\n}\n\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$g = (undefined && undefined.__assign) || function () {\n __assign$g = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$g.apply(this, arguments);\n};\nvar BarChartProxy = /** @class */ (function (_super) {\n __extends$18(BarChartProxy, _super);\n function BarChartProxy(params) {\n var _this = _super.call(this, params) || this;\n // when the standalone chart type is 'bar' - xAxis is positioned to the 'left'\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n BarChartProxy.prototype.getData = function (params) {\n return this.getDataTransformedData(params);\n };\n BarChartProxy.prototype.getAxes = function () {\n var isBar = this.standaloneChartType === 'bar';\n var axisOptions = this.getAxesOptions();\n var axes = [\n __assign$g(__assign$g({}, deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: isBar ? ChartAxisPosition.Left : ChartAxisPosition.Bottom }),\n __assign$g(__assign$g({}, deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: isBar ? ChartAxisPosition.Bottom : ChartAxisPosition.Left }),\n ];\n // special handling to add a default label formatter to show '%' for normalized charts if none is provided\n if (this.isNormalised()) {\n var numberAxis = axes[1];\n numberAxis.label = __assign$g(__assign$g({}, numberAxis.label), { formatter: function (params) { return Math.round(params.value) + '%'; } });\n }\n return axes;\n };\n BarChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var groupedCharts = ['groupedColumn', 'groupedBar'];\n var isGrouped = !this.crossFiltering && _.includes(groupedCharts, this.chartType);\n var series = params.fields.map(function (f) { return (__assign$g(__assign$g({}, _this.extractSeriesOverrides()), { type: _this.standaloneChartType, grouped: isGrouped, normalizedTo: _this.isNormalised() ? 100 : undefined, xKey: params.category.id, xName: params.category.name, yKey: f.colId, yName: f.displayName })); });\n return this.crossFiltering ? this.extractCrossFilterSeries(series) : series;\n };\n BarChartProxy.prototype.extractCrossFilterSeries = function (series) {\n var _this = this;\n var palette = this.chartTheme.palette;\n var updatePrimarySeries = function (seriesOptions, index) {\n return __assign$g(__assign$g({}, seriesOptions), { highlightStyle: { item: { fill: undefined } }, fill: palette.fills[index], stroke: palette.strokes[index], listeners: __assign$g(__assign$g({}, _this.extractSeriesOverrides().listeners), { nodeClick: _this.crossFilterCallback }) });\n };\n var updateFilteredOutSeries = function (seriesOptions) {\n var yKey = seriesOptions.yKey + '-filtered-out';\n return __assign$g(__assign$g({}, deepMerge({}, seriesOptions)), { yKey: yKey, fill: hexToRGBA(seriesOptions.fill, '0.3'), stroke: hexToRGBA(seriesOptions.stroke, '0.3'), hideInLegend: [yKey] });\n };\n var allSeries = [];\n for (var i = 0; i < series.length; i++) {\n // update primary series\n var primarySeries = updatePrimarySeries(series[i], i);\n allSeries.push(primarySeries);\n // add 'filtered-out' series\n allSeries.push(updateFilteredOutSeries(primarySeries));\n }\n return allSeries;\n };\n BarChartProxy.prototype.isNormalised = function () {\n var normalisedCharts = ['normalizedColumn', 'normalizedBar'];\n return !this.crossFiltering && _.includes(normalisedCharts, this.chartType);\n };\n return BarChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar AreaChartProxy = /** @class */ (function (_super) {\n __extends$17(AreaChartProxy, _super);\n function AreaChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n AreaChartProxy.prototype.getData = function (params) {\n return this.crossFiltering ? this.getLineAreaCrossFilterData(params) : this.getDataTransformedData(params);\n };\n AreaChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$f(__assign$f({}, deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$f(__assign$f({}, deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n AreaChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var series = params.fields.map(function (f) { return (__assign$f(__assign$f({}, _this.extractSeriesOverrides()), { type: _this.standaloneChartType, xKey: params.category.id, xName: params.category.name, yKey: f.colId, yName: f.displayName, normalizedTo: _this.chartType === 'normalizedArea' ? 100 : undefined, stacked: ['normalizedArea', 'stackedArea'].includes(_this.chartType) })); });\n return this.crossFiltering ? this.extractLineAreaCrossFilterSeries(series, params) : series;\n };\n return AreaChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar LineChartProxy = /** @class */ (function (_super) {\n __extends$16(LineChartProxy, _super);\n function LineChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n LineChartProxy.prototype.getData = function (params) {\n return this.crossFiltering ? this.getLineAreaCrossFilterData(params) : this.getDataTransformedData(params);\n };\n LineChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$e(__assign$e({}, deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$e(__assign$e({}, deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n LineChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var series = params.fields.map(function (f) { return (__assign$e(__assign$e({}, _this.extractSeriesOverrides()), { type: _this.standaloneChartType, xKey: params.category.id, xName: params.category.name, yKey: f.colId, yName: f.displayName })); });\n return this.crossFiltering ? this.extractLineAreaCrossFilterSeries(series, params) : series;\n };\n return LineChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\nvar PieChartProxy = /** @class */ (function (_super) {\n __extends$15(PieChartProxy, _super);\n function PieChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.recreateChart();\n return _this;\n }\n PieChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'pie',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n });\n };\n PieChartProxy.prototype.update = function (params) {\n var data = params.data, category = params.category;\n var options = __assign$d(__assign$d({}, this.getCommonChartOptions()), { data: this.crossFiltering ? this.getCrossFilterData(params) : this.transformData(data, category.id), series: this.getSeries(params) });\n if (this.crossFiltering) {\n options = this.getCrossFilterChartOptions(options);\n }\n AgChart.update(this.chart, options);\n };\n PieChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var numFields = params.fields.length;\n var offset = {\n currentOffset: 0,\n offsetAmount: numFields > 1 ? 20 : 40\n };\n var series = this.getFields(params).map(function (f) {\n var seriesDefaults = _this.extractSeriesOverrides();\n // options shared by 'pie' and 'doughnut' charts\n var options = __assign$d(__assign$d({}, seriesDefaults), { type: _this.standaloneChartType, angleKey: f.colId, angleName: f.displayName, calloutLabelKey: params.category.id, calloutLabelName: params.category.name });\n if (_this.chartType === 'doughnut') {\n var _a = PieChartProxy.calculateOffsets(offset), outerRadiusOffset = _a.outerRadiusOffset, innerRadiusOffset = _a.innerRadiusOffset;\n // augment shared options with 'doughnut' specific options\n return __assign$d(__assign$d({}, options), { outerRadiusOffset: outerRadiusOffset,\n innerRadiusOffset: innerRadiusOffset, title: __assign$d(__assign$d({}, seriesDefaults.title), { text: seriesDefaults.title.text || f.displayName, showInLegend: numFields > 1 }), calloutLine: __assign$d(__assign$d({}, seriesDefaults.calloutLine), { colors: _this.chartTheme.palette.strokes }) });\n }\n return options;\n });\n return this.crossFiltering ? this.extractCrossFilterSeries(series) : series;\n };\n PieChartProxy.prototype.getCrossFilterChartOptions = function (options) {\n var _this = this;\n var seriesOverrides = this.extractSeriesOverrides();\n return __assign$d(__assign$d({}, options), { tooltip: __assign$d(__assign$d({}, seriesOverrides.tooltip), { delay: 500 }), legend: __assign$d(__assign$d({}, seriesOverrides.legend), { listeners: {\n legendItemClick: function (e) {\n _this.chart.series.forEach(function (s) { return s.toggleSeriesItem(e.itemId, e.enabled); });\n }\n } }) });\n };\n PieChartProxy.prototype.getCrossFilterData = function (params) {\n var colId = params.fields[0].colId;\n var filteredOutColId = colId + \"-filtered-out\";\n return params.data.map(function (d) {\n var total = d[colId] + d[filteredOutColId];\n d[colId + \"-total\"] = total;\n d[filteredOutColId] = 1; // normalise to 1\n d[colId] = d[colId] / total; // fraction of 1\n return d;\n });\n };\n PieChartProxy.prototype.extractCrossFilterSeries = function (series) {\n var _this = this;\n var palette = this.chartTheme.palette;\n var seriesOverrides = this.extractSeriesOverrides();\n var primaryOptions = function (seriesOptions) {\n return __assign$d(__assign$d({}, seriesOptions), { calloutLabel: { enabled: false }, highlightStyle: { item: { fill: undefined } }, radiusKey: seriesOptions.angleKey, angleKey: seriesOptions.angleKey + '-total', radiusMin: 0, radiusMax: 1, listeners: __assign$d(__assign$d({}, seriesOverrides.listeners), { nodeClick: _this.crossFilterCallback }), tooltip: __assign$d(__assign$d({}, seriesOverrides.tooltip), { renderer: _this.getCrossFilterTooltipRenderer(\"\" + seriesOptions.angleName) }) });\n };\n var filteredOutOptions = function (seriesOptions, angleKey) {\n var _a, _b, _c;\n return __assign$d(__assign$d({}, deepMerge({}, primaryOpts)), { radiusKey: angleKey + '-filtered-out', calloutLabel: seriesOverrides.calloutLabel, calloutLine: seriesOverrides.calloutLine && __assign$d(__assign$d({}, seriesOverrides.calloutLine), { colors: (_a = seriesOverrides.calloutLine.colors, (_a !== null && _a !== void 0 ? _a : palette.strokes)) }), fills: changeOpacity((_b = seriesOptions.fills, (_b !== null && _b !== void 0 ? _b : palette.fills)), 0.3), strokes: changeOpacity((_c = seriesOptions.strokes, (_c !== null && _c !== void 0 ? _c : palette.strokes)), 0.3), showInLegend: false });\n };\n // currently, only single 'doughnut' cross-filter series are supported\n var primarySeries = series[0];\n // update primary series\n var angleKey = primarySeries.angleKey;\n var primaryOpts = primaryOptions(primarySeries);\n return [\n filteredOutOptions(primarySeries, angleKey),\n primaryOpts,\n ];\n };\n PieChartProxy.calculateOffsets = function (offset) {\n var outerRadiusOffset = offset.currentOffset;\n offset.currentOffset -= offset.offsetAmount;\n var innerRadiusOffset = offset.currentOffset;\n offset.currentOffset -= offset.offsetAmount;\n return { outerRadiusOffset: outerRadiusOffset, innerRadiusOffset: innerRadiusOffset };\n };\n PieChartProxy.prototype.getFields = function (params) {\n return this.chartType === 'pie' ? params.fields.slice(0, 1) : params.fields;\n };\n PieChartProxy.prototype.getCrossFilterTooltipRenderer = function (title) {\n return function (params) {\n var label = params.datum[params.calloutLabelKey];\n var ratio = params.datum[params.radiusKey];\n var totalValue = params.angleValue;\n return { title: title, content: label + \": \" + totalValue * ratio };\n };\n };\n PieChartProxy.prototype.extractSeriesOverrides = function () {\n return this.chartOptions[this.standaloneChartType].series;\n };\n PieChartProxy.prototype.crossFilteringReset = function () {\n // not required in pie charts\n };\n return PieChartProxy;\n}(ChartProxy));\n\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __values$4 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$3 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$a(arguments[i]));\n return ar;\n};\nvar ScatterChartProxy = /** @class */ (function (_super) {\n __extends$14(ScatterChartProxy, _super);\n function ScatterChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.supportsAxesUpdates = false;\n _this.xAxisType = 'number';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n ScatterChartProxy.prototype.getData = function (params) {\n return this.getDataTransformedData(params);\n };\n ScatterChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$c(__assign$c({}, deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$c(__assign$c({}, deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n ScatterChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var paired = this.chartOptions[this.standaloneChartType].paired;\n var seriesDefinitions = this.getSeriesDefinitions(params.fields, paired);\n var labelFieldDefinition = params.category.id === ChartDataModel.DEFAULT_CATEGORY ? undefined : params.category;\n var series = seriesDefinitions.map(function (seriesDefinition) { return (__assign$c(__assign$c({}, _this.extractSeriesOverrides()), { type: _this.standaloneChartType, xKey: seriesDefinition.xField.colId, xName: seriesDefinition.xField.displayName, yKey: seriesDefinition.yField.colId, yName: seriesDefinition.yField.displayName, title: seriesDefinition.yField.displayName + \" vs \" + seriesDefinition.xField.displayName, sizeKey: seriesDefinition.sizeField ? seriesDefinition.sizeField.colId : undefined, sizeName: seriesDefinition.sizeField ? seriesDefinition.sizeField.displayName : undefined, labelKey: labelFieldDefinition ? labelFieldDefinition.id : seriesDefinition.yField.colId, labelName: labelFieldDefinition ? labelFieldDefinition.name : undefined })); });\n return this.crossFiltering ? this.extractCrossFilterSeries(series, params) : series;\n };\n ScatterChartProxy.prototype.extractCrossFilterSeries = function (series, params) {\n var _this = this;\n var data = params.data;\n var palette = this.chartTheme.palette;\n var filteredOutKey = function (key) { return key + \"-filtered-out\"; };\n var calcMarkerDomain = function (data, sizeKey) {\n var e_1, _a;\n var _b;\n var markerDomain = [Infinity, -Infinity];\n if (sizeKey != null) {\n try {\n for (var data_1 = __values$4(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n var value = (_b = datum[sizeKey], (_b !== null && _b !== void 0 ? _b : datum[filteredOutKey(sizeKey)]));\n if (value < markerDomain[0]) {\n markerDomain[0] = value;\n }\n if (value > markerDomain[1]) {\n markerDomain[1] = value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (markerDomain[0] <= markerDomain[1]) {\n return markerDomain;\n }\n return undefined;\n };\n var updatePrimarySeries = function (series, idx) {\n var sizeKey = series.sizeKey;\n var fill = palette.fills[idx];\n var stroke = palette.strokes[idx];\n var markerDomain = calcMarkerDomain(data, sizeKey);\n var marker = __assign$c(__assign$c({}, series.marker), { fill: fill,\n stroke: stroke, domain: markerDomain });\n return __assign$c(__assign$c({}, series), { marker: marker, highlightStyle: { item: { fill: 'yellow' } }, listeners: __assign$c(__assign$c({}, series.listeners), { nodeClick: _this.crossFilterCallback }) });\n };\n var updateFilteredOutSeries = function (series) {\n var sizeKey = series.sizeKey, yKey = series.yKey, xKey = series.xKey;\n if (sizeKey != null) {\n sizeKey = filteredOutKey(sizeKey);\n }\n return __assign$c(__assign$c({}, series), { yKey: filteredOutKey(yKey), xKey: filteredOutKey(xKey), marker: __assign$c(__assign$c({}, series.marker), { fillOpacity: 0.3, strokeOpacity: 0.3 }), sizeKey: sizeKey, showInLegend: false, listeners: __assign$c(__assign$c({}, series.listeners), { nodeClick: function (e) {\n var _a;\n var value = e.datum[filteredOutKey(xKey)];\n // Need to remove the `-filtered-out` suffixes from the event so that\n // upstream processing maps the event correctly onto grid column ids.\n var filterableEvent = __assign$c(__assign$c({}, e), { xKey: xKey, datum: __assign$c(__assign$c({}, e.datum), (_a = {}, _a[xKey] = value, _a)) });\n _this.crossFilterCallback(filterableEvent);\n } }) });\n };\n var updatedSeries = series.map(updatePrimarySeries);\n return __spread$3(updatedSeries, updatedSeries.map(updateFilteredOutSeries));\n };\n ScatterChartProxy.prototype.getSeriesDefinitions = function (fields, paired) {\n if (fields.length < 2) {\n return [];\n }\n var isBubbleChart = this.chartType === 'bubble';\n if (paired) {\n if (isBubbleChart) {\n return fields.map(function (currentXField, i) { return i % 3 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n sizeField: fields[i + 2],\n }) : null; }).filter(function (x) { return x && x.yField && x.sizeField; });\n }\n return fields.map(function (currentXField, i) { return i % 2 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n }) : null; }).filter(function (x) { return x && x.yField; });\n }\n var xField = fields[0];\n if (isBubbleChart) {\n return fields\n .map(function (yField, i) { return i % 2 === 1 ? ({\n xField: xField,\n yField: yField,\n sizeField: fields[i + 1],\n }) : null; })\n .filter(function (x) { return x && x.sizeField; });\n }\n return fields.filter(function (value, i) { return i > 0; }).map(function (yField) { return ({ xField: xField, yField: yField }); });\n };\n return ScatterChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar HistogramChartProxy = /** @class */ (function (_super) {\n __extends$13(HistogramChartProxy, _super);\n function HistogramChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.supportsAxesUpdates = false;\n _this.xAxisType = 'number';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n HistogramChartProxy.prototype.getData = function (params) {\n return this.getDataTransformedData(params);\n };\n HistogramChartProxy.prototype.getSeries = function (params) {\n var firstField = params.fields[0]; // multiple series are not supported!\n return [__assign$b(__assign$b({}, this.extractSeriesOverrides()), { type: this.standaloneChartType, xKey: firstField.colId, xName: firstField.displayName, yName: this.chartProxyParams.translate(\"histogramFrequency\"), areaPlot: false })];\n };\n HistogramChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$b(__assign$b({}, deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$b(__assign$b({}, deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n return HistogramChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartOptionsService = /** @class */ (function (_super) {\n __extends$12(ChartOptionsService, _super);\n function ChartOptionsService(chartController) {\n var _this = _super.call(this) || this;\n _this.chartController = chartController;\n return _this;\n }\n ChartOptionsService.prototype.getChartOption = function (expression) {\n return _.get(this.getChart(), expression, undefined);\n };\n ChartOptionsService.prototype.setChartOption = function (expression, value) {\n var _this = this;\n var chartSeriesTypes = this.chartController.getChartSeriesTypes();\n if (this.chartController.isComboChart()) {\n chartSeriesTypes.push('cartesian');\n }\n // we need to update chart options on each series type for combo charts\n chartSeriesTypes.forEach(function (optionsType) {\n // update options\n var options = _.get(_this.getChartOptions(), \"\" + optionsType, undefined);\n _.set(options, expression, value);\n });\n // update chart\n this.updateChart();\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getAxisProperty = function (expression) {\n return _.get(this.getChart().axes[0], expression, undefined);\n };\n ChartOptionsService.prototype.setAxisProperty = function (expression, value) {\n var _this = this;\n // update axis options\n var chart = this.getChart();\n chart.axes.forEach(function (axis) {\n _this.updateAxisOptions(axis, expression, value);\n });\n // update chart\n this.updateChart();\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getLabelRotation = function (axisType) {\n var axis = this.getAxis(axisType);\n return _.get(axis, 'label.rotation', undefined);\n };\n ChartOptionsService.prototype.setLabelRotation = function (axisType, value) {\n var chartAxis = this.getAxis(axisType);\n if (chartAxis) {\n this.updateAxisOptions(chartAxis, 'label.rotation', value);\n this.updateChart();\n this.raiseChartOptionsChangedEvent();\n }\n };\n ChartOptionsService.prototype.getSeriesOption = function (expression, seriesType) {\n var series = this.getChart().series.find(function (s) { return ChartOptionsService.isMatchingSeries(seriesType, s); });\n return _.get(series, expression, undefined);\n };\n ChartOptionsService.prototype.setSeriesOption = function (expression, value, seriesType) {\n // update series options\n var options = this.getChartOptions();\n if (!options[seriesType]) {\n options[seriesType] = {};\n }\n _.set(options[seriesType].series, expression, value);\n // update chart\n this.updateChart();\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getPairedMode = function () {\n var optionsType = getSeriesType(this.getChartType());\n return _.get(this.getChartOptions(), optionsType + \".paired\", undefined);\n };\n ChartOptionsService.prototype.setPairedMode = function (paired) {\n var optionsType = getSeriesType(this.getChartType());\n var options = _.get(this.getChartOptions(), \"\" + optionsType, undefined);\n _.set(options, 'paired', paired);\n };\n ChartOptionsService.prototype.getAxis = function (axisType) {\n var chart = this.getChart();\n if (!chart.axes || chart.axes.length < 1) {\n return undefined;\n }\n if (axisType === 'xAxis') {\n return (chart.axes && chart.axes[0].direction === 'x') ? chart.axes[0] : chart.axes[1];\n }\n return (chart.axes && chart.axes[1].direction === 'y') ? chart.axes[1] : chart.axes[0];\n };\n ChartOptionsService.prototype.updateAxisOptions = function (chartAxis, expression, value) {\n var optionsType = getSeriesType(this.getChartType());\n var axisOptions = this.getChartOptions()[optionsType].axes;\n if (chartAxis instanceof NumberAxis) {\n _.set(axisOptions.number, expression, value);\n }\n else if (chartAxis instanceof CategoryAxis) {\n _.set(axisOptions.category, expression, value);\n }\n else if (chartAxis instanceof TimeAxis) {\n _.set(axisOptions.time, expression, value);\n }\n else if (chartAxis instanceof GroupedCategoryAxis) {\n _.set(axisOptions.groupedCategory, expression, value);\n }\n };\n ChartOptionsService.prototype.getChartType = function () {\n return this.chartController.getChartType();\n };\n ChartOptionsService.prototype.getChart = function () {\n return this.chartController.getChartProxy().getChart();\n };\n ChartOptionsService.prototype.getChartOptions = function () {\n return this.chartController.getChartProxy().getChartOptions();\n };\n ChartOptionsService.prototype.updateChart = function () {\n var chartUpdateParams = this.chartController.getChartUpdateParams();\n this.chartController.getChartProxy().update(chartUpdateParams);\n };\n ChartOptionsService.prototype.raiseChartOptionsChangedEvent = function () {\n var chartModel = this.chartController.getChartModel();\n var event = Object.freeze({\n type: Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartModel.chartId,\n chartType: chartModel.chartType,\n chartThemeName: chartModel.chartThemeName,\n chartOptions: chartModel.chartOptions\n });\n this.eventService.dispatchEvent(event);\n };\n ChartOptionsService.isMatchingSeries = function (seriesType, series) {\n return seriesType === 'area' && series instanceof AreaSeries ? true :\n seriesType === 'bar' && series instanceof BarSeries ? true :\n seriesType === 'column' && series instanceof BarSeries ? true :\n seriesType === 'histogram' && series instanceof HistogramSeries ? true :\n seriesType === 'line' && series instanceof LineSeries ? true :\n seriesType === 'pie' && series instanceof PieSeries ? true :\n seriesType === 'scatter' && series instanceof ScatterSeries;\n };\n ChartOptionsService.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$J([\n Autowired('gridApi')\n ], ChartOptionsService.prototype, \"gridApi\", void 0);\n __decorate$J([\n Autowired('columnApi')\n ], ChartOptionsService.prototype, \"columnApi\", void 0);\n return ChartOptionsService;\n}(BeanStub));\n\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar ComboChartProxy = /** @class */ (function (_super) {\n __extends$11(ComboChartProxy, _super);\n function ComboChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n ComboChartProxy.prototype.getData = function (params) {\n return this.getDataTransformedData(params);\n };\n ComboChartProxy.prototype.getAxes = function (params) {\n var _this = this;\n var _a;\n var fields = params ? params.fields : [];\n var fieldsMap = new Map(fields.map(function (f) { return [f.colId, f]; }));\n var _b = this.getYKeys(fields, params.seriesChartTypes), primaryYKeys = _b.primaryYKeys, secondaryYKeys = _b.secondaryYKeys;\n var _c = this.getAxisOptions(), bottomOptions = _c.bottomOptions, leftOptions = _c.leftOptions, rightOptions = _c.rightOptions;\n var axes = [\n __assign$a(__assign$a({}, bottomOptions), { type: this.xAxisType, position: ChartAxisPosition.Bottom, gridStyle: [{ stroke: undefined }] }),\n ];\n if (primaryYKeys.length > 0) {\n axes.push(__assign$a(__assign$a({}, leftOptions), { type: this.yAxisType, keys: primaryYKeys, position: ChartAxisPosition.Left, title: __assign$a({}, deepMerge(leftOptions.title, {\n enabled: (_a = leftOptions.title) === null || _a === void 0 ? void 0 : _a.enabled,\n text: primaryYKeys.map(function (key) {\n var field = fieldsMap.get(key);\n return field ? field.displayName : key;\n }).join(' / '),\n })) }));\n }\n if (secondaryYKeys.length > 0) {\n secondaryYKeys.forEach(function (secondaryYKey, i) {\n var _a;\n var field = fieldsMap.get(secondaryYKey);\n var secondaryAxisIsVisible = field && field.colId === secondaryYKey;\n if (!secondaryAxisIsVisible) {\n return;\n }\n var secondaryAxisOptions = __assign$a(__assign$a({}, rightOptions), { type: _this.yAxisType, keys: [secondaryYKey], position: ChartAxisPosition.Right, title: __assign$a({}, deepMerge(rightOptions.title, {\n enabled: (_a = rightOptions.title) === null || _a === void 0 ? void 0 : _a.enabled,\n text: field ? field.displayName : secondaryYKey,\n })) });\n var primaryYAxis = primaryYKeys.some(function (primaryYKey) { return !!fieldsMap.get(primaryYKey); });\n var lastSecondaryAxis = i === secondaryYKeys.length - 1;\n if (!primaryYAxis && lastSecondaryAxis) ;\n else {\n secondaryAxisOptions.gridStyle = [{ stroke: undefined }];\n }\n axes.push(secondaryAxisOptions);\n });\n }\n return axes;\n };\n ComboChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var fields = params.fields, category = params.category, seriesChartTypes = params.seriesChartTypes;\n return fields.map(function (field) {\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === field.colId; });\n if (seriesChartType) {\n var chartType = seriesChartType.chartType;\n return __assign$a(__assign$a({}, _this.extractSeriesOverrides(getSeriesType(seriesChartType.chartType))), { type: getSeriesType(chartType), xKey: category.id, yKey: field.colId, yName: field.displayName, grouped: ['groupedColumn', 'groupedBar', 'groupedArea'].includes(chartType), stacked: ['stackedArea', 'stackedColumn'].includes(chartType) });\n }\n });\n };\n ComboChartProxy.prototype.getAxisOptions = function () {\n var axisOptions = this.getAxesOptions('cartesian');\n return {\n bottomOptions: deepMerge(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom),\n leftOptions: deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left),\n rightOptions: deepMerge(axisOptions[this.yAxisType], axisOptions[this.yAxisType].right),\n };\n };\n ComboChartProxy.prototype.getYKeys = function (fields, seriesChartTypes) {\n var primaryYKeys = [];\n var secondaryYKeys = [];\n fields.forEach(function (field) {\n var colId = field.colId;\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n seriesChartType.secondaryAxis ? secondaryYKeys.push(colId) : primaryYKeys.push(colId);\n }\n });\n return { primaryYKeys: primaryYKeys, secondaryYKeys: secondaryYKeys };\n };\n return ComboChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridChartComp = /** @class */ (function (_super) {\n __extends$10(GridChartComp, _super);\n function GridChartComp(params) {\n var _this = _super.call(this, GridChartComp.TEMPLATE) || this;\n _this.params = params;\n return _this;\n }\n GridChartComp.prototype.init = function () {\n var _this = this;\n var availableChartThemes = this.gridOptionsWrapper.getChartThemes();\n if (availableChartThemes.length < 1) {\n throw new Error('Cannot create chart: no chart themes are available to be used.');\n }\n var chartThemeName = this.params.chartThemeName;\n if (!_.includes(availableChartThemes, chartThemeName)) {\n chartThemeName = availableChartThemes[0];\n }\n var modelParams = {\n chartId: this.params.chartId,\n pivotChart: this.params.pivotChart,\n chartType: this.params.chartType,\n chartThemeName: chartThemeName,\n aggFunc: this.params.aggFunc,\n cellRange: this.params.cellRange,\n suppressChartRanges: this.params.suppressChartRanges,\n unlinkChart: this.params.unlinkChart,\n crossFiltering: this.params.crossFiltering,\n seriesChartTypes: this.params.seriesChartTypes,\n };\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n this.addCssClass(isRtl ? 'ag-rtl' : 'ag-ltr');\n // only the chart controller interacts with the chart model\n var model = this.createBean(new ChartDataModel(modelParams));\n this.chartController = this.createManagedBean(new ChartController(model));\n this.validateCustomThemes();\n // create chart before dialog to ensure dialog is correct size\n this.createChart();\n if (this.params.insideDialog) {\n this.addDialog();\n }\n this.addMenu();\n this.addTitleEditComp();\n this.addManagedListener(this.getGui(), 'focusin', this.setActiveChartCellRange.bind(this));\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_MODEL_UPDATE, this.update.bind(this));\n if (this.chartMenu) {\n // chart menu may not exist, i.e. cross filtering\n this.addManagedListener(this.chartMenu, ChartMenu.EVENT_DOWNLOAD_CHART, function () { return _this.downloadChart(); });\n }\n this.update();\n this.raiseChartCreatedEvent();\n };\n GridChartComp.prototype.validateCustomThemes = function () {\n var suppliedThemes = this.gridOptionsWrapper.getChartThemes();\n var customChartThemes = this.gridOptionsWrapper.getCustomChartThemes();\n if (customChartThemes) {\n _.getAllKeysInObjects([customChartThemes]).forEach(function (customThemeName) {\n if (!_.includes(suppliedThemes, customThemeName)) {\n console.warn(\"AG Grid: a custom chart theme with the name '\" + customThemeName + \"' has been \" +\n \"supplied but not added to the 'chartThemes' list\");\n }\n });\n }\n };\n GridChartComp.prototype.createChart = function () {\n var _this = this;\n // if chart already exists, destroy it and remove it from DOM\n if (this.chartProxy) {\n this.chartProxy.destroy();\n }\n var crossFilterCallback = function (event, reset) {\n var ctx = _this.params.crossFilteringContext;\n ctx.lastSelectedChartId = reset ? '' : _this.chartController.getChartId();\n if (reset) {\n _this.params.crossFilteringResetCallback();\n }\n _this.crossFilterService.filter(event, reset);\n };\n var chartType = this.chartController.getChartType();\n var chartProxyParams = {\n chartType: chartType,\n getChartThemeName: this.getChartThemeName.bind(this),\n getChartThemes: this.getChartThemes.bind(this),\n customChartThemes: this.gridOptionsWrapper.getCustomChartThemes(),\n getGridOptionsChartThemeOverrides: this.getGridOptionsChartThemeOverrides.bind(this),\n apiChartThemeOverrides: this.params.chartThemeOverrides,\n crossFiltering: this.params.crossFiltering,\n crossFilterCallback: crossFilterCallback,\n parentElement: this.eChart,\n grouping: this.chartController.isGrouping(),\n chartOptionsToRestore: this.params.chartOptionsToRestore,\n chartPaletteToRestore: this.params.chartPaletteToRestore,\n seriesChartTypes: this.chartController.getSeriesChartTypes(),\n translate: function (toTranslate, defaultText) { return _this.chartTranslationService.translate(toTranslate, defaultText); },\n };\n // ensure 'restoring' options are not reused when switching chart types\n this.params.chartOptionsToRestore = undefined;\n // set local state used to detect when chart changes\n this.chartType = chartType;\n this.chartThemeName = this.chartController.getChartThemeName();\n this.chartProxy = GridChartComp.createChartProxy(chartProxyParams);\n if (!this.chartProxy) {\n console.warn('AG Grid: invalid chart type supplied: ', chartProxyParams.chartType);\n return;\n }\n var canvas = this.eChart.querySelector('canvas');\n if (canvas) {\n canvas.classList.add('ag-charts-canvas');\n }\n this.chartController.setChartProxy(this.chartProxy);\n this.chartOptionsService = this.createBean(new ChartOptionsService(this.chartController));\n this.titleEdit && this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.getChartThemeName = function () {\n return this.chartController.getChartThemeName();\n };\n GridChartComp.prototype.getChartThemes = function () {\n return this.chartController.getThemes();\n };\n GridChartComp.prototype.getGridOptionsChartThemeOverrides = function () {\n return this.gridOptionsWrapper.getChartThemeOverrides();\n };\n GridChartComp.createChartProxy = function (chartProxyParams) {\n switch (chartProxyParams.chartType) {\n case 'column':\n case 'bar':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return new BarChartProxy(chartProxyParams);\n case 'pie':\n case 'doughnut':\n return new PieChartProxy(chartProxyParams);\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return new AreaChartProxy(chartProxyParams);\n case 'line':\n return new LineChartProxy(chartProxyParams);\n case 'scatter':\n case 'bubble':\n return new ScatterChartProxy(chartProxyParams);\n case 'histogram':\n return new HistogramChartProxy(chartProxyParams);\n case 'columnLineCombo':\n case 'areaColumnCombo':\n case 'customCombo':\n return new ComboChartProxy(chartProxyParams);\n default:\n throw \"AG Grid: Unable to create chart as an invalid chartType = '\" + chartProxyParams.chartType + \"' was supplied.\";\n }\n };\n GridChartComp.prototype.addDialog = function () {\n var _this = this;\n var title = this.chartTranslationService.translate(this.params.pivotChart ? 'pivotChartTitle' : 'rangeChartTitle');\n var _a = this.getBestDialogSize(), width = _a.width, height = _a.height;\n this.chartDialog = new AgDialog({\n resizable: true,\n movable: true,\n maximizable: true,\n title: title,\n width: width,\n height: height,\n component: this,\n centered: true,\n closable: true\n });\n this.getContext().createBean(this.chartDialog);\n this.chartDialog.addEventListener(AgDialog.EVENT_DESTROYED, function () { return _this.destroy(); });\n };\n GridChartComp.prototype.getBestDialogSize = function () {\n var popupParent = this.popupService.getPopupParent();\n var maxWidth = _.getAbsoluteWidth(popupParent) * 0.75;\n var maxHeight = _.getAbsoluteHeight(popupParent) * 0.75;\n var ratio = 0.553;\n var chart = this.chartProxy.getChart();\n var width = this.params.insideDialog ? 850 : chart.width;\n var height = this.params.insideDialog ? 470 : chart.height;\n if (width > maxWidth || height > maxHeight) {\n width = Math.min(width, maxWidth);\n height = Math.round(width * ratio);\n if (height > maxHeight) {\n height = maxHeight;\n width = Math.min(width, Math.round(height / ratio));\n }\n }\n return { width: width, height: height };\n };\n GridChartComp.prototype.addMenu = function () {\n if (!this.params.crossFiltering) {\n this.chartMenu = this.createBean(new ChartMenu(this.eChartContainer, this.eMenuContainer, this.chartController, this.chartOptionsService));\n this.eChartContainer.appendChild(this.chartMenu.getGui());\n }\n };\n GridChartComp.prototype.addTitleEditComp = function () {\n this.titleEdit = this.createBean(new TitleEdit(this.chartMenu));\n this.eTitleEditContainer.appendChild(this.titleEdit.getGui());\n if (this.chartProxy) {\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n }\n };\n GridChartComp.prototype.update = function () {\n if (this.shouldRecreateChart()) {\n this.createChart();\n }\n this.updateChart();\n };\n GridChartComp.prototype.shouldRecreateChart = function () {\n return this.chartType !== this.chartController.getChartType() || this.chartThemeName !== this.chartController.getChartThemeName();\n };\n GridChartComp.prototype.getCurrentChartType = function () {\n return this.chartType;\n };\n GridChartComp.prototype.getChartModel = function () {\n return this.chartController.getChartModel();\n };\n GridChartComp.prototype.getChartImageDataURL = function (fileFormat) {\n return this.chartProxy.getChartImageDataURL(fileFormat);\n };\n GridChartComp.prototype.updateChart = function () {\n var _this = this;\n var chartProxy = this.chartProxy;\n var selectedCols = this.chartController.getSelectedValueColState();\n var fields = selectedCols.map(function (c) { return ({ colId: c.colId, displayName: c.displayName }); });\n var data = this.chartController.getChartData();\n var chartEmpty = this.handleEmptyChart(data, fields);\n if (chartEmpty) {\n return;\n }\n var chartUpdateParams = this.chartController.getChartUpdateParams();\n chartProxy.update(chartUpdateParams);\n this.chartProxy.getChart().waitForUpdate().then(function () {\n _this.chartController.raiseChartUpdatedEvent();\n });\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.handleEmptyChart = function (data, fields) {\n var pivotModeDisabled = this.chartController.isPivotChart() && !this.chartController.isPivotMode();\n var minFieldsRequired = 1;\n if (this.chartController.isActiveXYChart()) {\n minFieldsRequired = this.chartController.getChartType() === 'bubble' ? 3 : 2;\n }\n var isEmptyChart = fields.length < minFieldsRequired || data.length === 0;\n if (this.eChart) {\n var isEmpty = pivotModeDisabled || isEmptyChart;\n _.setDisplayed(this.eChart, !isEmpty);\n _.setDisplayed(this.eEmpty, isEmpty);\n }\n if (pivotModeDisabled) {\n this.eEmpty.innerText = this.chartTranslationService.translate('pivotChartRequiresPivotMode');\n return true;\n }\n if (isEmptyChart) {\n this.eEmpty.innerText = this.chartTranslationService.translate('noDataToChart');\n return true;\n }\n return false;\n };\n GridChartComp.prototype.downloadChart = function (dimensions, fileName, fileFormat) {\n this.chartProxy.downloadChart(dimensions, fileName, fileFormat);\n };\n GridChartComp.prototype.openChartToolPanel = function (panel) {\n var menuPanel = panel ? CHART_TOOL_PANEL_MENU_OPTIONS[panel] : panel;\n this.chartMenu.showMenu(menuPanel);\n };\n GridChartComp.prototype.closeChartToolPanel = function () {\n this.chartMenu.hideMenu();\n };\n GridChartComp.prototype.getChartId = function () {\n return this.chartController.getChartId();\n };\n GridChartComp.prototype.getUnderlyingChart = function () {\n return this.chartProxy.getChart();\n };\n GridChartComp.prototype.crossFilteringReset = function () {\n this.chartProxy.crossFilteringReset();\n };\n GridChartComp.prototype.setActiveChartCellRange = function (focusEvent) {\n if (this.getGui().contains(focusEvent.relatedTarget)) {\n return;\n }\n this.chartController.setChartRange(true);\n this.gridApi.focusService.clearFocusedCell();\n };\n GridChartComp.prototype.raiseChartCreatedEvent = function () {\n var _this = this;\n var event = Object.freeze({\n type: Events.EVENT_CHART_CREATED,\n chartId: this.chartController.getChartId()\n });\n this.chartProxy.getChart().waitForUpdate().then(function () {\n _this.eventService.dispatchEvent(event);\n });\n };\n GridChartComp.prototype.raiseChartDestroyedEvent = function () {\n var event = Object.freeze({\n type: Events.EVENT_CHART_DESTROYED,\n chartId: this.chartController.getChartId(),\n });\n this.eventService.dispatchEvent(event);\n };\n GridChartComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.chartProxy) {\n this.chartProxy.destroy();\n }\n this.destroyBean(this.chartMenu);\n // don't want to invoke destroy() on the Dialog (prevents destroy loop)\n if (this.chartDialog && this.chartDialog.isAlive()) {\n this.destroyBean(this.chartDialog);\n }\n // if the user is providing containers for the charts, we need to clean up, otherwise the old chart\n // data will still be visible although the chart is no longer bound to the grid\n var eGui = this.getGui();\n _.clearElement(eGui);\n // remove from parent, so if user provided container, we detach from the provided dom element\n _.removeFromParent(eGui);\n this.raiseChartDestroyedEvent();\n };\n GridChartComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$I([\n RefSelector('eChart')\n ], GridChartComp.prototype, \"eChart\", void 0);\n __decorate$I([\n RefSelector('eChartContainer')\n ], GridChartComp.prototype, \"eChartContainer\", void 0);\n __decorate$I([\n RefSelector('eMenuContainer')\n ], GridChartComp.prototype, \"eMenuContainer\", void 0);\n __decorate$I([\n RefSelector('eEmpty')\n ], GridChartComp.prototype, \"eEmpty\", void 0);\n __decorate$I([\n RefSelector('eTitleEditContainer')\n ], GridChartComp.prototype, \"eTitleEditContainer\", void 0);\n __decorate$I([\n Autowired('chartCrossFilterService')\n ], GridChartComp.prototype, \"crossFilterService\", void 0);\n __decorate$I([\n Autowired('chartTranslationService')\n ], GridChartComp.prototype, \"chartTranslationService\", void 0);\n __decorate$I([\n Autowired('gridApi')\n ], GridChartComp.prototype, \"gridApi\", void 0);\n __decorate$I([\n Autowired('popupService')\n ], GridChartComp.prototype, \"popupService\", void 0);\n __decorate$I([\n PostConstruct\n ], GridChartComp.prototype, \"init\", null);\n return GridChartComp;\n}(Component));\n\nvar ALL_AXIS_TYPES = ['number', 'category', 'groupedCategory', 'log', 'time'];\nfunction getLegacyAxisType(chartType) {\n switch (chartType) {\n case 'bar':\n case 'stackedBar':\n case 'normalizedBar':\n return ['number', 'category'];\n case 'groupedBar':\n return ['number', 'groupedCategory'];\n case 'column':\n case 'stackedColumn':\n case 'normalizedColumn':\n case 'line':\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n case 'histogram':\n return ['category', 'number'];\n case 'groupedColumn':\n return ['groupedCategory', 'number'];\n case 'scatter':\n case 'bubble':\n return ['number', 'number'];\n default:\n return undefined;\n }\n}\n\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// the line below is automatically modified during releases - do not modify\n// (see scripts/release/updateChartModel.js)\nvar CURRENT_VERSION = '28.2.0';\nfunction upgradeChartModel(model) {\n model.version;\n if (model.version == null) {\n // Try to guess the version so we can apply the right subset of migrations.\n model.version = heuristicVersionDetection(model);\n }\n model = migrateIfBefore('23.0.0', model, migrateV23);\n model = migrateIfBefore('24.0.0', model, migrateV24);\n model = migrateIfBefore('25.1.0', model, migrateV25_1);\n model = migrateIfBefore('26.0.0', model, migrateV26);\n model = migrateIfBefore('26.1.0', model, migrateV26_1);\n // Switch from iChartOptions to iAgChartOptions....\n model = migrateIfBefore('26.2.0', model, migrateV26_2);\n model = migrateIfBefore('28.0.0', model, migrateV28);\n model = migrateIfBefore('28.2.0', model, migrateV28_2);\n model = cleanup(model);\n // Bump version to latest.\n model = migrateIfBefore(CURRENT_VERSION, model, function (m) { return m; });\n return model;\n}\nfunction migrateV23(model) {\n // https://github.com/ag-grid/ag-grid/commit/76c6744ff2b732d298d1ade73c122188854b5bac\n model = jsonRename('chartOptions.legend.item.marker.type', 'shape', model);\n model = jsonRename('chartOptions.seriesDefaults.marker.type', 'shape', model);\n // https://github.com/ag-grid/ag-grid/commit/7bdf2cfd666acda758a818733a9f9cb35ac1d7a7\n model = jsonRename('chartOptions.legend.padding', 'spacing', model);\n return model;\n}\nfunction migrateV24(model) {\n var _a, _b;\n // https://github.com/ag-grid/ag-grid/commit/f4e854e3dc459400fa00e6da2873cb8e9cfff6fe#\n model = jsonDelete('chartOptions.seriesDefaults.marker.minSize', model);\n var _c = model, chartType = _c.chartType, chartPalette = _c.chartPalette, // Migrate.\n _d = _c.chartOptions, xAxis = _d.xAxis, yAxis = _d.yAxis, chartOptions = __rest(_d, [\"xAxis\", \"yAxis\"]), chartModel = __rest(_c, [\"chartType\", \"chartPalette\", \"chartOptions\"]);\n var axesTypes = getLegacyAxisType(chartType);\n var axes = (_a = axesTypes) === null || _a === void 0 ? void 0 : _a.map(function (type, i) { return (__assign$9({ type: type }, (i === 0 ? xAxis : yAxis))); });\n return __assign$9({ chartType: chartType, chartThemeName: (_b = LEGACY_PALETTES[chartPalette], (_b !== null && _b !== void 0 ? _b : 'ag-default')), chartOptions: __assign$9(__assign$9({}, chartOptions), { axes: axes,\n xAxis: xAxis,\n yAxis: yAxis }) }, chartModel);\n}\nfunction migrateV25_1(model) {\n // https://github.com/ag-grid/ag-grid/commit/61943f9fecbfb5ac1b9a1fd93788f9fdd8687181\n model = jsonRename('chartOptions.seriesDefaults.label.minRequiredAngle', 'minAngle', model);\n return model;\n}\nfunction migrateV26(model) {\n // https://github.com/ag-grid/ag-grid/commit/df2445d88e64cb4e831d6163104a0fa60ccde3b5\n var highlightOptUpdate = function (_a) {\n var dimOpacity = _a.dimOpacity, opts = __rest(_a, [\"dimOpacity\"]);\n return (__assign$9(__assign$9({}, opts), (dimOpacity != null ? { series: { dimOpacity: dimOpacity } } : {})));\n };\n model = jsonMutate('chartOptions.seriesDefaults.highlightStyle', model, highlightOptUpdate);\n // https://github.com/ag-grid/ag-grid/commit/f4e854e3dc459400fa00e6da2873cb8e9cfff6fe#\n model = jsonDelete('chart', model);\n model = jsonDelete('chartOptions.seriesDefaults.tooltipClass', model);\n model = jsonDelete('chartOptions.seriesDefaults.tooltipTracking', model);\n // Cleanup label.rotation === 0, which was treated as 'use the default' on reload prior to 26.\n model = jsonDeleteDefault('chartOptions.axes[].label.rotation', 0, model);\n model = jsonDeleteDefault('chartOptions.axes[].label.rotation', 335, model);\n return model;\n}\nfunction migrateV26_1(model) {\n // https://github.com/ag-grid/ag-grid/commit/df2445d88e64cb4e831d6163104a0fa60ccde3b5\n var highlightOptUpdate = function (_a) {\n var item = _a.item, series = _a.series, opts = __rest(_a, [\"item\", \"series\"]);\n return (__assign$9({ item: __assign$9(__assign$9({}, opts), item) }, (series ? { series: series } : {})));\n };\n model = jsonMutate('chartOptions.seriesDefaults.highlightStyle', model, highlightOptUpdate);\n model = jsonMutate('chartOptions.series[].highlightStyle', model, highlightOptUpdate);\n return model;\n}\nfunction migrateV26_2(model) {\n // https://github.com/ag-grid/ag-grid/commit/8b2e223cb1a687cb6c1d70b9f75f52fa29d00341\n model = jsonMove('chartOptions.seriesDefaults.fill.opacity', 'chartOptions.seriesDefaults.fillOpacity', model);\n model = jsonMove('chartOptions.seriesDefaults.stroke.opacity', 'chartOptions.seriesDefaults.strokeOpacity', model);\n model = jsonMove('chartOptions.seriesDefaults.stroke.width', 'chartOptions.seriesDefaults.strokeWidth', model);\n model = jsonDelete('chartOptions.seriesDefaults.fill', model);\n model = jsonDelete('chartOptions.seriesDefaults.stroke', model);\n model = jsonDelete('chartOptions.seriesDefaults.callout.colors', model);\n model = jsonDelete('chartOptions.xAxis', model);\n model = jsonDelete('chartOptions.yAxis', model);\n var _a = model, chartType = _a.chartType, _b = _a.chartOptions, axes = _b.axes; _b.series; var seriesDefaults = _b.seriesDefaults, otherChartOptions = __rest(_b, [\"axes\", \"series\", \"seriesDefaults\"]), otherModelProps = __rest(_a, [\"chartType\", \"chartOptions\"]);\n // At 26.2.0 combination charts weren't supported, so we can safely assume a single series type.\n // We can't rely on the `series.type` field as it was incorrect (in v25.0.0 line chart has an\n // `area` series).\n var seriesTypes = [getSeriesType(chartType)];\n var chartTypeMixin = {};\n if (!seriesTypes.includes('pie')) {\n var minimalAxis_1 = { top: {}, bottom: {}, left: {}, right: {} };\n var updatedAxes_1 = axes\n .map(function (_a) {\n var _b;\n var type = _a.type, axisProps = __rest(_a, [\"type\"]);\n return (_b = {},\n _b[type] = __assign$9(__assign$9({}, minimalAxis_1), axisProps),\n _b);\n })\n .reduce(merge, {});\n ALL_AXIS_TYPES.filter(function (v) { return updatedAxes_1[v] == null; }).forEach(function (v) {\n updatedAxes_1[v] = __assign$9({}, minimalAxis_1);\n });\n chartTypeMixin.axes = updatedAxes_1;\n }\n var updatedChartOptions = seriesTypes\n .map(function (t) {\n var _a;\n return (_a = {},\n _a[t] = __assign$9(__assign$9(__assign$9({}, chartTypeMixin), { series: seriesDefaults }), otherChartOptions),\n _a);\n })\n .reduce(merge, {});\n model = __assign$9(__assign$9({}, otherModelProps), { chartType: chartType, chartOptions: updatedChartOptions });\n return model;\n}\nfunction migrateV28(model) {\n model = jsonDelete('chartOptions.*.title.padding', model);\n model = jsonDelete('chartOptions.*.subtitle.padding', model);\n model = jsonDelete('chartOptions.*.axes.*.title.padding', model);\n model = jsonBackfill('chartOptions.*.axes.*.title.enabled', false, model);\n return model;\n}\nfunction migrateV28_2(model) {\n model = jsonRename('chartOptions.pie.series.callout', 'calloutLine', model);\n model = jsonRename('chartOptions.pie.series.label', 'calloutLabel', model);\n // series.yKeys => yKey ?\n // series.yNames => yName ?\n return model;\n}\nfunction cleanup(model) {\n // Remove fixed width/height - this has never been supported via UI configuration.\n model = jsonDelete('chartOptions.*.width', model);\n model = jsonDelete('chartOptions.*.height', model);\n model = jsonBackfill('chartOptions.*.axes.category.label.autoRotate', true, model);\n return model;\n}\nfunction heuristicVersionDetection(model) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var modelAny = model;\n if (model.version != null) {\n return model.version;\n }\n var hasKey = function (obj) {\n var keys = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n keys[_i - 1] = arguments[_i];\n }\n return Object.keys(obj || {}).some(function (k) { return keys.includes(k); });\n };\n var chartOptions = modelAny.chartOptions;\n var seriesOptions = hasKey(chartOptions, 'seriesDefaults')\n ? (_a = chartOptions) === null || _a === void 0 ? void 0 : _a.seriesDefaults : (_b = chartOptions) === null || _b === void 0 ? void 0 : _b[Object.keys(chartOptions)[0]];\n var hints = {\n '27.0.0': hasKey(modelAny, 'seriesChartTypes'),\n '26.2.0': !hasKey(chartOptions, 'seriesDefaults'),\n '26.1.0': hasKey((_c = seriesOptions) === null || _c === void 0 ? void 0 : _c.highlightStyle, 'item'),\n '26.0.0': hasKey((_d = seriesOptions) === null || _d === void 0 ? void 0 : _d.highlightStyle, 'series'),\n // '26.0.0': modelAny.chart === undefined,\n '25.1.0': hasKey((_e = seriesOptions) === null || _e === void 0 ? void 0 : _e.label, 'minAngle'),\n '25.0.0': hasKey(modelAny, 'modelType', 'aggFunc', 'unlinkChart', 'suppressChartRanges') ||\n hasKey(seriesOptions, 'lineDash', 'lineDashOffset'),\n '24.0.0': hasKey(modelAny, 'chartThemeName', 'chart') || hasKey(chartOptions, 'series'),\n '23.2.0': hasKey(chartOptions, 'navigator'),\n '23.0.0': hasKey((_h = (_g = (_f = chartOptions) === null || _f === void 0 ? void 0 : _f.legend) === null || _g === void 0 ? void 0 : _g.item) === null || _h === void 0 ? void 0 : _h.marker, 'shape'),\n '22.1.0': hasKey(modelAny, 'chartPalette', 'chartType'),\n };\n // Default to 27.1.0, the last version before we added `version`.\n var defaultVersion = '27.1.0';\n var matchingHints = Object.entries(hints).filter(function (_a) {\n var _b = __read$9(_a, 2); _b[0]; var match = _b[1];\n return match;\n });\n var _j = __read$9(matchingHints[0], 1), _k = _j[0], heuristicVersion = _k === void 0 ? defaultVersion : _k;\n return heuristicVersion;\n}\nfunction migrateIfBefore(maxVersion, model, migration) {\n if (versionNumber(maxVersion) > versionNumber(model.version)) {\n var result = migration(model);\n result.version = maxVersion;\n return result;\n }\n return model;\n}\nfunction versionParts(version) {\n var split = typeof version === 'string' ? version.split('.').map(function (v) { return Number(v); }) : [];\n if (split.length !== 3 || split.some(function (v) { return isNaN(v); })) {\n throw new Error('AG Grid - Illegal version string: ' + version);\n }\n return {\n major: split[0],\n minor: split[1],\n patch: split[2],\n };\n}\nfunction versionNumber(version) {\n var _a = versionParts(version), major = _a.major, minor = _a.minor, patch = _a.patch;\n // Return a number of the form MMmmPP.\n return major * 10000 + minor * 100 + patch;\n}\nfunction jsonDeleteDefault(path, defaultValue, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) {\n if (parent[prop] === defaultValue) {\n delete parent[prop];\n }\n });\n}\nfunction jsonBackfill(path, defaultValue, json) {\n return jsonMutateProperty(path, false, json, function (parent, prop) {\n if (parent[prop] == null) {\n parent[prop] = defaultValue;\n }\n });\n}\nfunction jsonMove(from, to, json) {\n var valueToMove = undefined;\n var valueFound = false;\n json = jsonMutateProperty(from, true, json, function (parent, prop) {\n valueFound = true;\n valueToMove = parent[prop];\n delete parent[prop];\n });\n if (!valueFound) {\n return json;\n }\n return jsonMutateProperty(to, false, json, function (parent, prop) {\n parent[prop] = valueToMove;\n });\n}\nfunction jsonRename(path, renameTo, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) {\n parent[renameTo] = parent[prop];\n delete parent[prop];\n });\n}\nfunction jsonDelete(path, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) { return delete parent[prop]; });\n}\nfunction jsonMutateProperty(path, skipMissing, json, mutator) {\n var pathElements = path instanceof Array ? path : path.split('.');\n var parentPathElements = pathElements.slice(0, pathElements.length - 1);\n var targetName = pathElements[pathElements.length - 1];\n return jsonMutate(parentPathElements, json, function (parent) {\n var hasProperty = Object.keys(parent).includes(targetName);\n if (skipMissing && !hasProperty) {\n return parent;\n }\n var result = __assign$9({}, parent);\n mutator(result, targetName);\n return result;\n });\n}\nfunction jsonMutate(path, json, mutator) {\n var e_1, _a;\n var pathElements = path instanceof Array ? path : path.split('.');\n // Clone to avoid mutating original input.\n json = __assign$9({}, json);\n if (pathElements.length === 0) {\n return mutator(json);\n }\n else if (pathElements[0].startsWith('{')) {\n var pathOptions = pathElements[0].substring(1, pathElements[0].lastIndexOf('}')).split(',');\n try {\n for (var pathOptions_1 = __values$3(pathOptions), pathOptions_1_1 = pathOptions_1.next(); !pathOptions_1_1.done; pathOptions_1_1 = pathOptions_1.next()) {\n var pathOption = pathOptions_1_1.value;\n if (json[pathOption] != null) {\n json[pathOption] = jsonMutate(pathElements.slice(1), json[pathOption], mutator);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pathOptions_1_1 && !pathOptions_1_1.done && (_a = pathOptions_1.return)) _a.call(pathOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else if (pathElements[0].endsWith('[]')) {\n var arrayName = pathElements[0].substring(0, path[0].indexOf('['));\n if (json[arrayName] instanceof Array) {\n json[arrayName] = json[arrayName].map(function (v) { return jsonMutate(pathElements.slice(1), v, mutator); });\n }\n }\n else if (pathElements[0] === '*') {\n for (var jsonProp in json) {\n json[jsonProp] = jsonMutate(pathElements.slice(1), json[jsonProp], mutator);\n }\n }\n else if (json[pathElements[0]] != null) {\n json[pathElements[0]] = jsonMutate(pathElements.slice(1), json[pathElements[0]], mutator);\n }\n return json;\n}\nvar merge = function (r, n) { return (__assign$9(__assign$9({}, r), n)); };\n// Precise legacy palette fills/strokes can be found here for future reference:\n// https://github.com/ag-grid/ag-grid/blob/b22.1.0/enterprise-modules/charts/src/charts/chart/palettes.ts\nvar LEGACY_PALETTES = {\n borneo: 'ag-default',\n material: 'ag-material',\n pastel: 'ag-pastel',\n bright: 'ag-vivid',\n flat: 'ag-solar',\n};\n\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartService = /** @class */ (function (_super) {\n __extends$$(ChartService, _super);\n function ChartService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we destroy all charts bound to this grid when grid is destroyed. activeCharts contains all charts, including\n // those in developer provided containers.\n _this.activeCharts = new Set();\n _this.activeChartComps = new Set();\n // this shared (singleton) context is used by cross filtering in line and area charts\n _this.crossFilteringContext = {\n lastSelectedChartId: '',\n };\n return _this;\n }\n ChartService.prototype.getChartModels = function () {\n var models = [];\n var versionedModel = function (c) {\n return __assign$8(__assign$8({}, c), { version: CURRENT_VERSION });\n };\n this.activeChartComps.forEach(function (c) { return models.push(versionedModel(c.getChartModel())); });\n return models;\n };\n ChartService.prototype.getChartRef = function (chartId) {\n var chartRef;\n this.activeCharts.forEach(function (cr) {\n if (cr.chartId === chartId) {\n chartRef = cr;\n }\n });\n return chartRef;\n };\n ChartService.prototype.getChartImageDataURL = function (params) {\n var url;\n this.activeChartComps.forEach(function (c) {\n if (c.getChartId() === params.chartId) {\n url = c.getChartImageDataURL(params.fileFormat);\n }\n });\n return url;\n };\n ChartService.prototype.downloadChart = function (params) {\n var _a;\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === params.chartId; });\n (_a = chartComp) === null || _a === void 0 ? void 0 : _a.downloadChart(params.dimensions, params.fileName, params.fileFormat);\n };\n ChartService.prototype.openChartToolPanel = function (params) {\n var _a;\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === params.chartId; });\n (_a = chartComp) === null || _a === void 0 ? void 0 : _a.openChartToolPanel(params.panel);\n };\n ChartService.prototype.closeChartToolPanel = function (chartId) {\n var _a;\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === chartId; });\n (_a = chartComp) === null || _a === void 0 ? void 0 : _a.closeChartToolPanel();\n };\n ChartService.prototype.createChartFromCurrentRange = function (chartType) {\n if (chartType === void 0) { chartType = 'groupedColumn'; }\n var selectedRange = this.getSelectedRange();\n return this.createChart(selectedRange, chartType);\n };\n ChartService.prototype.restoreChart = function (model, chartContainer) {\n var _this = this;\n if (!model) {\n console.warn(\"AG Grid - unable to restore chart as no chart model is provided\");\n return;\n }\n if (model.version !== CURRENT_VERSION) {\n model = upgradeChartModel(model);\n }\n var params = {\n cellRange: model.cellRange,\n chartType: model.chartType,\n chartThemeName: model.chartThemeName,\n chartContainer: chartContainer,\n suppressChartRanges: model.suppressChartRanges,\n aggFunc: model.aggFunc,\n unlinkChart: model.unlinkChart,\n seriesChartTypes: model.seriesChartTypes\n };\n var getCellRange = function (cellRangeParams) {\n return _this.rangeService\n ? _this.rangeService.createCellRangeFromCellRangeParams(cellRangeParams)\n : undefined;\n };\n if (model.modelType === 'pivot') {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var columns = this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); });\n var chartAllRangeParams = {\n rowStartIndex: null,\n rowStartPinned: undefined,\n rowEndIndex: null,\n rowEndPinned: undefined,\n columns: columns\n };\n var cellRange_1 = getCellRange(chartAllRangeParams);\n if (!cellRange_1) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange_1, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, undefined, params.unlinkChart, false, model.chartOptions);\n }\n var cellRange = getCellRange(params.cellRange);\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, undefined, params.unlinkChart, false, model.chartOptions, model.chartPalette, params.seriesChartTypes);\n };\n ChartService.prototype.createRangeChart = function (params) {\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(params.cellRange)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, undefined, undefined, undefined, params.seriesChartTypes);\n };\n ChartService.prototype.createPivotChart = function (params) {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var chartAllRangeParams = {\n rowStartIndex: null,\n rowStartPinned: undefined,\n rowEndIndex: null,\n rowEndPinned: undefined,\n columns: this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); })\n };\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(chartAllRangeParams)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, params.chartThemeOverrides, params.unlinkChart);\n };\n ChartService.prototype.createCrossFilterChart = function (params) {\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(params.cellRange)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n var crossFiltering = true;\n var suppressChartRangesSupplied = typeof params.suppressChartRanges !== 'undefined' && params.suppressChartRanges !== null;\n var suppressChartRanges = suppressChartRangesSupplied ? params.suppressChartRanges : true;\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, crossFiltering);\n };\n ChartService.prototype.createChart = function (cellRange, chartType, chartThemeName, pivotChart, suppressChartRanges, container, aggFunc, chartThemeOverrides, unlinkChart, crossFiltering, chartOptionsToRestore, chartPaletteToRestore, seriesChartTypes) {\n var _this = this;\n if (pivotChart === void 0) { pivotChart = false; }\n if (suppressChartRanges === void 0) { suppressChartRanges = false; }\n if (unlinkChart === void 0) { unlinkChart = false; }\n if (crossFiltering === void 0) { crossFiltering = false; }\n var createChartContainerFunc = this.gridOptionsWrapper.getCreateChartContainerFunc();\n var params = {\n chartId: this.generateId(),\n pivotChart: pivotChart,\n cellRange: cellRange,\n chartType: chartType,\n chartThemeName: chartThemeName,\n insideDialog: !(container || createChartContainerFunc),\n suppressChartRanges: suppressChartRanges,\n aggFunc: aggFunc,\n chartThemeOverrides: chartThemeOverrides,\n unlinkChart: unlinkChart,\n crossFiltering: crossFiltering,\n crossFilteringContext: this.crossFilteringContext,\n chartOptionsToRestore: chartOptionsToRestore,\n chartPaletteToRestore: chartPaletteToRestore,\n seriesChartTypes: seriesChartTypes,\n crossFilteringResetCallback: function () { return _this.activeChartComps.forEach(function (c) { return c.crossFilteringReset(); }); }\n };\n var chartComp = new GridChartComp(params);\n this.context.createBean(chartComp);\n var chartRef = this.createChartRef(chartComp);\n if (container) {\n // if container exists, means developer initiated chart create via API, so place in provided container\n container.appendChild(chartComp.getGui());\n // if the chart container was placed outside of an element that\n // has the grid's theme, we manually add the current theme to\n // make sure all styles for the chartMenu are rendered correctly\n var theme = this.environment.getTheme();\n if (theme.el && !theme.el.contains(container)) {\n container.classList.add(theme.theme);\n }\n }\n else if (createChartContainerFunc) {\n // otherwise user created chart via grid UI, check if developer provides containers (eg if the application\n // is using its own dialogs rather than the grid provided dialogs)\n createChartContainerFunc(chartRef);\n }\n else {\n // add listener to remove from active charts list when charts are destroyed, e.g. closing chart dialog\n chartComp.addEventListener(GridChartComp.EVENT_DESTROYED, function () {\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n });\n }\n return chartRef;\n };\n ChartService.prototype.createChartRef = function (chartComp) {\n var _this = this;\n var chartRef = {\n destroyChart: function () {\n if (_this.activeCharts.has(chartRef)) {\n _this.context.destroyBean(chartComp);\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n }\n },\n chartElement: chartComp.getGui(),\n chart: chartComp.getUnderlyingChart(),\n chartId: chartComp.getChartModel().chartId\n };\n this.activeCharts.add(chartRef);\n this.activeChartComps.add(chartComp);\n return chartRef;\n };\n ChartService.prototype.getSelectedRange = function () {\n var ranges = this.rangeService.getCellRanges();\n return ranges.length > 0 ? ranges[0] : {};\n };\n ChartService.prototype.generateId = function () {\n return 'id-' + Math.random().toString(36).substr(2, 16);\n };\n ChartService.prototype.destroyAllActiveCharts = function () {\n this.activeCharts.forEach(function (chart) { return chart.destroyChart(); });\n };\n __decorate$H([\n Optional('rangeService')\n ], ChartService.prototype, \"rangeService\", void 0);\n __decorate$H([\n Autowired('columnModel')\n ], ChartService.prototype, \"columnModel\", void 0);\n __decorate$H([\n Autowired('environment')\n ], ChartService.prototype, \"environment\", void 0);\n __decorate$H([\n PreDestroy\n ], ChartService.prototype, \"destroyAllActiveCharts\", null);\n ChartService = __decorate$H([\n Bean('chartService')\n ], ChartService);\n return ChartService;\n}(BeanStub));\n\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartTranslationService = /** @class */ (function (_super) {\n __extends$_(ChartTranslationService, _super);\n function ChartTranslationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartTranslationService_1 = ChartTranslationService;\n ChartTranslationService.prototype.translate = function (toTranslate, defaultText) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var defaultTranslation = ChartTranslationService_1.DEFAULT_TRANSLATIONS[toTranslate] || defaultText;\n return translate(toTranslate, defaultTranslation);\n };\n var ChartTranslationService_1;\n ChartTranslationService.DEFAULT_TRANSLATIONS = {\n pivotChartTitle: 'Pivot Chart',\n rangeChartTitle: 'Range Chart',\n settings: 'Settings',\n data: 'Data',\n format: 'Format',\n categories: 'Categories',\n defaultCategory: '(None)',\n series: 'Series',\n xyValues: 'X Y Values',\n paired: 'Paired Mode',\n axis: 'Axis',\n navigator: 'Navigator',\n color: 'Color',\n thickness: 'Thickness',\n xType: 'X Type',\n automatic: 'Automatic',\n category: 'Category',\n number: 'Number',\n time: 'Time',\n autoRotate: 'Auto Rotate',\n xRotation: 'X Rotation',\n yRotation: 'Y Rotation',\n ticks: 'Ticks',\n width: 'Width',\n height: 'Height',\n length: 'Length',\n padding: 'Padding',\n spacing: 'Spacing',\n chart: 'Chart',\n title: 'Title',\n titlePlaceholder: 'Chart title - double click to edit',\n background: 'Background',\n font: 'Font',\n top: 'Top',\n right: 'Right',\n bottom: 'Bottom',\n left: 'Left',\n labels: 'Labels',\n size: 'Size',\n shape: 'Shape',\n minSize: 'Minimum Size',\n maxSize: 'Maximum Size',\n legend: 'Legend',\n position: 'Position',\n markerSize: 'Marker Size',\n markerStroke: 'Marker Stroke',\n markerPadding: 'Marker Padding',\n itemSpacing: 'Item Spacing',\n itemPaddingX: 'Item Padding X',\n itemPaddingY: 'Item Padding Y',\n layoutHorizontalSpacing: 'Horizontal Spacing',\n layoutVerticalSpacing: 'Vertical Spacing',\n strokeWidth: 'Stroke Width',\n offset: 'Offset',\n offsets: 'Offsets',\n tooltips: 'Tooltips',\n callout: 'Callout',\n markers: 'Markers',\n shadow: 'Shadow',\n blur: 'Blur',\n xOffset: 'X Offset',\n yOffset: 'Y Offset',\n lineWidth: 'Line Width',\n lineDash: 'Line Dash',\n normal: 'Normal',\n bold: 'Bold',\n italic: 'Italic',\n boldItalic: 'Bold Italic',\n predefined: 'Predefined',\n fillOpacity: 'Fill Opacity',\n strokeOpacity: 'Line Opacity',\n histogramBinCount: 'Bin count',\n columnGroup: 'Column',\n barGroup: 'Bar',\n pieGroup: 'Pie',\n lineGroup: 'Line',\n scatterGroup: 'X Y (Scatter)',\n areaGroup: 'Area',\n histogramGroup: 'Histogram',\n combinationGroup: 'Combination',\n groupedColumnTooltip: 'Grouped',\n stackedColumnTooltip: 'Stacked',\n normalizedColumnTooltip: '100% Stacked',\n groupedBarTooltip: 'Grouped',\n stackedBarTooltip: 'Stacked',\n normalizedBarTooltip: '100% Stacked',\n pieTooltip: 'Pie',\n doughnutTooltip: 'Doughnut',\n lineTooltip: 'Line',\n groupedAreaTooltip: 'Area',\n stackedAreaTooltip: 'Stacked',\n normalizedAreaTooltip: '100% Stacked',\n scatterTooltip: 'Scatter',\n bubbleTooltip: 'Bubble',\n histogramTooltip: 'Histogram',\n columnLineComboTooltip: 'Column & Line',\n areaColumnComboTooltip: 'Area & Column',\n customComboTooltip: 'Custom Combination',\n noDataToChart: 'No data available to be charted.',\n pivotChartRequiresPivotMode: 'Pivot Chart requires Pivot Mode enabled.',\n chartSettingsToolbarTooltip: 'Menu',\n chartLinkToolbarTooltip: 'Linked to Grid',\n chartUnlinkToolbarTooltip: 'Unlinked from Grid',\n chartDownloadToolbarTooltip: 'Download Chart',\n histogramFrequency: \"Frequency\",\n seriesChartType: 'Series Chart Type',\n seriesType: 'Series Type',\n secondaryAxis: 'Secondary Axis',\n };\n ChartTranslationService = ChartTranslationService_1 = __decorate$G([\n Bean(\"chartTranslationService\")\n ], ChartTranslationService);\n return ChartTranslationService;\n}(BeanStub));\n\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartCrossFilterService = /** @class */ (function (_super) {\n __extends$Z(ChartCrossFilterService, _super);\n function ChartCrossFilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartCrossFilterService_1 = ChartCrossFilterService;\n ChartCrossFilterService.prototype.filter = function (event, reset) {\n if (reset === void 0) { reset = false; }\n var filterModel = this.gridApi.getFilterModel();\n // filters should be reset when user clicks on canvas background\n if (reset) {\n this.resetFilters(filterModel);\n return;\n }\n var colId = ChartCrossFilterService_1.extractFilterColId(event);\n if (this.isValidColumnFilter(colId)) {\n // update filters based on current chart selections\n this.updateFilters(filterModel, event, colId);\n }\n else {\n console.warn(\"AG Grid: cross filtering requires a 'agSetColumnFilter' or 'agMultiColumnFilter' \" +\n \"to be defined on the column with id: '\" + colId + \"'\");\n }\n };\n ChartCrossFilterService.prototype.resetFilters = function (filterModel) {\n var filtersExist = Object.keys(filterModel).length > 0;\n if (filtersExist) {\n // only reset filters / charts when necessary to prevent undesirable flickering effect\n this.gridApi.setFilterModel(null);\n this.gridApi.onFilterChanged();\n }\n };\n ChartCrossFilterService.prototype.updateFilters = function (filterModel, event, colId) {\n var _a;\n var dataKey = ChartCrossFilterService_1.extractFilterColId(event);\n var rawValue = event.datum[dataKey];\n if (rawValue === undefined) {\n return;\n }\n var selectedValue = rawValue.toString();\n if (event.event.metaKey || event.event.ctrlKey) {\n var existingGridValues = this.getCurrentGridValuesForCategory(colId);\n var valueAlreadyExists = _.includes(existingGridValues, selectedValue);\n var updatedValues = void 0;\n if (valueAlreadyExists) {\n updatedValues = existingGridValues.filter(function (v) { return v !== selectedValue; });\n }\n else {\n updatedValues = existingGridValues;\n updatedValues.push(selectedValue);\n }\n filterModel[colId] = this.getUpdatedFilterModel(colId, updatedValues);\n }\n else {\n var updatedValues = [selectedValue];\n filterModel = (_a = {}, _a[colId] = this.getUpdatedFilterModel(colId, updatedValues), _a);\n }\n this.gridApi.setFilterModel(filterModel);\n };\n ChartCrossFilterService.prototype.getUpdatedFilterModel = function (colId, updatedValues) {\n var columnFilterType = this.getColumnFilterType(colId);\n if (columnFilterType === 'agMultiColumnFilter') {\n return { filterType: 'multi', filterModels: [null, { filterType: 'set', values: updatedValues }] };\n }\n return { filterType: 'set', values: updatedValues };\n };\n ChartCrossFilterService.prototype.getCurrentGridValuesForCategory = function (colId) {\n var _this = this;\n var filteredValues = [];\n var column = this.getColumnById(colId);\n this.gridApi.forEachNodeAfterFilter(function (rowNode) {\n if (column && !rowNode.group) {\n var value = _this.valueService.getValue(column, rowNode) + '';\n if (!filteredValues.includes(value)) {\n filteredValues.push(value);\n }\n }\n });\n return filteredValues;\n };\n ChartCrossFilterService.extractFilterColId = function (event) {\n return event.xKey || event.calloutLabelKey;\n };\n ChartCrossFilterService.prototype.isValidColumnFilter = function (colId) {\n if (colId.indexOf('-filtered-out')) {\n colId = colId.replace('-filtered-out', '');\n }\n var filterType = this.getColumnFilterType(colId);\n if (typeof filterType === 'boolean') {\n return filterType;\n }\n return _.includes(['agSetColumnFilter', 'agMultiColumnFilter'], filterType);\n };\n ChartCrossFilterService.prototype.getColumnFilterType = function (colId) {\n var gridColumn = this.getColumnById(colId);\n if (gridColumn) {\n var colDef = gridColumn.getColDef();\n return colDef.filter != null ? colDef.filter : colDef.filterFramework;\n }\n };\n ChartCrossFilterService.prototype.getColumnById = function (colId) {\n return this.columnModel.getGridColumn(colId);\n };\n var ChartCrossFilterService_1;\n __decorate$F([\n Autowired('gridApi')\n ], ChartCrossFilterService.prototype, \"gridApi\", void 0);\n __decorate$F([\n Autowired('columnModel')\n ], ChartCrossFilterService.prototype, \"columnModel\", void 0);\n __decorate$F([\n Autowired('valueService')\n ], ChartCrossFilterService.prototype, \"valueService\", void 0);\n ChartCrossFilterService = ChartCrossFilterService_1 = __decorate$F([\n Bean(\"chartCrossFilterService\")\n ], ChartCrossFilterService);\n return ChartCrossFilterService;\n}(BeanStub));\n\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$2 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$8(arguments[i]));\n return ar;\n};\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar RangeService = /** @class */ (function (_super) {\n __extends$Y(RangeService, _super);\n function RangeService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellRanges = [];\n _this.bodyScrollListener = _this.onBodyScroll.bind(_this);\n _this.dragging = false;\n _this.intersectionRange = false; // When dragging ends, the current range will be used to intersect all other ranges\n return _this;\n }\n RangeService.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.refreshLastRangeStart.bind(this));\n this.ctrlsService.whenReady(function () {\n var gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCtrl.getBodyViewportElement(),\n scrollAxis: 'xy',\n getVerticalPosition: function () { return gridBodyCtrl.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setVerticalScrollPosition(position); },\n getHorizontalPosition: function () { return gridBodyCtrl.getScrollFeature().getHScrollPosition().left; },\n setHorizontalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setHorizontalScrollPosition(position); },\n shouldSkipVerticalScroll: function () { return _this.gridOptionsWrapper.getDomLayout() !== Constants.DOM_LAYOUT_NORMAL; },\n shouldSkipHorizontalScroll: function () { return gridBodyCtrl.getScrollFeature().isHorizontalScrollShowing(); }\n });\n });\n };\n // Called for both columns loaded & column visibility events\n RangeService.prototype.onColumnsChanged = function () {\n var _this = this;\n // first move start column in last cell range (i.e. series chart range)\n this.refreshLastRangeStart();\n var allColumns = this.columnModel.getAllDisplayedColumns();\n // check that the columns in each range still exist and are visible\n this.cellRanges.forEach(function (cellRange) {\n var beforeCols = cellRange.columns;\n // remove hidden or removed cols from cell range\n cellRange.columns = cellRange.columns.filter(function (col) { return col.isVisible() && allColumns.indexOf(col) !== -1; });\n var colsInRangeChanged = !_.areEqual(beforeCols, cellRange.columns);\n if (colsInRangeChanged) {\n // notify users and other parts of grid (i.e. status panel) that range has changed\n _this.dispatchChangedEvent(false, true, cellRange.id);\n }\n });\n // Remove empty cell ranges\n var countBefore = this.cellRanges.length;\n this.cellRanges = this.cellRanges.filter(function (range) { return range.columns.length > 0; });\n if (countBefore > this.cellRanges.length) {\n this.dispatchChangedEvent(false, true);\n }\n };\n RangeService.prototype.refreshLastRangeStart = function () {\n var lastRange = _.last(this.cellRanges);\n if (!lastRange) {\n return;\n }\n this.refreshRangeStart(lastRange);\n };\n RangeService.prototype.isContiguousRange = function (cellRange) {\n var rangeColumns = cellRange.columns;\n if (!rangeColumns.length) {\n return false;\n }\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = rangeColumns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n return _.last(allPositions) - allPositions[0] + 1 === rangeColumns.length;\n };\n RangeService.prototype.getRangeStartRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.startRow : cellRange.endRow;\n }\n var rowPinned = this.pinnedRowModel.getPinnedTopRowCount() > 0 ? Constants.PINNED_TOP : null;\n return { rowIndex: 0, rowPinned: rowPinned };\n };\n RangeService.prototype.getRangeEndRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.endRow : cellRange.startRow;\n }\n var pinnedBottomRowCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedBottom = pinnedBottomRowCount > 0;\n if (pinnedBottom) {\n return {\n rowIndex: pinnedBottomRowCount - 1,\n rowPinned: Constants.PINNED_BOTTOM\n };\n }\n return {\n rowIndex: this.rowModel.getRowCount() - 1,\n rowPinned: null\n };\n };\n RangeService.prototype.setRangeToCell = function (cell, appendRange) {\n if (appendRange === void 0) { appendRange = false; }\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var columns = this.calculateColumnsBetween(cell.column, cell.column);\n if (!columns) {\n return;\n }\n var suppressMultiRangeSelections = this.gridOptionsWrapper.isSuppressMultiRangeSelection();\n // if not appending, then clear previous range selections\n if (suppressMultiRangeSelections || !appendRange || _.missing(this.cellRanges)) {\n this.removeAllCellRanges(true);\n }\n var rowForCell = {\n rowIndex: cell.rowIndex,\n rowPinned: cell.rowPinned\n };\n var cellRange = {\n startRow: rowForCell,\n endRow: rowForCell,\n columns: columns,\n startColumn: cell.column\n };\n this.cellRanges.push(cellRange);\n this.setNewestRangeStartCell(cell);\n this.onDragStop();\n this.dispatchChangedEvent(true, true);\n };\n RangeService.prototype.extendLatestRangeToCell = function (cellPosition) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var cellRange = _.last(this.cellRanges);\n this.updateRangeEnd(cellRange, cellPosition);\n };\n RangeService.prototype.updateRangeEnd = function (cellRange, cellPosition, silent) {\n if (silent === void 0) { silent = false; }\n var endColumn = cellPosition.column;\n var colsToAdd = this.calculateColumnsBetween(cellRange.startColumn, endColumn);\n if (!colsToAdd || this.isLastCellOfRange(cellRange, cellPosition)) {\n return;\n }\n cellRange.columns = colsToAdd;\n cellRange.endRow = { rowIndex: cellPosition.rowIndex, rowPinned: cellPosition.rowPinned };\n if (!silent) {\n this.dispatchChangedEvent(true, true, cellRange.id);\n }\n };\n RangeService.prototype.refreshRangeStart = function (cellRange) {\n var startColumn = cellRange.startColumn, columns = cellRange.columns;\n var moveColInCellRange = function (colToMove, moveToFront) {\n var otherCols = cellRange.columns.filter(function (col) { return col !== colToMove; });\n if (colToMove) {\n cellRange.startColumn = colToMove;\n cellRange.columns = moveToFront ? __spread$2([colToMove], otherCols) : __spread$2(otherCols, [colToMove]);\n }\n else {\n cellRange.columns = otherCols;\n }\n };\n var _a = this.getRangeEdgeColumns(cellRange), left = _a.left, right = _a.right;\n var shouldMoveLeftCol = startColumn === columns[0] && startColumn !== left;\n if (shouldMoveLeftCol) {\n moveColInCellRange(left, true);\n return;\n }\n var shouldMoveRightCol = startColumn === _.last(columns) && startColumn === right;\n if (shouldMoveRightCol) {\n moveColInCellRange(right, false);\n return;\n }\n };\n RangeService.prototype.getRangeEdgeColumns = function (cellRange) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allIndices = cellRange.columns\n .map(function (c) { return allColumns.indexOf(c); })\n .filter(function (i) { return i > -1; })\n .sort(function (a, b) { return a - b; });\n return {\n left: allColumns[allIndices[0]],\n right: allColumns[_.last(allIndices)]\n };\n };\n // returns true if successful, false if not successful\n RangeService.prototype.extendLatestRangeInDirection = function (event) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var key = event.key;\n var ctrlKey = event.ctrlKey || event.metaKey;\n var lastRange = _.last(this.cellRanges);\n var startCell = this.newestRangeStartCell;\n var firstCol = lastRange.columns[0];\n var lastCol = _.last(lastRange.columns);\n // find the cell that is at the furthest away corner from the starting cell\n var endCellIndex = lastRange.endRow.rowIndex;\n var endCellFloating = lastRange.endRow.rowPinned;\n var endCellColumn = startCell.column === firstCol ? lastCol : firstCol;\n var endCell = { column: endCellColumn, rowIndex: endCellIndex, rowPinned: endCellFloating };\n var newEndCell = this.cellNavigationService.getNextCellToFocus(key, endCell, ctrlKey);\n // if user is at end of grid, so no cell to extend to, we return false\n if (!newEndCell) {\n return;\n }\n this.setCellRange({\n rowStartIndex: startCell.rowIndex,\n rowStartPinned: startCell.rowPinned,\n rowEndIndex: newEndCell.rowIndex,\n rowEndPinned: newEndCell.rowPinned,\n columnStart: startCell.column,\n columnEnd: newEndCell.column\n });\n return newEndCell;\n };\n RangeService.prototype.setCellRange = function (params) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n this.removeAllCellRanges(true);\n this.addCellRange(params);\n };\n RangeService.prototype.setCellRanges = function (cellRanges) {\n var _this = this;\n if (_.shallowCompare(this.cellRanges, cellRanges)) {\n return;\n }\n this.removeAllCellRanges(true);\n cellRanges.forEach(function (newRange) {\n if (newRange.columns && newRange.startRow) {\n _this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.columns[0]\n });\n }\n _this.cellRanges.push(newRange);\n });\n this.dispatchChangedEvent(false, true);\n };\n RangeService.prototype.setNewestRangeStartCell = function (position) {\n this.newestRangeStartCell = position;\n };\n RangeService.prototype.clearCellRangeCellValues = function (cellRanges) {\n var _this = this;\n if (!cellRanges) {\n cellRanges = this.cellRanges;\n }\n cellRanges.forEach(function (cellRange) {\n _this.forEachRowInRange(cellRange, function (rowPosition) {\n var rowNode = _this.rowPositionUtils.getRowNode(rowPosition);\n if (!rowNode) {\n return;\n }\n for (var i = 0; i < cellRange.columns.length; i++) {\n var column = _this.columnModel.getGridColumn(cellRange.columns[i]);\n if (!column || !column.isCellEditable(rowNode)) {\n return;\n }\n rowNode.setDataValue(column, null, 'rangeService');\n }\n });\n });\n };\n RangeService.prototype.createCellRangeFromCellRangeParams = function (params) {\n var _this = this;\n var columns;\n var startsOnTheRight = false;\n if (params.columns) {\n columns = params.columns.map(function (c) { return _this.columnModel.getColumnWithValidation(c); }).filter(function (c) { return c; });\n }\n else {\n var columnStart = this.columnModel.getColumnWithValidation(params.columnStart);\n var columnEnd = this.columnModel.getColumnWithValidation(params.columnEnd);\n if (!columnStart || !columnEnd) {\n return;\n }\n columns = this.calculateColumnsBetween(columnStart, columnEnd);\n if (columns && columns.length) {\n startsOnTheRight = columns[0] !== columnStart;\n }\n }\n if (!columns) {\n return;\n }\n var startRow = params.rowStartIndex != null ? {\n rowIndex: params.rowStartIndex,\n rowPinned: params.rowStartPinned || null\n } : undefined;\n var endRow = params.rowEndIndex != null ? {\n rowIndex: params.rowEndIndex,\n rowPinned: params.rowEndPinned || null\n } : undefined;\n return {\n startRow: startRow,\n endRow: endRow,\n columns: columns,\n startColumn: startsOnTheRight ? _.last(columns) : columns[0]\n };\n };\n RangeService.prototype.addCellRange = function (params) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var newRange = this.createCellRangeFromCellRangeParams(params);\n if (newRange) {\n if (newRange.startRow) {\n this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.startColumn\n });\n }\n this.cellRanges.push(newRange);\n this.dispatchChangedEvent(false, true, newRange.id);\n }\n };\n RangeService.prototype.getCellRanges = function () {\n return this.cellRanges;\n };\n RangeService.prototype.isEmpty = function () {\n return this.cellRanges.length === 0;\n };\n RangeService.prototype.isMoreThanOneCell = function () {\n var len = this.cellRanges.length;\n if (len === 0) {\n return false;\n }\n if (len > 1) {\n return true; // Assumes a cell range must contain at least one cell\n }\n // only one range, return true if range has more than one\n var range = this.cellRanges[0];\n var startRow = this.getRangeStartRow(range);\n var endRow = this.getRangeEndRow(range);\n return startRow.rowPinned !== endRow.rowPinned ||\n startRow.rowIndex !== endRow.rowIndex ||\n range.columns.length !== 1;\n };\n RangeService.prototype.areAllRangesAbleToMerge = function () {\n var e_1, _a;\n var _this = this;\n var rowToColumnMap = new Map();\n var len = this.cellRanges.length;\n if (len <= 1)\n return true;\n this.cellRanges.forEach(function (range) {\n _this.forEachRowInRange(range, function (row) {\n var rowName = (row.rowPinned || 'normal') + \"_\" + row.rowIndex;\n var columns = rowToColumnMap.get(rowName);\n var currentRangeColIds = range.columns.map(function (col) { return col.getId(); });\n if (columns) {\n var filteredColumns = currentRangeColIds.filter(function (col) { return columns.indexOf(col) === -1; });\n columns.push.apply(columns, __spread$2(filteredColumns));\n }\n else {\n rowToColumnMap.set(rowName, currentRangeColIds);\n }\n });\n });\n var columnsString;\n try {\n for (var _b = __values$2(rowToColumnMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n var currentValString = val.sort().join();\n if (columnsString === undefined) {\n columnsString = currentValString;\n continue;\n }\n if (columnsString !== currentValString) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n RangeService.prototype.forEachRowInRange = function (cellRange, callback) {\n var topRow = this.getRangeStartRow(cellRange);\n var bottomRow = this.getRangeEndRow(cellRange);\n var currentRow = topRow;\n while (currentRow) {\n callback(currentRow);\n if (this.rowPositionUtils.sameRow(currentRow, bottomRow)) {\n break;\n }\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n RangeService.prototype.removeAllCellRanges = function (silent) {\n if (this.isEmpty()) {\n return;\n }\n this.onDragStop();\n this.cellRanges.length = 0;\n if (!silent) {\n this.dispatchChangedEvent(false, true);\n }\n };\n // as the user is dragging outside of the panel, the div starts to scroll, which in turn\n // means we are selection more (or less) cells, but the mouse isn't moving, so we recalculate\n // the selection my mimicking a new mouse event\n RangeService.prototype.onBodyScroll = function () {\n if (this.dragging && this.lastMouseEvent) {\n this.onDragging(this.lastMouseEvent);\n }\n };\n RangeService.prototype.isCellInAnyRange = function (cell) {\n return this.getCellRangeCount(cell) > 0;\n };\n RangeService.prototype.isCellInSpecificRange = function (cell, range) {\n var columnInRange = range.columns !== null && _.includes(range.columns, cell.column);\n var rowInRange = this.isRowInRange(cell.rowIndex, cell.rowPinned, range);\n return columnInRange && rowInRange;\n };\n RangeService.prototype.isLastCellOfRange = function (cellRange, cell) {\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isLastRow = cell.rowIndex === lastRow.rowIndex && cell.rowPinned === lastRow.rowPinned;\n var rangeFirstIndexColumn = cellRange.columns[0];\n var rangeLastIndexColumn = _.last(cellRange.columns);\n var lastRangeColumn = cellRange.startColumn === rangeFirstIndexColumn ? rangeLastIndexColumn : rangeFirstIndexColumn;\n var isLastColumn = cell.column === lastRangeColumn;\n return isLastColumn && isLastRow;\n };\n RangeService.prototype.isBottomRightCell = function (cellRange, cell) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = cellRange.columns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isRightColumn = allColumns.indexOf(cell.column) === _.last(allPositions);\n var isLastRow = cell.rowIndex === lastRow.rowIndex && _.makeNull(cell.rowPinned) === _.makeNull(lastRow.rowPinned);\n return isRightColumn && isLastRow;\n };\n // returns the number of ranges this cell is in\n RangeService.prototype.getCellRangeCount = function (cell) {\n var _this = this;\n if (this.isEmpty()) {\n return 0;\n }\n return this.cellRanges.filter(function (cellRange) { return _this.isCellInSpecificRange(cell, cellRange); }).length;\n };\n RangeService.prototype.isRowInRange = function (rowIndex, floating, cellRange) {\n var firstRow = this.getRangeStartRow(cellRange);\n var lastRow = this.getRangeEndRow(cellRange);\n var thisRow = { rowIndex: rowIndex, rowPinned: floating || null };\n // compare rowPinned with == instead of === because it can be `null` or `undefined`\n var equalsFirstRow = thisRow.rowIndex === firstRow.rowIndex && thisRow.rowPinned == firstRow.rowPinned;\n var equalsLastRow = thisRow.rowIndex === lastRow.rowIndex && thisRow.rowPinned == lastRow.rowPinned;\n if (equalsFirstRow || equalsLastRow) {\n return true;\n }\n var afterFirstRow = !this.rowPositionUtils.before(thisRow, firstRow);\n var beforeLastRow = this.rowPositionUtils.before(thisRow, lastRow);\n return afterFirstRow && beforeLastRow;\n };\n RangeService.prototype.getDraggingRange = function () {\n return this.draggingRange;\n };\n RangeService.prototype.onDragStart = function (mouseEvent) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n // ctrlKey for windows, metaKey for Apple\n var multiKeyPressed = ctrlKey || metaKey;\n var allowMulti = !this.gridOptionsWrapper.isSuppressMultiRangeSelection();\n var multiSelectKeyPressed = allowMulti ? multiKeyPressed : false;\n var extendRange = shiftKey && _.existsAndNotEmpty(this.cellRanges);\n if (!multiSelectKeyPressed && (!extendRange || _.exists(_.last(this.cellRanges).type))) {\n this.removeAllCellRanges(true);\n }\n // The DragService used by this service (RangeService), automatically adds a `mousemove`\n // listener the document of the page that will then call `onDragging`. If you are in a shadow DOM\n // DOM elements outside your component's wrapper will be inaccessible to you, so here, we add a \n // temporary `mousemove` listener to the gridPanel to be able to update the last hovered cell.\n this.cellHoverListener = this.addManagedListener(this.ctrlsService.getGridCtrl().getGui(), 'mousemove', this.updateValuesOnMove.bind(this));\n // This is the mouse start event, so we need to call `updateValuesOnMove` \n // manually once to get the necessary variables initiated.\n this.updateValuesOnMove(mouseEvent);\n if (!this.lastCellHovered) {\n return;\n }\n this.dragging = true;\n this.lastMouseEvent = mouseEvent;\n this.intersectionRange = multiSelectKeyPressed && this.getCellRangeCount(this.lastCellHovered) > 1;\n if (!extendRange) {\n this.setNewestRangeStartCell(this.lastCellHovered);\n }\n // if we didn't clear the ranges, then dragging means the user clicked, and when the\n // user clicks it means a range of one cell was created. we need to extend this range\n // rather than creating another range. otherwise we end up with two distinct ranges\n // from a drag operation (one from click, and one from drag).\n if (this.cellRanges.length > 0) {\n this.draggingRange = _.last(this.cellRanges);\n }\n else {\n var mouseRowPosition = {\n rowIndex: this.lastCellHovered.rowIndex,\n rowPinned: this.lastCellHovered.rowPinned\n };\n this.draggingRange = {\n startRow: mouseRowPosition,\n endRow: mouseRowPosition,\n columns: [this.lastCellHovered.column],\n startColumn: this.newestRangeStartCell.column\n };\n this.cellRanges.push(this.draggingRange);\n }\n this.ctrlsService.getGridBodyCtrl().addScrollEventListener(this.bodyScrollListener);\n this.dispatchChangedEvent(true, false, this.draggingRange.id);\n };\n RangeService.prototype.intersectLastRange = function (fromMouseClick) {\n var _this = this;\n // when ranges are created due to a mouse click without drag (happens in cellMouseListener)\n // this method will be called with `fromMouseClick=true`.\n if (fromMouseClick && this.dragging) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressMultiRangeSelection()) {\n return;\n }\n if (this.isEmpty()) {\n return;\n }\n var lastRange = _.last(this.cellRanges);\n var intersectionStartRow = this.getRangeStartRow(lastRange);\n var intersectionEndRow = this.getRangeEndRow(lastRange);\n var newRanges = [];\n this.cellRanges.slice(0, -1).forEach(function (range) {\n var startRow = _this.getRangeStartRow(range);\n var endRow = _this.getRangeEndRow(range);\n var cols = range.columns;\n var intersectCols = cols.filter(function (col) { return lastRange.columns.indexOf(col) === -1; });\n if (intersectCols.length === cols.length) {\n // No overlapping columns, retain previous range\n newRanges.push(range);\n return;\n }\n if (_this.rowPositionUtils.before(intersectionEndRow, startRow) || _this.rowPositionUtils.before(endRow, intersectionStartRow)) {\n // No overlapping rows, retain previous range\n newRanges.push(range);\n return;\n }\n var rangeCountBefore = newRanges.length;\n // Top\n if (_this.rowPositionUtils.before(startRow, intersectionStartRow)) {\n var top_1 = {\n columns: __spread$2(cols),\n startColumn: lastRange.startColumn,\n startRow: __assign$7({}, startRow),\n endRow: _this.cellNavigationService.getRowAbove(intersectionStartRow),\n };\n newRanges.push(top_1);\n }\n // Left & Right (not contiguous with columns)\n if (intersectCols.length > 0) {\n var middle = {\n columns: intersectCols,\n startColumn: _.includes(intersectCols, lastRange.startColumn) ? lastRange.startColumn : intersectCols[0],\n startRow: _this.rowPositionUtils.rowMax([__assign$7({}, intersectionStartRow), __assign$7({}, startRow)]),\n endRow: _this.rowPositionUtils.rowMin([__assign$7({}, intersectionEndRow), __assign$7({}, endRow)]),\n };\n newRanges.push(middle);\n }\n // Bottom\n if (_this.rowPositionUtils.before(intersectionEndRow, endRow)) {\n newRanges.push({\n columns: __spread$2(cols),\n startColumn: lastRange.startColumn,\n startRow: _this.cellNavigationService.getRowBelow(intersectionEndRow),\n endRow: __assign$7({}, endRow),\n });\n }\n if ((newRanges.length - rangeCountBefore) === 1) {\n // Only one range result from the intersection.\n // Copy the source range's id, since essentially we just reduced it's size\n newRanges[newRanges.length - 1].id = range.id;\n }\n });\n this.cellRanges = newRanges;\n // when this is called because of a clickEvent and the ranges were changed\n // we need to force a dragEnd event to update the UI.\n if (fromMouseClick) {\n this.dispatchChangedEvent(false, true);\n }\n };\n RangeService.prototype.updateValuesOnMove = function (mouseEvent) {\n var cell = this.mouseEventService.getCellPositionForEvent(mouseEvent);\n this.cellHasChanged = false;\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n if (this.lastCellHovered) {\n this.cellHasChanged = true;\n }\n this.lastCellHovered = cell;\n };\n RangeService.prototype.onDragging = function (mouseEvent) {\n var _this = this;\n if (!this.dragging || !mouseEvent) {\n return;\n }\n this.lastMouseEvent = mouseEvent;\n var cellPosition = this.lastCellHovered;\n var isMouseAndStartInPinned = function (position) {\n return cellPosition && cellPosition.rowPinned === position && _this.newestRangeStartCell.rowPinned === position;\n };\n var skipVerticalScroll = isMouseAndStartInPinned('top') || isMouseAndStartInPinned('bottom');\n this.autoScrollService.check(mouseEvent, skipVerticalScroll);\n if (!this.cellHasChanged) {\n return;\n }\n var columns = this.calculateColumnsBetween(this.newestRangeStartCell.column, cellPosition.column);\n if (!columns) {\n return;\n }\n this.draggingRange.endRow = {\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned\n };\n this.draggingRange.columns = columns;\n this.dispatchChangedEvent(false, false, this.draggingRange.id);\n };\n RangeService.prototype.onDragStop = function () {\n if (this.cellHoverListener) {\n this.cellHoverListener();\n this.cellHoverListener = undefined;\n }\n if (!this.dragging) {\n return;\n }\n var id = this.draggingRange.id;\n this.autoScrollService.ensureCleared();\n this.ctrlsService.getGridBodyCtrl().removeScrollEventListener(this.bodyScrollListener);\n this.lastMouseEvent = null;\n this.dragging = false;\n this.draggingRange = undefined;\n this.lastCellHovered = undefined;\n if (this.intersectionRange) {\n this.intersectionRange = false;\n this.intersectLastRange();\n }\n this.dispatchChangedEvent(false, true, id);\n };\n RangeService.prototype.dispatchChangedEvent = function (started, finished, id) {\n var event = Object.freeze({\n type: Events.EVENT_RANGE_SELECTION_CHANGED,\n started: started,\n finished: finished,\n id: id,\n });\n this.eventService.dispatchEvent(event);\n };\n RangeService.prototype.calculateColumnsBetween = function (columnFrom, columnTo) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isSameColumn = columnFrom === columnTo;\n var fromIndex = allColumns.indexOf(columnFrom);\n if (fromIndex < 0) {\n console.warn(\"AG Grid: column \" + columnFrom.getId() + \" is not visible\");\n return;\n }\n var toIndex = isSameColumn ? fromIndex : allColumns.indexOf(columnTo);\n if (toIndex < 0) {\n console.warn(\"AG Grid: column \" + columnTo.getId() + \" is not visible\");\n return;\n }\n if (isSameColumn) {\n return [columnFrom];\n }\n var firstIndex = Math.min(fromIndex, toIndex);\n var lastIndex = firstIndex === fromIndex ? toIndex : fromIndex;\n var columns = [];\n for (var i = firstIndex; i <= lastIndex; i++) {\n columns.push(allColumns[i]);\n }\n return columns;\n };\n __decorate$E([\n Autowired('rowModel')\n ], RangeService.prototype, \"rowModel\", void 0);\n __decorate$E([\n Autowired('columnModel')\n ], RangeService.prototype, \"columnModel\", void 0);\n __decorate$E([\n Autowired('mouseEventService')\n ], RangeService.prototype, \"mouseEventService\", void 0);\n __decorate$E([\n Autowired('cellNavigationService')\n ], RangeService.prototype, \"cellNavigationService\", void 0);\n __decorate$E([\n Autowired(\"pinnedRowModel\")\n ], RangeService.prototype, \"pinnedRowModel\", void 0);\n __decorate$E([\n Autowired('rowPositionUtils')\n ], RangeService.prototype, \"rowPositionUtils\", void 0);\n __decorate$E([\n Autowired('cellPositionUtils')\n ], RangeService.prototype, \"cellPositionUtils\", void 0);\n __decorate$E([\n Autowired('ctrlsService')\n ], RangeService.prototype, \"ctrlsService\", void 0);\n __decorate$E([\n PostConstruct\n ], RangeService.prototype, \"init\", null);\n RangeService = __decorate$E([\n Bean('rangeService')\n ], RangeService);\n return RangeService;\n}(BeanStub));\n\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AbstractSelectionHandle = /** @class */ (function (_super) {\n __extends$X(AbstractSelectionHandle, _super);\n function AbstractSelectionHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.changedCalculatedValues = false;\n _this.dragging = false;\n _this.shouldDestroyOnEndDragging = false;\n return _this;\n }\n AbstractSelectionHandle.prototype.init = function () {\n var _this = this;\n this.dragService.addDragSource({\n dragStartPixels: 0,\n eElement: this.getGui(),\n onDragStart: this.onDragStart.bind(this),\n onDragging: function (e) {\n _this.dragging = true;\n _this.rangeService.autoScrollService.check(e);\n if (_this.changedCalculatedValues) {\n _this.onDrag(e);\n _this.changedCalculatedValues = false;\n }\n },\n onDragStop: function (e) {\n _this.dragging = false;\n _this.onDragEnd(e);\n _this.clearValues();\n _this.rangeService.autoScrollService.ensureCleared();\n // TODO: this causes a bug where if there are multiple grids in the same page, all of them will\n // be affected by a drag on any. Move it to the root element.\n document.body.classList.remove(_this.getDraggingCssClass());\n if (_this.shouldDestroyOnEndDragging) {\n _this.destroy();\n }\n }\n });\n this.addManagedListener(this.getGui(), 'mousedown', this.preventRangeExtension.bind(this));\n };\n AbstractSelectionHandle.prototype.isDragging = function () {\n return this.dragging;\n };\n AbstractSelectionHandle.prototype.getCellCtrl = function () {\n return this.cellCtrl;\n };\n AbstractSelectionHandle.prototype.setCellCtrl = function (cellComp) {\n this.cellCtrl = cellComp;\n };\n AbstractSelectionHandle.prototype.getCellRange = function () {\n return this.cellRange;\n };\n AbstractSelectionHandle.prototype.setCellRange = function (range) {\n this.cellRange = range;\n };\n AbstractSelectionHandle.prototype.getRangeStartRow = function () {\n return this.rangeStartRow;\n };\n AbstractSelectionHandle.prototype.setRangeStartRow = function (row) {\n this.rangeStartRow = row;\n };\n AbstractSelectionHandle.prototype.getRangeEndRow = function () {\n return this.rangeEndRow;\n };\n AbstractSelectionHandle.prototype.setRangeEndRow = function (row) {\n this.rangeEndRow = row;\n };\n AbstractSelectionHandle.prototype.getLastCellHovered = function () {\n return this.lastCellHovered;\n };\n AbstractSelectionHandle.prototype.preventRangeExtension = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n AbstractSelectionHandle.prototype.onDragStart = function (e) {\n this.cellHoverListener = this.addManagedListener(this.ctrlsService.getGridCtrl().getGui(), 'mousemove', this.updateValuesOnMove.bind(this));\n document.body.classList.add(this.getDraggingCssClass());\n };\n AbstractSelectionHandle.prototype.getDraggingCssClass = function () {\n return \"ag-dragging-\" + (this.type === SelectionHandleType.FILL ? 'fill' : 'range') + \"-handle\";\n };\n AbstractSelectionHandle.prototype.updateValuesOnMove = function (e) {\n var cell = this.mouseEventService.getCellPositionForEvent(e);\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n this.lastCellHovered = cell;\n this.changedCalculatedValues = true;\n };\n AbstractSelectionHandle.prototype.getType = function () {\n return this.type;\n };\n AbstractSelectionHandle.prototype.refresh = function (cellCtrl) {\n var oldCellComp = this.getCellCtrl();\n var eGui = this.getGui();\n var cellRange = _.last(this.rangeService.getCellRanges());\n var start = cellRange.startRow;\n var end = cellRange.endRow;\n if (start && end) {\n var isBefore = this.rowPositionUtils.before(end, start);\n if (isBefore) {\n this.setRangeStartRow(end);\n this.setRangeEndRow(start);\n }\n else {\n this.setRangeStartRow(start);\n this.setRangeEndRow(end);\n }\n }\n if (oldCellComp !== cellCtrl || !_.isVisible(eGui)) {\n this.setCellCtrl(cellCtrl);\n var eParentOfValue = cellCtrl.getComp().getParentOfValue();\n if (eParentOfValue) {\n eParentOfValue.appendChild(eGui);\n }\n }\n this.setCellRange(cellRange);\n };\n AbstractSelectionHandle.prototype.clearValues = function () {\n this.lastCellHovered = undefined;\n this.removeListeners();\n };\n AbstractSelectionHandle.prototype.removeListeners = function () {\n if (this.cellHoverListener) {\n this.cellHoverListener();\n this.cellHoverListener = undefined;\n }\n };\n AbstractSelectionHandle.prototype.destroy = function () {\n if (!this.shouldDestroyOnEndDragging && this.isDragging()) {\n _.setDisplayed(this.getGui(), false);\n this.shouldDestroyOnEndDragging = true;\n return;\n }\n this.shouldDestroyOnEndDragging = false;\n _super.prototype.destroy.call(this);\n this.removeListeners();\n var eGui = this.getGui();\n if (eGui.parentElement) {\n eGui.parentElement.removeChild(eGui);\n }\n };\n __decorate$D([\n Autowired(\"rowRenderer\")\n ], AbstractSelectionHandle.prototype, \"rowRenderer\", void 0);\n __decorate$D([\n Autowired(\"dragService\")\n ], AbstractSelectionHandle.prototype, \"dragService\", void 0);\n __decorate$D([\n Autowired(\"rangeService\")\n ], AbstractSelectionHandle.prototype, \"rangeService\", void 0);\n __decorate$D([\n Autowired(\"mouseEventService\")\n ], AbstractSelectionHandle.prototype, \"mouseEventService\", void 0);\n __decorate$D([\n Autowired(\"columnModel\")\n ], AbstractSelectionHandle.prototype, \"columnModel\", void 0);\n __decorate$D([\n Autowired(\"cellNavigationService\")\n ], AbstractSelectionHandle.prototype, \"cellNavigationService\", void 0);\n __decorate$D([\n Autowired(\"navigationService\")\n ], AbstractSelectionHandle.prototype, \"navigationService\", void 0);\n __decorate$D([\n Autowired('rowPositionUtils')\n ], AbstractSelectionHandle.prototype, \"rowPositionUtils\", void 0);\n __decorate$D([\n Autowired('cellPositionUtils')\n ], AbstractSelectionHandle.prototype, \"cellPositionUtils\", void 0);\n __decorate$D([\n Autowired('ctrlsService')\n ], AbstractSelectionHandle.prototype, \"ctrlsService\", void 0);\n __decorate$D([\n PostConstruct\n ], AbstractSelectionHandle.prototype, \"init\", null);\n return AbstractSelectionHandle;\n}(Component));\n\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$1 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$7(arguments[i]));\n return ar;\n};\nvar FillHandle = /** @class */ (function (_super) {\n __extends$W(FillHandle, _super);\n function FillHandle() {\n var _this = _super.call(this, FillHandle.TEMPLATE) || this;\n _this.markedCells = [];\n _this.cellValues = [];\n _this.isUp = false;\n _this.isLeft = false;\n _this.isReduce = false;\n _this.type = SelectionHandleType.FILL;\n return _this;\n }\n FillHandle.prototype.updateValuesOnMove = function (e) {\n _super.prototype.updateValuesOnMove.call(this, e);\n if (!this.initialXY) {\n this.initialXY = this.mouseEventService.getNormalisedPosition(e);\n }\n var _a = this.initialXY, x = _a.x, y = _a.y;\n var _b = this.mouseEventService.getNormalisedPosition(e), newX = _b.x, newY = _b.y;\n var diffX = Math.abs(x - newX);\n var diffY = Math.abs(y - newY);\n var allowedDirection = this.gridOptionsWrapper.getFillHandleDirection();\n var direction;\n if (allowedDirection === 'xy') {\n direction = diffX > diffY ? 'x' : 'y';\n }\n else {\n direction = allowedDirection;\n }\n if (direction !== this.dragAxis) {\n this.dragAxis = direction;\n this.changedCalculatedValues = true;\n }\n };\n FillHandle.prototype.onDrag = function (e) {\n if (!this.initialPosition) {\n var cellCtrl = this.getCellCtrl();\n if (!cellCtrl) {\n return;\n }\n this.initialPosition = cellCtrl.getCellPosition();\n }\n var lastCellHovered = this.getLastCellHovered();\n if (lastCellHovered) {\n this.markPathFrom(this.initialPosition, lastCellHovered);\n }\n };\n FillHandle.prototype.onDragEnd = function (e) {\n this.initialXY = null;\n if (!this.markedCells.length) {\n return;\n }\n var isX = this.dragAxis === 'x';\n var initialRange = this.getCellRange();\n var colLen = initialRange.columns.length;\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n var finalRange;\n if (!this.isUp && !this.isLeft) {\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: rangeStartRow.rowIndex,\n rowStartPinned: rangeStartRow.rowPinned,\n columnStart: initialRange.columns[0],\n rowEndIndex: isX ? rangeEndRow.rowIndex : this.lastCellMarked.rowIndex,\n rowEndPinned: isX ? rangeEndRow.rowPinned : this.lastCellMarked.rowPinned,\n columnEnd: isX ? this.lastCellMarked.column : initialRange.columns[colLen - 1]\n });\n }\n else {\n var startRow = isX ? rangeStartRow : this.lastCellMarked;\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n columnStart: isX ? this.lastCellMarked.column : initialRange.columns[0],\n rowEndIndex: rangeEndRow.rowIndex,\n rowEndPinned: rangeEndRow.rowPinned,\n columnEnd: initialRange.columns[colLen - 1]\n });\n }\n if (finalRange) {\n // raising fill events for undo / redo\n this.raiseFillStartEvent();\n this.handleValueChanged(initialRange, finalRange, e);\n this.rangeService.setCellRanges([finalRange]);\n this.raiseFillEndEvent(initialRange, finalRange);\n }\n };\n FillHandle.prototype.raiseFillStartEvent = function () {\n var fillStartEvent = {\n type: Events.EVENT_FILL_START\n };\n this.eventService.dispatchEvent(fillStartEvent);\n };\n FillHandle.prototype.raiseFillEndEvent = function (initialRange, finalRange) {\n var fillEndEvent = {\n type: Events.EVENT_FILL_END,\n initialRange: initialRange,\n finalRange: finalRange\n };\n this.eventService.dispatchEvent(fillEndEvent);\n };\n FillHandle.prototype.handleValueChanged = function (initialRange, finalRange, e) {\n var _this = this;\n var initialRangeEndRow = this.rangeService.getRangeEndRow(initialRange);\n var initialRangeStartRow = this.rangeService.getRangeStartRow(initialRange);\n var finalRangeEndRow = this.rangeService.getRangeEndRow(finalRange);\n var finalRangeStartRow = this.rangeService.getRangeStartRow(finalRange);\n var isVertical = this.dragAxis === 'y';\n // if the range is being reduced in size, all we need to do is\n // clear the cells that are no longer part of the range\n if (this.isReduce && !this.gridOptionsWrapper.isSuppressClearOnFillReduction()) {\n var columns = isVertical\n ? initialRange.columns\n : initialRange.columns.filter(function (col) { return finalRange.columns.indexOf(col) < 0; });\n var startRow = isVertical ? this.cellNavigationService.getRowBelow(finalRangeEndRow) : finalRangeStartRow;\n if (startRow) {\n this.clearCellsInRange(startRow, initialRangeEndRow, columns);\n }\n return;\n }\n var withinInitialRange = true;\n var values = [];\n var initialValues = [];\n var idx = 0;\n var resetValues = function () {\n values.length = 0;\n initialValues.length = 0;\n idx = 0;\n };\n var iterateAcrossCells = function (column, columns) {\n var currentRow = _this.isUp ? initialRangeEndRow : initialRangeStartRow;\n var finished = false;\n if (isVertical) {\n withinInitialRange = true;\n resetValues();\n }\n var _loop_1 = function () {\n var rowNode = _this.rowPositionUtils.getRowNode(currentRow);\n if (!rowNode) {\n return \"break\";\n }\n if (isVertical && column) {\n fillValues(values, column, rowNode, function () {\n return !_this.rowPositionUtils.sameRow(currentRow, _this.isUp ? initialRangeStartRow : initialRangeEndRow);\n });\n }\n else if (columns) {\n withinInitialRange = true;\n resetValues();\n columns.forEach(function (col) { return fillValues(values, col, rowNode, function () { return col !== (_this.isLeft ? initialRange.columns[0] : _.last(initialRange.columns)); }); });\n }\n finished = _this.rowPositionUtils.sameRow(currentRow, _this.isUp ? finalRangeStartRow : finalRangeEndRow);\n currentRow = _this.isUp\n ? _this.cellNavigationService.getRowAbove(currentRow)\n : _this.cellNavigationService.getRowBelow(currentRow);\n };\n while (!finished && currentRow) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n };\n var fillValues = function (currentValues, col, rowNode, updateInitialSet) {\n var currentValue;\n var skipValue = false;\n if (withinInitialRange) {\n currentValue = _this.getValueFromObject(_this.valueService.getValue(col, rowNode));\n initialValues.push(currentValue);\n withinInitialRange = updateInitialSet();\n }\n else {\n var _a = _this.processValues(e, currentValues, initialValues, col, rowNode, idx++), value = _a.value, fromUserFunction = _a.fromUserFunction;\n currentValue = value;\n if (col.isCellEditable(rowNode)) {\n var cellValue = _this.getValueFromObject(_this.valueService.getValue(col, rowNode));\n if (!fromUserFunction || cellValue !== currentValue) {\n rowNode.setDataValue(col, currentValue, 'rangeService');\n }\n else {\n skipValue = true;\n }\n }\n }\n if (!skipValue) {\n currentValues.push(currentValue);\n }\n };\n if (isVertical) {\n initialRange.columns.forEach(function (col) {\n iterateAcrossCells(col);\n });\n }\n else {\n var columns = this.isLeft ? __spread$1(finalRange.columns).reverse() : finalRange.columns;\n iterateAcrossCells(undefined, columns);\n }\n };\n FillHandle.prototype.clearCellsInRange = function (startRow, endRow, columns) {\n var cellRange = {\n startRow: startRow,\n endRow: endRow,\n columns: columns,\n startColumn: columns[0]\n };\n this.rangeService.clearCellRangeCellValues([cellRange]);\n };\n FillHandle.prototype.processValues = function (event, values, initialValues, col, rowNode, idx) {\n var userFillOperation = this.gridOptionsWrapper.getFillOperation();\n var isVertical = this.dragAxis === 'y';\n var direction;\n if (isVertical) {\n direction = this.isUp ? 'up' : 'down';\n }\n else {\n direction = this.isLeft ? 'left' : 'right';\n }\n if (userFillOperation) {\n var params = {\n event: event,\n values: values,\n initialValues: initialValues,\n currentIndex: idx,\n currentCellValue: this.valueService.getValue(col, rowNode),\n direction: direction,\n column: col,\n rowNode: rowNode\n };\n var userResult = userFillOperation(params);\n if (userResult !== false) {\n return { value: userResult, fromUserFunction: true };\n }\n }\n var processedValues = values.map(this.getValueFromObject);\n var allNumbers = !processedValues.some(function (val) {\n var asFloat = parseFloat(val);\n return isNaN(asFloat) || asFloat.toString() !== val.toString();\n });\n // values should be copied in order if the alt key is pressed\n // or if the values contain strings and numbers\n // However, if we only have one initial value selected, and that\n // value is a number and we are also pressing alt, then we should\n // increment or decrement the value by 1 based on direction.\n if (event.altKey || !allNumbers) {\n if (allNumbers && initialValues.length === 1) {\n var multiplier = (this.isUp || this.isLeft) ? -1 : 1;\n return { value: parseFloat(_.last(processedValues)) + 1 * multiplier, fromUserFunction: false };\n }\n return { value: processedValues[idx % processedValues.length], fromUserFunction: false };\n }\n return { value: _.last(_.findLineByLeastSquares(processedValues.map(Number))), fromUserFunction: false };\n };\n FillHandle.prototype.getValueFromObject = function (val) {\n if (val != null && typeof val === 'object') {\n // @ts-ignore\n return val.toString();\n }\n return val;\n };\n FillHandle.prototype.clearValues = function () {\n this.clearMarkedPath();\n this.clearCellValues();\n this.lastCellMarked = undefined;\n _super.prototype.clearValues.call(this);\n };\n FillHandle.prototype.clearMarkedPath = function () {\n this.markedCells.forEach(function (cell) {\n if (!cell.isAlive()) {\n return;\n }\n var comp = cell.getComp();\n comp.addOrRemoveCssClass('ag-selection-fill-top', false);\n comp.addOrRemoveCssClass('ag-selection-fill-right', false);\n comp.addOrRemoveCssClass('ag-selection-fill-bottom', false);\n comp.addOrRemoveCssClass('ag-selection-fill-left', false);\n });\n this.markedCells.length = 0;\n this.isUp = false;\n this.isLeft = false;\n this.isReduce = false;\n };\n FillHandle.prototype.clearCellValues = function () {\n this.cellValues.length = 0;\n };\n FillHandle.prototype.markPathFrom = function (initialPosition, currentPosition) {\n this.clearMarkedPath();\n this.clearCellValues();\n if (this.dragAxis === 'y') {\n if (this.rowPositionUtils.sameRow(currentPosition, initialPosition)) {\n return;\n }\n var isBefore = this.rowPositionUtils.before(currentPosition, initialPosition);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n if (isBefore && ((currentPosition.rowPinned == rangeStartRow.rowPinned &&\n currentPosition.rowIndex >= rangeStartRow.rowIndex) ||\n (rangeStartRow.rowPinned != rangeEndRow.rowPinned &&\n currentPosition.rowPinned == rangeEndRow.rowPinned &&\n currentPosition.rowIndex <= rangeEndRow.rowIndex))) {\n this.reduceVertical(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendVertical(initialPosition, currentPosition, isBefore);\n this.isReduce = false;\n }\n }\n else {\n var initialColumn = initialPosition.column;\n var currentColumn = currentPosition.column;\n if (initialColumn === currentColumn) {\n return;\n }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var initialIndex = displayedColumns.indexOf(initialColumn);\n var currentIndex = displayedColumns.indexOf(currentColumn);\n if (currentIndex <= initialIndex && currentIndex >= displayedColumns.indexOf(this.getCellRange().columns[0])) {\n this.reduceHorizontal(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendHorizontal(initialPosition, currentPosition, currentIndex < initialIndex);\n this.isReduce = false;\n }\n }\n this.lastCellMarked = currentPosition;\n };\n FillHandle.prototype.extendVertical = function (initialPosition, endPosition, isMovingUp) {\n var _a = this, navigationService = _a.navigationService, rangeService = _a.rangeService;\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n for (var i = 0; i < colLen; i++) {\n var column = cellRange.columns[i];\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var cellPos = __assign$6(__assign$6({}, rowPos), { column: column });\n var cellInRange = rangeService.isCellInSpecificRange(cellPos, cellRange);\n var isInitialRow = this.rowPositionUtils.sameRow(row, initialPosition);\n if (isMovingUp) {\n this.isUp = true;\n }\n if (!isInitialRow) {\n var cell = navigationService.getCellByPosition(cellPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellCtrl = cell.getComp();\n if (!cellInRange) {\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-left', i === 0);\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-right', i === colLen - 1);\n }\n cellCtrl.addOrRemoveCssClass(isMovingUp ? 'ag-selection-fill-top' : 'ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n }\n if (this.rowPositionUtils.sameRow(row, endPosition)) {\n break;\n }\n } while (\n // tslint:disable-next-line\n row = isMovingUp\n ? this.cellNavigationService.getRowAbove(row)\n : this.cellNavigationService.getRowBelow(row));\n };\n FillHandle.prototype.reduceVertical = function (initialPosition, endPosition) {\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n var isLastRow = this.rowPositionUtils.sameRow(row, endPosition);\n for (var i = 0; i < colLen; i++) {\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var celPos = __assign$6(__assign$6({}, rowPos), { column: cellRange.columns[i] });\n var cell = this.navigationService.getCellByPosition(celPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n if (isLastRow) {\n break;\n }\n // tslint:disable-next-line\n } while (row = this.cellNavigationService.getRowAbove(row));\n };\n FillHandle.prototype.extendHorizontal = function (initialPosition, endPosition, isMovingLeft) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(isMovingLeft ? endPosition.column : initialPosition.column);\n var endCol = allCols.indexOf(isMovingLeft ? this.getCellRange().columns[0] : endPosition.column);\n var offset = isMovingLeft ? 0 : 1;\n var colsToMark = allCols.slice(startCol + offset, endCol + offset);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-top', _this.rowPositionUtils.sameRow(row, rangeStartRow));\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', _this.rowPositionUtils.sameRow(row, rangeEndRow));\n if (isMovingLeft) {\n _this.isLeft = true;\n cellComp.addOrRemoveCssClass('ag-selection-fill-left', column === colsToMark[0]);\n }\n else {\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === _.last(colsToMark));\n }\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.reduceHorizontal = function (initialPosition, endPosition) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(endPosition.column);\n var endCol = allCols.indexOf(initialPosition.column);\n var colsToMark = allCols.slice(startCol, endCol);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === colsToMark[0]);\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.refresh = function (cellCtrl) {\n var cellRange = this.rangeService.getCellRanges()[0];\n var isColumnRange = !cellRange.startRow || !cellRange.endRow;\n if (isColumnRange) {\n this.destroy();\n return;\n }\n _super.prototype.refresh.call(this, cellCtrl);\n };\n FillHandle.TEMPLATE = \"
\";\n __decorate$C([\n Autowired('valueService')\n ], FillHandle.prototype, \"valueService\", void 0);\n return FillHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar RangeHandle = /** @class */ (function (_super) {\n __extends$V(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super.call(this, RangeHandle.TEMPLATE) || this;\n _this.type = SelectionHandleType.RANGE;\n _this.rangeFixed = false;\n return _this;\n }\n RangeHandle.prototype.onDrag = function (e) {\n var lastCellHovered = this.getLastCellHovered();\n if (!lastCellHovered) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n var lastRange = _.last(cellRanges);\n if (!this.rangeFixed) {\n this.fixRangeStartEnd(lastRange);\n this.rangeFixed = true;\n }\n this.endPosition = {\n rowIndex: lastCellHovered.rowIndex,\n rowPinned: lastCellHovered.rowPinned,\n column: lastCellHovered.column\n };\n // check if the cell ranges are for a chart\n if (cellRanges.length === 2 && cellRanges[0].type === CellRangeType.DIMENSION && lastRange.type === CellRangeType.VALUE) {\n var rowChanged = !this.rowPositionUtils.sameRow(this.endPosition, this.rangeService.getRangeEndRow(lastRange));\n if (rowChanged) {\n // ensure the dimension range is kept in sync with the value range (which has the handle)\n this.rangeService.updateRangeEnd(cellRanges[0], __assign$5(__assign$5({}, this.endPosition), { column: cellRanges[0].columns[0] }), true);\n }\n }\n this.rangeService.extendLatestRangeToCell(this.endPosition);\n };\n RangeHandle.prototype.onDragEnd = function (e) {\n var cellRange = _.last(this.rangeService.getCellRanges());\n this.fixRangeStartEnd(cellRange);\n this.rangeFixed = false;\n };\n RangeHandle.prototype.fixRangeStartEnd = function (cellRange) {\n var startRow = this.rangeService.getRangeStartRow(cellRange);\n var endRow = this.rangeService.getRangeEndRow(cellRange);\n var column = cellRange.columns[0];\n cellRange.startRow = startRow;\n cellRange.endRow = endRow;\n cellRange.startColumn = column;\n };\n RangeHandle.TEMPLATE = \"
\";\n return RangeHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectionHandleFactory = /** @class */ (function (_super) {\n __extends$U(SelectionHandleFactory, _super);\n function SelectionHandleFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionHandleFactory.prototype.createSelectionHandle = function (type) {\n return this.createBean(type === SelectionHandleType.RANGE ? new RangeHandle() : new FillHandle());\n };\n SelectionHandleFactory = __decorate$B([\n Bean('selectionHandleFactory')\n ], SelectionHandleFactory);\n return SelectionHandleFactory;\n}(BeanStub));\n\nvar RangeSelectionModule = {\n moduleName: ModuleNames.RangeSelectionModule,\n beans: [RangeService, SelectionHandleFactory],\n agStackComponents: [\n { componentName: 'AgFillHandle', componentClass: FillHandle },\n { componentName: 'AgRangeHandle', componentClass: RangeHandle }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar GridChartsModule = {\n moduleName: ModuleNames.GridChartsModule,\n beans: [\n ChartService, ChartTranslationService, ChartCrossFilterService\n ],\n dependantModules: [\n RangeSelectionModule,\n EnterpriseCoreModule\n ]\n};\n\nvar agCharts = {\n time: time\n};\n\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRendererCtrl = /** @class */ (function (_super) {\n __extends$T(DetailCellRendererCtrl, _super);\n function DetailCellRendererCtrl() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.loadRowDataVersion = 0;\n _this.needRefresh = false;\n return _this;\n }\n DetailCellRendererCtrl.prototype.init = function (comp, params) {\n var _this = this;\n this.params = params;\n this.comp = comp;\n var doNothingBecauseInsidePinnedSection = params.pinned != null;\n if (doNothingBecauseInsidePinnedSection) {\n return;\n }\n this.setAutoHeightClasses();\n this.setupRefreshStrategy();\n this.addThemeToDetailGrid();\n this.createDetailGrid();\n this.loadRowData();\n this.addManagedListener(params.node.parent, RowNode.EVENT_DATA_CHANGED, function () {\n _this.needRefresh = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FULL_WIDTH_ROW_FOCUSED, this.onFullWidthRowFocused.bind(this));\n };\n DetailCellRendererCtrl.prototype.onFullWidthRowFocused = function (e) {\n var params = this.params;\n var row = { rowIndex: params.node.rowIndex, rowPinned: params.node.rowPinned };\n var eventRow = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n var isSameRow = this.rowPositionUtils.sameRow(row, eventRow);\n if (!isSameRow) {\n return;\n }\n this.focusService.focusInto(this.comp.getGui(), e.fromBelow);\n };\n DetailCellRendererCtrl.prototype.setAutoHeightClasses = function () {\n var autoHeight = this.gridOptionsWrapper.isDetailRowAutoHeight();\n var parentClass = autoHeight ? 'ag-details-row-auto-height' : 'ag-details-row-fixed-height';\n var detailClass = autoHeight ? 'ag-details-grid-auto-height' : 'ag-details-grid-fixed-height';\n this.comp.addOrRemoveCssClass(parentClass, true);\n this.comp.addOrRemoveDetailGridCssClass(detailClass, true);\n };\n DetailCellRendererCtrl.prototype.setupRefreshStrategy = function () {\n if (this.params.suppressRefresh) {\n console.warn(\"AG Grid: as of v23.2.0, cellRendererParams.suppressRefresh for Detail Cell Renderer is no \" +\n \"longer used. Please set cellRendererParams.refreshStrategy = 'nothing' instead.\");\n this.refreshStrategy = 'nothing';\n return;\n }\n var providedStrategy = this.params.refreshStrategy;\n var validSelection = providedStrategy == 'everything' || providedStrategy == 'nothing' || providedStrategy == 'rows';\n if (validSelection) {\n this.refreshStrategy = providedStrategy;\n return;\n }\n if (providedStrategy != null) {\n console.warn(\"AG Grid: invalid cellRendererParams.refreshStrategy = '\" + providedStrategy +\n \"' supplied, defaulting to refreshStrategy = 'rows'.\");\n }\n this.refreshStrategy = 'rows';\n };\n DetailCellRendererCtrl.prototype.addThemeToDetailGrid = function () {\n // this is needed by environment service of the child grid, the class needs to be on\n // the grid div itself - the browser's CSS on the other hand just inherits from the parent grid theme.\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.comp.addOrRemoveDetailGridCssClass(theme, true);\n }\n };\n DetailCellRendererCtrl.prototype.createDetailGrid = function () {\n if (_.missing(this.params.detailGridOptions)) {\n console.warn('AG Grid: could not find detail grid options for master detail, ' +\n 'please set gridOptions.detailCellRendererParams.detailGridOptions');\n return;\n }\n var autoHeight = this.gridOptionsWrapper.isDetailRowAutoHeight();\n // we clone the detail grid options, as otherwise it would be shared\n // across many instances, and that would be a problem because we set\n // api and columnApi into gridOptions\n var gridOptions = __assign$4({}, this.params.detailGridOptions);\n if (autoHeight) {\n gridOptions.domLayout = 'autoHeight';\n }\n this.comp.setDetailGrid(gridOptions);\n };\n DetailCellRendererCtrl.prototype.registerDetailWithMaster = function (api, columnApi) {\n var rowId = this.params.node.id;\n var masterGridApi = this.params.api;\n var gridInfo = {\n id: rowId,\n api: api,\n columnApi: columnApi\n };\n var rowNode = this.params.node;\n // register with api\n masterGridApi.addDetailGridInfo(rowId, gridInfo);\n // register with node\n rowNode.detailGridInfo = gridInfo;\n this.addDestroyFunc(function () {\n // the gridInfo can be stale if a refresh happens and\n // a new row is created before the old one is destroyed.\n if (rowNode.detailGridInfo !== gridInfo) {\n return;\n }\n masterGridApi.removeDetailGridInfo(rowId); // unregister from api\n rowNode.detailGridInfo = null; // unregister from node\n });\n };\n DetailCellRendererCtrl.prototype.loadRowData = function () {\n var _this = this;\n // in case a refresh happens before the last refresh completes (as we depend on async\n // application logic) we keep track on what the latest call was.\n this.loadRowDataVersion++;\n var versionThisCall = this.loadRowDataVersion;\n var userFunc = this.params.getDetailRowData;\n if (!userFunc) {\n console.warn('AG Grid: could not find getDetailRowData for master / detail, ' +\n 'please set gridOptions.detailCellRendererParams.getDetailRowData');\n return;\n }\n var successCallback = function (rowData) {\n var mostRecentCall = _this.loadRowDataVersion === versionThisCall;\n if (mostRecentCall) {\n _this.comp.setRowData(rowData);\n }\n };\n var funcParams = {\n node: this.params.node,\n // we take data from node, rather than params.data\n // as the data could have been updated with new instance\n data: this.params.node.data,\n successCallback: successCallback,\n context: this.gridOptionsWrapper.getContext()\n };\n userFunc(funcParams);\n };\n DetailCellRendererCtrl.prototype.refresh = function () {\n var GET_GRID_TO_REFRESH = false;\n var GET_GRID_TO_DO_NOTHING = true;\n // if we return true, it means we pretend to the grid\n // that we have refreshed, so refresh will never happen.\n var doNotRefresh = !this.needRefresh || this.refreshStrategy === 'nothing';\n if (doNotRefresh) {\n // we do nothing in this refresh method, and also tell the grid to do nothing\n return GET_GRID_TO_DO_NOTHING;\n }\n // reset flag, so don't refresh again until more data changes.\n this.needRefresh = false;\n if (this.refreshStrategy === 'everything') {\n // we want full refresh, so tell the grid to destroy and recreate this cell\n return GET_GRID_TO_REFRESH;\n }\n else {\n // do the refresh here, and tell the grid to do nothing\n this.loadRowData();\n return GET_GRID_TO_DO_NOTHING;\n }\n };\n __decorate$A([\n Autowired('environment')\n ], DetailCellRendererCtrl.prototype, \"environment\", void 0);\n __decorate$A([\n Autowired('rowPositionUtils')\n ], DetailCellRendererCtrl.prototype, \"rowPositionUtils\", void 0);\n __decorate$A([\n Autowired('focusService')\n ], DetailCellRendererCtrl.prototype, \"focusService\", void 0);\n return DetailCellRendererCtrl;\n}(BeanStub));\n\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRenderer = /** @class */ (function (_super) {\n __extends$S(DetailCellRenderer, _super);\n function DetailCellRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DetailCellRenderer.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.selectAndSetTemplate();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveDetailGridCssClass: function (cssClassName, on) { return _this.eDetailGrid.classList.toggle(cssClassName, on); },\n setDetailGrid: function (gridOptions) { return _this.setDetailGrid(gridOptions); },\n setRowData: function (rowData) { return _this.setRowData(rowData); },\n getGui: function () { return _this.eDetailGrid; }\n };\n this.ctrl = this.createManagedBean(new DetailCellRendererCtrl());\n this.ctrl.init(compProxy, params);\n };\n DetailCellRenderer.prototype.refresh = function () {\n return this.ctrl && this.ctrl.refresh();\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DetailCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DetailCellRenderer.prototype.selectAndSetTemplate = function () {\n var _this = this;\n if (this.params.pinned) {\n this.setTemplate('
');\n return;\n }\n var setDefaultTemplate = function () {\n _this.setTemplate(DetailCellRenderer.TEMPLATE);\n };\n if (_.missing(this.params.template)) {\n // use default template\n setDefaultTemplate();\n }\n else {\n // use user provided template\n if (typeof this.params.template === 'string') {\n this.setTemplate(this.params.template);\n }\n else if (typeof this.params.template === 'function') {\n var templateFunc = this.params.template;\n var template = templateFunc(this.params);\n this.setTemplate(template);\n }\n else {\n console.warn('AG Grid: detailCellRendererParams.template should be function or string');\n setDefaultTemplate();\n }\n }\n if (this.eDetailGrid == null) {\n console.warn('AG Grid: reference to eDetailGrid was missing from the details template. ' +\n 'Please add ref=\"eDetailGrid\" to the template.');\n }\n };\n DetailCellRenderer.prototype.setDetailGrid = function (gridOptions) {\n if (!this.eDetailGrid) {\n return;\n }\n // AG-1715\n // this is only needed when reactUi=false, once we remove the old way\n // of doing react, and Master / Details is all native React, then we\n // can remove this code.\n var agGridReact = this.context.getBean('agGridReact');\n var agGridReactCloned = agGridReact ? _.cloneObject(agGridReact) : undefined;\n // when we create detail grid, the detail grid needs frameworkComponentWrapper so that\n // it created child components correctly, ie Angular detail grid can have Angular cell renderer.\n // this is only used by Angular and Vue, as React uses native React AG Grid detail grids\n var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');\n var frameworkOverrides = this.getFrameworkOverrides();\n // tslint:disable-next-line\n new Grid(this.eDetailGrid, gridOptions, {\n frameworkOverrides: frameworkOverrides,\n providedBeanInstances: {\n agGridReact: agGridReactCloned,\n frameworkComponentWrapper: frameworkComponentWrapper\n }\n });\n this.detailApi = gridOptions.api;\n this.ctrl.registerDetailWithMaster(gridOptions.api, gridOptions.columnApi);\n this.addDestroyFunc(function () {\n if (gridOptions.api) {\n gridOptions.api.destroy();\n }\n });\n };\n DetailCellRenderer.prototype.setRowData = function (rowData) {\n // ensure detail grid api still exists (grid may be destroyed when async call tries to set data)\n this.detailApi && this.detailApi.setRowData(rowData);\n };\n DetailCellRenderer.TEMPLATE = \"
\\n
\\n
\";\n __decorate$z([\n RefSelector('eDetailGrid')\n ], DetailCellRenderer.prototype, \"eDetailGrid\", void 0);\n return DetailCellRenderer;\n}(Component));\n\nvar MasterDetailModule = {\n moduleName: ModuleNames.MasterDetailModule,\n beans: [],\n userComponents: [\n { componentName: 'agDetailCellRenderer', componentClass: DetailCellRenderer }\n ],\n controllers: [\n { controllerName: 'detailCellRenderer', controllerClass: DetailCellRendererCtrl }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EnterpriseMenuFactory = /** @class */ (function (_super) {\n __extends$R(EnterpriseMenuFactory, _super);\n function EnterpriseMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EnterpriseMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent, defaultTab) {\n var _this = this;\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupUnderMouseEvent({\n type: 'columnMenu',\n column: column,\n mouseEvent: mouseEvent,\n ePopup: ePopup\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, 'columnMenu', defaultTab, undefined, mouseEvent.target);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType, defaultTab, restrictToTabs) {\n var _this = this;\n var multiplier = -1;\n var alignSide = 'left';\n if (this.gridOptionsWrapper.isEnableRtl()) {\n multiplier = 1;\n alignSide = 'right';\n }\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupUnderComponent({\n type: containerType,\n column: column,\n eventSource: eventSource,\n ePopup: ePopup,\n alignSide: alignSide,\n nudgeX: 9 * multiplier,\n nudgeY: -23,\n keepWithinBounds: true\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, containerType, defaultTab, restrictToTabs, eventSource);\n };\n EnterpriseMenuFactory.prototype.showMenu = function (column, positionCallback, containerType, defaultTab, restrictToTabs, eventSource) {\n var _this = this;\n var menu = this.createBean(new EnterpriseMenu(column, this.lastSelectedTab, restrictToTabs));\n var eMenuGui = menu.getGui();\n var currentHeaderPosition = this.focusService.getFocusedHeader();\n var currentColumnIndex = this.columnModel.getAllDisplayedColumns().indexOf(column);\n var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();\n var closedFuncs = [];\n closedFuncs.push(function (e) {\n _this.destroyBean(menu);\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (isKeyboardEvent && eventSource) {\n if (_.isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n if (column) {\n _this.headerNavigationService.scrollToColumn(column);\n }\n focusableEl.focus();\n }\n }\n // if the focusEl is no longer in the DOM, we try to focus\n // the header that is closest to the previous header position\n else if (currentHeaderPosition && currentColumnIndex !== -1) {\n var allColumns = _this.columnModel.getAllDisplayedColumns();\n var columnToFocus = allColumns[currentColumnIndex] || _.last(allColumns);\n if (columnToFocus) {\n _this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: currentHeaderPosition.headerRowIndex,\n column: columnToFocus\n }\n });\n }\n }\n }\n });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n // need to show filter before positioning, as only after filter\n // is visible can we find out what the width of it is\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function (e) {\n closedFuncs.forEach(function (f) { return f(e); });\n },\n afterGuiAttached: function (params) { return menu.afterGuiAttached(Object.assign({}, { container: containerType }, params)); },\n positionCallback: function () { return positionCallback(menu); },\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (addPopupRes) {\n // if user starts showing / hiding columns, or otherwise move the underlying column\n // for this menu, we want to stop tracking the menu with the column position. otherwise\n // the menu would move as the user is using the columns tab inside the menu.\n var stopAnchoringPromise = addPopupRes.stopAnchoringPromise;\n if (stopAnchoringPromise) {\n stopAnchoringPromise.then(function (stopAnchoringFunc) {\n column.addEventListener(Column.EVENT_LEFT_CHANGED, stopAnchoringFunc);\n column.addEventListener(Column.EVENT_VISIBLE_CHANGED, stopAnchoringFunc);\n closedFuncs.push(function () {\n column.removeEventListener(Column.EVENT_LEFT_CHANGED, stopAnchoringFunc);\n column.removeEventListener(Column.EVENT_VISIBLE_CHANGED, stopAnchoringFunc);\n });\n });\n }\n }\n if (!defaultTab) {\n menu.showTabBasedOnPreviousSelection();\n // reposition the menu because the method above could load\n // an element that is bigger than enterpriseMenu header.\n positionCallback(menu);\n }\n menu.addEventListener(EnterpriseMenu.EVENT_TAB_SELECTED, function (event) {\n _this.lastSelectedTab = event.key;\n });\n column.setMenuVisible(true, 'contextMenu');\n this.activeMenu = menu;\n menu.addEventListener(BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n };\n EnterpriseMenuFactory.prototype.isMenuEnabled = function (column) {\n return column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT).length > 0;\n };\n __decorate$y([\n Autowired('popupService')\n ], EnterpriseMenuFactory.prototype, \"popupService\", void 0);\n __decorate$y([\n Autowired('focusService')\n ], EnterpriseMenuFactory.prototype, \"focusService\", void 0);\n __decorate$y([\n Autowired('headerNavigationService')\n ], EnterpriseMenuFactory.prototype, \"headerNavigationService\", void 0);\n __decorate$y([\n Autowired('ctrlsService')\n ], EnterpriseMenuFactory.prototype, \"ctrlsService\", void 0);\n __decorate$y([\n Autowired('columnModel')\n ], EnterpriseMenuFactory.prototype, \"columnModel\", void 0);\n EnterpriseMenuFactory = __decorate$y([\n Bean('menuFactory')\n ], EnterpriseMenuFactory);\n return EnterpriseMenuFactory;\n}(BeanStub));\nvar EnterpriseMenu = /** @class */ (function (_super) {\n __extends$R(EnterpriseMenu, _super);\n function EnterpriseMenu(column, initialSelection, restrictTo) {\n var _this = _super.call(this) || this;\n _this.tabFactories = {};\n _this.includeChecks = {};\n _this.column = column;\n _this.initialSelection = initialSelection;\n _this.tabFactories[EnterpriseMenu.TAB_GENERAL] = _this.createMainPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_FILTER] = _this.createFilterPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_COLUMNS] = _this.createColumnsPanel.bind(_this);\n _this.includeChecks[EnterpriseMenu.TAB_GENERAL] = function () { return true; };\n _this.includeChecks[EnterpriseMenu.TAB_FILTER] = function () { return column.isFilterAllowed(); };\n _this.includeChecks[EnterpriseMenu.TAB_COLUMNS] = function () { return true; };\n _this.restrictTo = restrictTo;\n return _this;\n }\n EnterpriseMenu.prototype.init = function () {\n var _this = this;\n var tabs = this.getTabsToCreate().map(function (name) { return _this.createTab(name); });\n this.tabbedLayout = new TabbedLayout({\n items: tabs,\n cssClass: 'ag-menu',\n onActiveItemClicked: this.onHidePopup.bind(this),\n onItemClicked: this.onTabItemClicked.bind(this)\n });\n this.createBean(this.tabbedLayout);\n if (this.mainMenuList) {\n this.mainMenuList.setParentComponent(this.tabbedLayout);\n }\n };\n EnterpriseMenu.prototype.getTabsToCreate = function () {\n var _this = this;\n if (this.restrictTo) {\n return this.restrictTo;\n }\n return this.column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT)\n .filter(function (tabName) { return _this.isValidMenuTabItem(tabName); })\n .filter(function (tabName) { return _this.isNotSuppressed(tabName); })\n .filter(function (tabName) { return _this.isModuleLoaded(tabName); });\n };\n EnterpriseMenu.prototype.isModuleLoaded = function (menuTabName) {\n if (menuTabName === EnterpriseMenu.TAB_COLUMNS) {\n return ModuleRegistry.isRegistered(ModuleNames.ColumnToolPanelModule);\n }\n return true;\n };\n EnterpriseMenu.prototype.isValidMenuTabItem = function (menuTabName) {\n var isValid = true;\n var itemsToConsider = EnterpriseMenu.TABS_DEFAULT;\n if (this.restrictTo != null) {\n isValid = this.restrictTo.indexOf(menuTabName) > -1;\n itemsToConsider = this.restrictTo;\n }\n isValid = isValid && EnterpriseMenu.TABS_DEFAULT.indexOf(menuTabName) > -1;\n if (!isValid) {\n console.warn(\"AG Grid: Trying to render an invalid menu item '\" + menuTabName + \"'. Check that your 'menuTabs' contains one of [\" + itemsToConsider + \"]\");\n }\n return isValid;\n };\n EnterpriseMenu.prototype.isNotSuppressed = function (menuTabName) {\n return this.includeChecks[menuTabName]();\n };\n EnterpriseMenu.prototype.createTab = function (name) {\n return this.tabFactories[name]();\n };\n EnterpriseMenu.prototype.showTabBasedOnPreviousSelection = function () {\n // show the tab the user was on last time they had a menu open\n this.showTab(this.initialSelection);\n };\n EnterpriseMenu.prototype.showTab = function (toShow) {\n if (this.tabItemColumns && toShow === EnterpriseMenu.TAB_COLUMNS) {\n this.tabbedLayout.showItem(this.tabItemColumns);\n }\n else if (this.tabItemFilter && toShow === EnterpriseMenu.TAB_FILTER) {\n this.tabbedLayout.showItem(this.tabItemFilter);\n }\n else if (this.tabItemGeneral && toShow === EnterpriseMenu.TAB_GENERAL) {\n this.tabbedLayout.showItem(this.tabItemGeneral);\n }\n else {\n this.tabbedLayout.showFirstItem();\n }\n };\n EnterpriseMenu.prototype.onTabItemClicked = function (event) {\n var key = null;\n switch (event.item) {\n case this.tabItemColumns:\n key = EnterpriseMenu.TAB_COLUMNS;\n break;\n case this.tabItemFilter:\n key = EnterpriseMenu.TAB_FILTER;\n break;\n case this.tabItemGeneral:\n key = EnterpriseMenu.TAB_GENERAL;\n break;\n }\n if (key) {\n this.activateTab(key);\n }\n };\n EnterpriseMenu.prototype.activateTab = function (tab) {\n var ev = {\n type: EnterpriseMenu.EVENT_TAB_SELECTED,\n key: tab\n };\n this.dispatchEvent(ev);\n };\n EnterpriseMenu.prototype.getMenuItems = function () {\n var defaultMenuOptions = this.getDefaultMenuOptions();\n var result;\n var userFunc = this.gridOptionsWrapper.getMainMenuItemsFunc();\n if (userFunc) {\n result = userFunc({\n column: this.column,\n defaultItems: defaultMenuOptions\n });\n }\n else {\n result = defaultMenuOptions;\n }\n // GUI looks weird when two separators are side by side. this can happen accidentally\n // if we remove items from the menu then two separators can edit up adjacent.\n _.removeRepeatsFromArray(result, EnterpriseMenu.MENU_ITEM_SEPARATOR);\n return result;\n };\n EnterpriseMenu.prototype.getDefaultMenuOptions = function () {\n var result = [];\n var allowPinning = !this.column.getColDef().lockPinned;\n var rowGroupCount = this.columnModel.getRowGroupColumns().length;\n var doingGrouping = rowGroupCount > 0;\n var groupedByThisColumn = this.columnModel.getRowGroupColumns().indexOf(this.column) >= 0;\n var allowValue = this.column.isAllowValue();\n var allowRowGroup = this.column.isAllowRowGroup();\n var isPrimary = this.column.isPrimary();\n var pivotModeOn = this.columnModel.isPivotMode();\n var isInMemoryRowModel = this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var allowValueAgg = \n // if primary, then only allow aggValue if grouping and it's a value columns\n (isPrimary && doingGrouping && allowValue)\n // secondary columns can always have aggValue, as it means it's a pivot value column\n || !isPrimary;\n if (allowPinning) {\n result.push('pinSubMenu');\n }\n if (allowValueAgg) {\n result.push('valueAggSubMenu');\n }\n if (allowPinning || allowValueAgg) {\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n }\n result.push('autoSizeThis');\n result.push('autoSizeAll');\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n if (allowRowGroup && this.column.isPrimary()) {\n if (groupedByThisColumn) {\n result.push('rowUnGroup');\n }\n else {\n result.push('rowGroup');\n }\n }\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n result.push('resetColumns');\n // only add grouping expand/collapse if grouping in the InMemoryRowModel\n // if pivoting, we only have expandable groups if grouping by 2 or more columns\n // as the lowest level group is not expandable while pivoting.\n // if not pivoting, then any active row group can be expanded.\n var allowExpandAndContract = isInMemoryRowModel && (usingTreeData || rowGroupCount > (pivotModeOn ? 1 : 0));\n if (allowExpandAndContract) {\n result.push('expandAll');\n result.push('contractAll');\n }\n return result;\n };\n EnterpriseMenu.prototype.createMainPanel = function () {\n this.mainMenuList = this.createManagedBean(new AgMenuList());\n var menuItems = this.getMenuItems();\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(menuItems, this.column);\n this.mainMenuList.addMenuItems(menuItemsMapped);\n this.mainMenuList.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, this.onHidePopup.bind(this));\n this.tabItemGeneral = {\n title: _.createIconNoSpan('menu', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_GENERAL.replace('MenuTab', ''),\n bodyPromise: AgPromise.resolve(this.mainMenuList.getGui()),\n name: EnterpriseMenu.TAB_GENERAL\n };\n return this.tabItemGeneral;\n };\n EnterpriseMenu.prototype.onHidePopup = function (event) {\n var keyboardEvent;\n if (event && event.event && event.event instanceof KeyboardEvent) {\n keyboardEvent = event.event;\n }\n this.hidePopupFunc(keyboardEvent && { keyboardEvent: keyboardEvent });\n // this method only gets called when the menu was closed by selection an option\n // in this case we highlight the cell that was previously highlighted\n var focusedCell = this.focusService.getFocusedCell();\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (eDocument.activeElement === eDocument.body && focusedCell) {\n var rowIndex = focusedCell.rowIndex, rowPinned = focusedCell.rowPinned, column = focusedCell.column;\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: column, rowPinned: rowPinned, forceBrowserFocus: true, preventScrollOnBrowserFocus: true });\n }\n };\n EnterpriseMenu.prototype.createFilterPanel = function () {\n var _a;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(this.column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - Unable to instantiate filter');\n }\n var afterFilterAttachedCallback = function (params) {\n var _a;\n if (!((_a = filterWrapper) === null || _a === void 0 ? void 0 : _a.filterPromise)) {\n return;\n }\n // slightly odd block this - this promise will always have been resolved by the time it gets here, so won't be\n // async (_unless_ in react or similar, but if so why not encountered before now?).\n // I'd suggest a future improvement would be to remove/replace this promise as this block just wont work if it is\n // async and is confusing if you don't have this context\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter.afterGuiAttached) {\n filter.afterGuiAttached(params);\n }\n });\n };\n this.tabItemFilter = {\n title: _.createIconNoSpan('filter', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_FILTER.replace('MenuTab', ''),\n bodyPromise: (_a = filterWrapper) === null || _a === void 0 ? void 0 : _a.guiPromise,\n afterAttachedCallback: afterFilterAttachedCallback,\n name: EnterpriseMenu.TAB_FILTER\n };\n return this.tabItemFilter;\n };\n EnterpriseMenu.prototype.createColumnsPanel = function () {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-menu-column-select-wrapper');\n this.columnSelectPanel = this.createManagedBean(new PrimaryColsPanel());\n var columnsMenuParams = this.column.getColDef().columnsMenuParams;\n if (!columnsMenuParams) {\n columnsMenuParams = {};\n }\n this.columnSelectPanel.init(false, {\n suppressColumnMove: false,\n suppressValues: false,\n suppressPivots: false,\n suppressRowGroups: false,\n suppressPivotMode: false,\n contractColumnSelection: !!columnsMenuParams.contractColumnSelection,\n suppressColumnExpandAll: !!columnsMenuParams.suppressColumnExpandAll,\n suppressColumnFilter: !!columnsMenuParams.suppressColumnFilter,\n suppressColumnSelectAll: !!columnsMenuParams.suppressColumnSelectAll,\n suppressSyncLayoutWithGrid: !!columnsMenuParams.suppressSyncLayoutWithGrid,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n }, 'columnMenu');\n var columnSelectPanelGui = this.columnSelectPanel.getGui();\n columnSelectPanelGui.classList.add('ag-menu-column-select');\n eWrapperDiv.appendChild(columnSelectPanelGui);\n this.tabItemColumns = {\n title: _.createIconNoSpan('columns', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_COLUMNS.replace('MenuTab', ''),\n bodyPromise: AgPromise.resolve(eWrapperDiv),\n name: EnterpriseMenu.TAB_COLUMNS\n };\n return this.tabItemColumns;\n };\n EnterpriseMenu.prototype.afterGuiAttached = function (params) {\n var container = params.container, hidePopup = params.hidePopup;\n this.tabbedLayout.setAfterAttachedParams({ container: container, hidePopup: hidePopup });\n if (hidePopup) {\n this.hidePopupFunc = hidePopup;\n this.addDestroyFunc(hidePopup);\n }\n };\n EnterpriseMenu.prototype.getGui = function () {\n return this.tabbedLayout.getGui();\n };\n EnterpriseMenu.EVENT_TAB_SELECTED = 'tabSelected';\n EnterpriseMenu.TAB_FILTER = 'filterMenuTab';\n EnterpriseMenu.TAB_GENERAL = 'generalMenuTab';\n EnterpriseMenu.TAB_COLUMNS = 'columnsMenuTab';\n EnterpriseMenu.TABS_DEFAULT = [EnterpriseMenu.TAB_GENERAL, EnterpriseMenu.TAB_FILTER, EnterpriseMenu.TAB_COLUMNS];\n EnterpriseMenu.MENU_ITEM_SEPARATOR = 'separator';\n __decorate$y([\n Autowired('columnModel')\n ], EnterpriseMenu.prototype, \"columnModel\", void 0);\n __decorate$y([\n Autowired('filterManager')\n ], EnterpriseMenu.prototype, \"filterManager\", void 0);\n __decorate$y([\n Autowired('gridApi')\n ], EnterpriseMenu.prototype, \"gridApi\", void 0);\n __decorate$y([\n Autowired('columnApi')\n ], EnterpriseMenu.prototype, \"columnApi\", void 0);\n __decorate$y([\n Autowired('menuItemMapper')\n ], EnterpriseMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$y([\n Autowired('rowModel')\n ], EnterpriseMenu.prototype, \"rowModel\", void 0);\n __decorate$y([\n Autowired('focusService')\n ], EnterpriseMenu.prototype, \"focusService\", void 0);\n __decorate$y([\n PostConstruct\n ], EnterpriseMenu.prototype, \"init\", null);\n return EnterpriseMenu;\n}(BeanStub));\n\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CSS_MENU = 'ag-menu';\nvar CSS_CONTEXT_MENU_OPEN = 'ag-context-menu-open';\nvar ContextMenuFactory = /** @class */ (function (_super) {\n __extends$Q(ContextMenuFactory, _super);\n function ContextMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ContextMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n ContextMenuFactory.prototype.getMenuItems = function (node, column, value) {\n var defaultMenuOptions = [];\n if (_.exists(node) && ModuleRegistry.isRegistered(ModuleNames.ClipboardModule)) {\n if (column) {\n // only makes sense if column exists, could have originated from a row\n defaultMenuOptions.push('copy', 'copyWithHeaders', 'copyWithGroupHeaders', 'paste', 'separator');\n }\n }\n if (this.gridOptionsWrapper.isEnableCharts() &&\n ModuleRegistry.isRegistered(ModuleNames.RangeSelectionModule) &&\n ModuleRegistry.isRegistered(ModuleNames.GridChartsModule)) {\n if (this.columnModel.isPivotMode()) {\n defaultMenuOptions.push('pivotChart');\n }\n if (this.rangeService && !this.rangeService.isEmpty()) {\n defaultMenuOptions.push('chartRange');\n }\n }\n if (_.exists(node)) {\n // if user clicks a cell\n var csvModuleMissing = !ModuleRegistry.isRegistered(ModuleNames.CsvExportModule);\n var excelModuleMissing = !ModuleRegistry.isRegistered(ModuleNames.ExcelExportModule);\n var suppressExcel = this.gridOptionsWrapper.isSuppressExcelExport() || excelModuleMissing;\n var suppressCsv = this.gridOptionsWrapper.isSuppressCsvExport() || csvModuleMissing;\n var onIPad = _.isIOSUserAgent();\n var anyExport = !onIPad && (!suppressExcel || !suppressCsv);\n if (anyExport) {\n defaultMenuOptions.push('export');\n }\n }\n if (this.gridOptionsWrapper.getContextMenuItemsFunc()) {\n var userFunc = this.gridOptionsWrapper.getContextMenuItemsFunc();\n var params = {\n node: node,\n column: column,\n value: value,\n defaultItems: defaultMenuOptions.length ? defaultMenuOptions : undefined,\n };\n return userFunc ? userFunc(params) : undefined;\n }\n return defaultMenuOptions;\n };\n ContextMenuFactory.prototype.onContextMenu = function (mouseEvent, touchEvent, rowNode, column, value, anchorToElement) {\n // to allow us to debug in chrome, we ignore the event if ctrl is pressed.\n // not everyone wants this, so first 'if' below allows to turn this hack off.\n if (!this.gridOptionsWrapper.isAllowContextMenuWithControlKey()) {\n // then do the check\n if (mouseEvent && (mouseEvent.ctrlKey || mouseEvent.metaKey)) {\n return;\n }\n }\n // need to do this regardless of context menu showing or not, so doing\n // before the isSuppressContextMenu() check\n if (mouseEvent) {\n this.blockMiddleClickScrollsIfNeeded(mouseEvent);\n }\n if (this.gridOptionsWrapper.isSuppressContextMenu()) {\n return;\n }\n var eventOrTouch = mouseEvent ? mouseEvent : touchEvent.touches[0];\n if (this.showMenu(rowNode, column, value, eventOrTouch, anchorToElement)) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n event_1.preventDefault();\n }\n };\n ContextMenuFactory.prototype.blockMiddleClickScrollsIfNeeded = function (mouseEvent) {\n // if we don't do this, then middle click will never result in a 'click' event, as 'mousedown'\n // will be consumed by the browser to mean 'scroll' (as you can scroll with the middle mouse\n // button in the browser). so this property allows the user to receive middle button clicks if\n // they want.\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var which = mouseEvent.which;\n if (gridOptionsWrapper.isSuppressMiddleClickScrolls() && which === 2) {\n mouseEvent.preventDefault();\n }\n };\n ContextMenuFactory.prototype.showMenu = function (node, column, value, mouseEvent, anchorToElement) {\n var _this = this;\n var menuItems = this.getMenuItems(node, column, value);\n var eGridBodyGui = this.ctrlsService.getGridBodyCtrl().getGui();\n if (menuItems === undefined || _.missingOrEmpty(menuItems)) {\n return false;\n }\n var menu = new ContextMenu(menuItems);\n this.createBean(menu);\n var eMenuGui = menu.getGui();\n var positionParams = {\n column: column,\n rowNode: node,\n type: 'contextMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenuGui,\n // move one pixel away so that accidentally double clicking\n // won't show the browser's contextmenu\n nudgeY: 1\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function () {\n eGridBodyGui.classList.remove(CSS_CONTEXT_MENU_OPEN);\n _this.destroyBean(menu);\n },\n click: mouseEvent,\n positionCallback: function () {\n _this.popupService.positionPopupUnderMouseEvent(Object.assign({}, {\n nudgeX: _this.gridOptionsWrapper.isEnableRtl() ? (eMenuGui.offsetWidth + 1) * -1 : 1\n }, positionParams));\n },\n // so when browser is scrolled down, or grid is scrolled, context menu stays with cell\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelContextMenu', 'Context Menu')\n });\n if (addPopupRes) {\n eGridBodyGui.classList.add(CSS_CONTEXT_MENU_OPEN);\n menu.afterGuiAttached({ container: 'contextMenu', hidePopup: addPopupRes.hideFunc });\n }\n // there should never be an active menu at this point, however it was found\n // that you could right click a second time just 1 or 2 pixels from the first\n // click, and another menu would pop up. so somehow the logic for closing the\n // first menu (clicking outside should close it) was glitchy somehow. an easy\n // way to avoid this is just remove the old context menu here if it exists.\n if (this.activeMenu) {\n this.hideActiveMenu();\n }\n this.activeMenu = menu;\n menu.addEventListener(BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n // hide the popup if something gets selected\n if (addPopupRes) {\n menu.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, addPopupRes.hideFunc);\n }\n return true;\n };\n __decorate$x([\n Autowired('popupService')\n ], ContextMenuFactory.prototype, \"popupService\", void 0);\n __decorate$x([\n Optional('rangeService')\n ], ContextMenuFactory.prototype, \"rangeService\", void 0);\n __decorate$x([\n Autowired('ctrlsService')\n ], ContextMenuFactory.prototype, \"ctrlsService\", void 0);\n __decorate$x([\n Autowired('columnModel')\n ], ContextMenuFactory.prototype, \"columnModel\", void 0);\n ContextMenuFactory = __decorate$x([\n Bean('contextMenuFactory')\n ], ContextMenuFactory);\n return ContextMenuFactory;\n}(BeanStub));\nvar ContextMenu = /** @class */ (function (_super) {\n __extends$Q(ContextMenu, _super);\n function ContextMenu(menuItems) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.menuList = null;\n _this.focusedCell = null;\n _this.menuItems = menuItems;\n return _this;\n }\n ContextMenu.prototype.addMenuItems = function () {\n var _this = this;\n var menuList = this.createManagedBean(new AgMenuList());\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(this.menuItems, null);\n menuList.addMenuItems(menuItemsMapped);\n this.appendChild(menuList);\n this.menuList = menuList;\n menuList.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n };\n ContextMenu.prototype.afterGuiAttached = function (params) {\n if (params.hidePopup) {\n this.addDestroyFunc(params.hidePopup);\n }\n this.focusedCell = this.focusService.getFocusedCell();\n if (this.menuList) {\n this.focusService.focusInto(this.menuList.getGui());\n }\n };\n ContextMenu.prototype.restoreFocusedCell = function () {\n var currentFocusedCell = this.focusService.getFocusedCell();\n if (currentFocusedCell && this.focusedCell && this.cellPositionUtils.equals(currentFocusedCell, this.focusedCell)) {\n var _a = this.focusedCell, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;\n var doc = this.gridOptionsWrapper.getDocument();\n if (doc.activeElement === doc.body) {\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: column, rowPinned: rowPinned, forceBrowserFocus: true });\n }\n }\n };\n ContextMenu.prototype.destroy = function () {\n this.restoreFocusedCell();\n _super.prototype.destroy.call(this);\n };\n __decorate$x([\n Autowired('menuItemMapper')\n ], ContextMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$x([\n Autowired('focusService')\n ], ContextMenu.prototype, \"focusService\", void 0);\n __decorate$x([\n Autowired('cellPositionUtils')\n ], ContextMenu.prototype, \"cellPositionUtils\", void 0);\n __decorate$x([\n PostConstruct\n ], ContextMenu.prototype, \"addMenuItems\", null);\n return ContextMenu;\n}(Component));\n\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MenuItemMapper = /** @class */ (function (_super) {\n __extends$P(MenuItemMapper, _super);\n function MenuItemMapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MenuItemMapper.prototype.mapWithStockItems = function (originalList, column) {\n var _this = this;\n if (!originalList) {\n return [];\n }\n var resultList = [];\n originalList.forEach(function (menuItemOrString) {\n var result;\n if (typeof menuItemOrString === 'string') {\n result = _this.getStockMenuItem(menuItemOrString, column);\n }\n else {\n result = menuItemOrString;\n }\n // if no mapping, can happen when module is not loaded but user tries to use module anyway\n if (!result) {\n return;\n }\n var resultDef = result;\n var subMenu = resultDef.subMenu;\n if (subMenu && subMenu instanceof Array) {\n resultDef.subMenu = _this.mapWithStockItems(resultDef.subMenu, column);\n }\n if (result != null) {\n resultList.push(result);\n }\n });\n return resultList;\n };\n MenuItemMapper.prototype.getStockMenuItem = function (key, column) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var skipHeaderOnAutoSize = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n switch (key) {\n case 'pinSubMenu':\n return {\n name: localeTextFunc('pinColumn', 'Pin Column'),\n icon: _.createIconNoSpan('menuPin', this.gridOptionsWrapper, null),\n subMenu: ['pinLeft', 'pinRight', 'clearPinned']\n };\n case 'pinLeft':\n return {\n name: localeTextFunc('pinLeft', 'Pin Left'),\n action: function () { return _this.columnModel.setColumnPinned(column, Constants.PINNED_LEFT, \"contextMenu\"); },\n checked: !!column && column.isPinnedLeft()\n };\n case 'pinRight':\n return {\n name: localeTextFunc('pinRight', 'Pin Right'),\n action: function () { return _this.columnModel.setColumnPinned(column, Constants.PINNED_RIGHT, \"contextMenu\"); },\n checked: !!column && column.isPinnedRight()\n };\n case 'clearPinned':\n return {\n name: localeTextFunc('noPin', 'No Pin'),\n action: function () { return _this.columnModel.setColumnPinned(column, null, \"contextMenu\"); },\n checked: !!column && !column.isPinned()\n };\n case 'valueAggSubMenu':\n if (ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Aggregation from Menu')) {\n return {\n name: localeTextFunc('valueAggregation', 'Value Aggregation'),\n icon: _.createIconNoSpan('menuValue', this.gridOptionsWrapper, null),\n subMenu: this.createAggregationSubMenu(column)\n };\n }\n else {\n return null;\n }\n case 'autoSizeThis':\n return {\n name: localeTextFunc('autosizeThiscolumn', 'Autosize This Column'),\n action: function () { return _this.columnModel.autoSizeColumn(column, skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'autoSizeAll':\n return {\n name: localeTextFunc('autosizeAllColumns', 'Autosize All Columns'),\n action: function () { return _this.columnModel.autoSizeAllColumns(skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'rowGroup':\n return {\n name: localeTextFunc('groupBy', 'Group by') + ' ' + _.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n action: function () { return _this.columnModel.addRowGroupColumn(column, \"contextMenu\"); },\n icon: _.createIconNoSpan('menuAddRowGroup', this.gridOptionsWrapper, null)\n };\n case 'rowUnGroup':\n return {\n name: localeTextFunc('ungroupBy', 'Un-Group by') + ' ' + _.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n action: function () { return _this.columnModel.removeRowGroupColumn(column, \"contextMenu\"); },\n icon: _.createIconNoSpan('menuRemoveRowGroup', this.gridOptionsWrapper, null)\n };\n case 'resetColumns':\n return {\n name: localeTextFunc('resetColumns', 'Reset Columns'),\n action: function () { return _this.columnModel.resetColumnState(\"contextMenu\"); }\n };\n case 'expandAll':\n return {\n name: localeTextFunc('expandAll', 'Expand All'),\n action: function () { return _this.gridApi.expandAll(); }\n };\n case 'contractAll':\n return {\n name: localeTextFunc('collapseAll', 'Collapse All'),\n action: function () { return _this.gridApi.collapseAll(); }\n };\n case 'copy':\n if (ModuleRegistry.assertRegistered(ModuleNames.ClipboardModule, 'Copy from Menu')) {\n return {\n name: localeTextFunc('copy', 'Copy'),\n shortcut: localeTextFunc('ctrlC', 'Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'copyWithHeaders':\n if (ModuleRegistry.assertRegistered(ModuleNames.ClipboardModule, 'Copy with Headers from Menu')) {\n return {\n name: localeTextFunc('copyWithHeaders', 'Copy with Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'copyWithGroupHeaders':\n if (ModuleRegistry.assertRegistered(ModuleNames.ClipboardModule, 'Copy with Group Headers from Menu')) {\n return {\n name: localeTextFunc('copyWithGroupHeaders', 'Copy with Group Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true, includeGroupHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'paste':\n if (ModuleRegistry.assertRegistered(ModuleNames.ClipboardModule, 'Paste from Clipboard')) {\n return {\n name: localeTextFunc('paste', 'Paste'),\n shortcut: localeTextFunc('ctrlV', 'Ctrl+V'),\n disabled: true,\n icon: _.createIconNoSpan('clipboardPaste', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.pasteFromClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'export':\n var exportSubMenuItems = [];\n var csvModuleLoaded = ModuleRegistry.isRegistered(ModuleNames.CsvExportModule);\n var excelModuleLoaded = ModuleRegistry.isRegistered(ModuleNames.ExcelExportModule);\n if (!this.gridOptionsWrapper.isSuppressCsvExport() && csvModuleLoaded) {\n exportSubMenuItems.push('csvExport');\n }\n if (!this.gridOptionsWrapper.isSuppressExcelExport() && excelModuleLoaded) {\n exportSubMenuItems.push('excelExport');\n }\n return {\n name: localeTextFunc('export', 'Export'),\n subMenu: exportSubMenuItems,\n icon: _.createIconNoSpan('save', this.gridOptionsWrapper, null),\n };\n case 'csvExport':\n return {\n name: localeTextFunc('csvExport', 'CSV Export'),\n icon: _.createIconNoSpan('csvExport', this.gridOptionsWrapper, null),\n action: function () { return _this.gridApi.exportDataAsCsv({}); }\n };\n case 'excelExport':\n return {\n name: localeTextFunc('excelExport', 'Excel Export'),\n icon: _.createIconNoSpan('excelExport', this.gridOptionsWrapper, null),\n action: function () { return _this.gridApi.exportDataAsExcel(); }\n };\n case 'separator':\n return 'separator';\n default:\n var chartMenuItem = this.getChartItems(key);\n if (chartMenuItem) {\n return chartMenuItem;\n }\n else {\n console.warn(\"AG Grid: unknown menu item type \" + key);\n return null;\n }\n }\n };\n MenuItemMapper.prototype.getChartItems = function (key) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var pivotChartMenuItem = function (localeKey, defaultText, chartType) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createPivotChart({ chartType: chartType }); }\n };\n };\n var rangeChartMenuItem = function (localeKey, defaultText, chartType) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createChartFromCurrentRange(chartType); }\n };\n };\n switch (key) {\n case 'pivotChart':\n return {\n name: localeTextFunc('pivotChart', 'Pivot Chart'),\n subMenu: [\n 'pivotColumnChart',\n 'pivotBarChart',\n 'pivotPieChart',\n 'pivotLineChart',\n 'pivotXYChart',\n 'pivotAreaChart'\n ],\n icon: _.createIconNoSpan('chart', this.gridOptionsWrapper, null),\n };\n case 'chartRange':\n return {\n name: localeTextFunc('chartRange', 'Chart Range'),\n subMenu: [\n 'rangeColumnChart',\n 'rangeBarChart',\n 'rangePieChart',\n 'rangeLineChart',\n 'rangeXYChart',\n 'rangeAreaChart',\n 'rangeHistogramChart',\n 'rangeCombinationChart'\n ],\n icon: _.createIconNoSpan('chart', this.gridOptionsWrapper, null),\n };\n case 'pivotColumnChart':\n return {\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: ['pivotGroupedColumn', 'pivotStackedColumn', 'pivotNormalizedColumn']\n };\n case 'pivotGroupedColumn':\n return pivotChartMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn');\n case 'pivotStackedColumn':\n return pivotChartMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn');\n case 'pivotNormalizedColumn':\n return pivotChartMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn');\n case 'rangeColumnChart':\n return {\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: ['rangeGroupedColumn', 'rangeStackedColumn', 'rangeNormalizedColumn']\n };\n case 'rangeGroupedColumn':\n return rangeChartMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn');\n case 'rangeStackedColumn':\n return rangeChartMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn');\n case 'rangeNormalizedColumn':\n return rangeChartMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn');\n case 'pivotBarChart':\n return {\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: ['pivotGroupedBar', 'pivotStackedBar', 'pivotNormalizedBar']\n };\n case 'pivotGroupedBar':\n return pivotChartMenuItem('groupedBar', 'Grouped‎', 'groupedBar');\n case 'pivotStackedBar':\n return pivotChartMenuItem('stackedBar', 'Stacked‎', 'stackedBar');\n case 'pivotNormalizedBar':\n return pivotChartMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar');\n case 'rangeBarChart':\n return {\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: ['rangeGroupedBar', 'rangeStackedBar', 'rangeNormalizedBar']\n };\n case 'rangeGroupedBar':\n return rangeChartMenuItem('groupedBar', 'Grouped‎', 'groupedBar');\n case 'rangeStackedBar':\n return rangeChartMenuItem('stackedBar', 'Stacked‎', 'stackedBar');\n case 'rangeNormalizedBar':\n return rangeChartMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar');\n case 'pivotPieChart':\n return {\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: ['pivotPie', 'pivotDoughnut']\n };\n case 'pivotPie':\n return pivotChartMenuItem('pie', 'Pie‎', 'pie');\n case 'pivotDoughnut':\n return pivotChartMenuItem('doughnut', 'Doughnut‎', 'doughnut');\n case 'rangePieChart':\n return {\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: ['rangePie', 'rangeDoughnut']\n };\n case 'rangePie':\n return rangeChartMenuItem('pie', 'Pie‎', 'pie');\n case 'rangeDoughnut':\n return rangeChartMenuItem('doughnut', 'Doughnut‎', 'doughnut');\n case 'pivotLineChart':\n return pivotChartMenuItem('line', 'Line‎', 'line');\n case 'rangeLineChart':\n return rangeChartMenuItem('line', 'Line‎', 'line');\n case 'pivotXYChart':\n return {\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: ['pivotScatter', 'pivotBubble']\n };\n case 'pivotScatter':\n return pivotChartMenuItem('scatter', 'Scatter‎', 'scatter');\n case 'pivotBubble':\n return pivotChartMenuItem('bubble', 'Bubble‎', 'bubble');\n case 'rangeXYChart':\n return {\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: ['rangeScatter', 'rangeBubble']\n };\n case 'rangeScatter':\n return rangeChartMenuItem('scatter', 'Scatter‎', 'scatter');\n case 'rangeBubble':\n return rangeChartMenuItem('bubble', 'Bubble‎', 'bubble');\n case 'pivotAreaChart':\n return {\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: ['pivotArea', 'pivotStackedArea', 'pivotNormalizedArea']\n };\n case 'pivotArea':\n return pivotChartMenuItem('area', 'Area‎', 'area');\n case 'pivotStackedArea':\n return pivotChartMenuItem('stackedArea', 'Stacked‎', 'stackedArea');\n case 'pivotNormalizedArea':\n return pivotChartMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea');\n case 'rangeAreaChart':\n return {\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: ['rangeArea', 'rangeStackedArea', 'rangeNormalizedArea']\n };\n case 'rangeArea':\n return rangeChartMenuItem('area', 'Area‎', 'area');\n case 'rangeStackedArea':\n return rangeChartMenuItem('stackedArea', 'Stacked‎', 'stackedArea');\n case 'rangeNormalizedArea':\n return rangeChartMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea');\n case 'rangeHistogramChart':\n return rangeChartMenuItem('histogramChart', 'Histogram‎', 'histogram');\n case 'rangeColumnLineCombo':\n return rangeChartMenuItem('columnLineCombo', 'Column & Line‎', 'columnLineCombo');\n case 'rangeAreaColumnCombo':\n return rangeChartMenuItem('AreaColumnCombo', 'Area & Column‎', 'areaColumnCombo');\n case 'rangeCombinationChart':\n return {\n name: localeTextFunc('combinationChart', 'Combination'),\n subMenu: ['rangeColumnLineCombo', 'rangeAreaColumnCombo']\n };\n default:\n return null;\n }\n };\n MenuItemMapper.prototype.createAggregationSubMenu = function (column) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnToUse;\n if (column.isPrimary()) {\n columnToUse = column;\n }\n else {\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n columnToUse = _.exists(pivotValueColumn) ? pivotValueColumn : undefined;\n }\n var result = [];\n if (columnToUse) {\n var columnIsAlreadyAggValue_1 = columnToUse.isValueActive();\n var funcNames = this.aggFuncService.getFuncNames(columnToUse);\n funcNames.forEach(function (funcName) {\n result.push({\n name: localeTextFunc(funcName, funcName),\n action: function () {\n _this.columnModel.setColumnAggFunc(columnToUse, funcName, \"contextMenu\");\n _this.columnModel.addValueColumn(columnToUse, \"contextMenu\");\n },\n checked: columnIsAlreadyAggValue_1 && columnToUse.getAggFunc() === funcName\n });\n });\n }\n return result;\n };\n __decorate$w([\n Autowired('columnModel')\n ], MenuItemMapper.prototype, \"columnModel\", void 0);\n __decorate$w([\n Autowired('gridApi')\n ], MenuItemMapper.prototype, \"gridApi\", void 0);\n __decorate$w([\n Optional('clipboardService')\n ], MenuItemMapper.prototype, \"clipboardService\", void 0);\n __decorate$w([\n Optional('aggFuncService')\n ], MenuItemMapper.prototype, \"aggFuncService\", void 0);\n __decorate$w([\n Optional('chartService')\n ], MenuItemMapper.prototype, \"chartService\", void 0);\n MenuItemMapper = __decorate$w([\n Bean('menuItemMapper')\n ], MenuItemMapper);\n return MenuItemMapper;\n}(BeanStub));\n\nvar MenuModule = {\n moduleName: ModuleNames.MenuModule,\n beans: [EnterpriseMenuFactory, ContextMenuFactory, MenuItemMapper],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFilter = /** @class */ (function (_super) {\n __extends$O(MultiFilter, _super);\n function MultiFilter() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.filterDefs = [];\n _this.filters = [];\n _this.guiDestroyFuncs = [];\n _this.activeFilterIndices = [];\n _this.lastActivatedMenuItem = null;\n _this.afterFiltersReadyFuncs = [];\n return _this;\n }\n MultiFilter.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); }\n });\n };\n MultiFilter.getFilterDefs = function (params) {\n var filters = params.filters;\n return filters && filters.length > 0 ?\n filters :\n [{ filter: 'agTextColumnFilter' }, { filter: 'agSetColumnFilter' }];\n };\n MultiFilter.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.filterDefs = MultiFilter.getFilterDefs(params);\n var column = params.column, filterChangedCallback = params.filterChangedCallback;\n this.column = column;\n this.filterChangedCallback = filterChangedCallback;\n var filterPromises = [];\n this.filterDefs.forEach(function (filterDef, index) {\n var filterPromise = _this.createFilter(filterDef, index);\n if (filterPromise != null) {\n filterPromises.push(filterPromise);\n }\n });\n // we have to refresh the GUI here to ensure that Angular components are not rendered in odd places\n return AgPromise\n .all(filterPromises)\n .then(function (filters) {\n _this.filters = filters;\n _this.refreshGui('columnMenu');\n _this.afterFiltersReadyFuncs.forEach(function (f) { return f(); });\n _this.afterFiltersReadyFuncs.length = 0;\n });\n };\n MultiFilter.prototype.refreshGui = function (container) {\n var _this = this;\n if (container === this.lastOpenedInContainer) {\n return;\n }\n this.removeAllChildrenExceptTabGuards();\n this.destroyChildren();\n this.filters.forEach(function (filter, index) {\n if (index > 0) {\n _this.appendChild(_.loadTemplate(/* html */ \"
\"));\n }\n var filterDef = _this.filterDefs[index];\n var filterTitle = _this.getFilterTitle(filter, filterDef);\n var filterGui;\n if (filterDef.display === 'subMenu' && container !== 'toolPanel') {\n // prevent sub-menu being used in tool panel\n var menuItem = _this.insertFilterMenu(filter, filterTitle);\n filterGui = menuItem.getGui();\n }\n else if (filterDef.display === 'subMenu' || filterDef.display === 'accordion') {\n // sub-menus should appear as groups in the tool panel\n var group = _this.insertFilterGroup(filter, filterTitle);\n filterGui = group.getGui();\n }\n else {\n // display inline\n filterGui = filter.getGui();\n }\n _this.appendChild(filterGui);\n });\n this.lastOpenedInContainer = container;\n };\n MultiFilter.prototype.getFilterTitle = function (filter, filterDef) {\n if (filterDef.title != null) {\n return filterDef.title;\n }\n var filterWithoutType = filter;\n return typeof filterWithoutType.getFilterTitle === 'function' ? filterWithoutType.getFilterTitle() : 'Filter';\n };\n MultiFilter.prototype.destroyChildren = function () {\n this.guiDestroyFuncs.forEach(function (func) { return func(); });\n this.guiDestroyFuncs.length = 0;\n };\n MultiFilter.prototype.insertFilterMenu = function (filter, name) {\n var _this = this;\n var menuItem = this.createBean(new AgMenuItemComponent({\n name: name,\n subMenu: filter,\n cssClasses: ['ag-multi-filter-menu-item'],\n isCompact: true,\n isAnotherSubMenuOpen: function () { return false; },\n }));\n menuItem.setParentComponent(this);\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(menuItem); });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.lastActivatedMenuItem && _this.lastActivatedMenuItem !== event.menuItem) {\n _this.lastActivatedMenuItem.deactivate();\n }\n _this.lastActivatedMenuItem = event.menuItem;\n });\n menuItem.addGuiEventListener('focusin', function () { return menuItem.activate(); });\n menuItem.addGuiEventListener('focusout', function () {\n if (!menuItem.isSubMenuOpen()) {\n menuItem.deactivate();\n }\n });\n return menuItem;\n };\n MultiFilter.prototype.insertFilterGroup = function (filter, title) {\n var _this = this;\n var group = this.createBean(new AgGroupComponent({\n title: title,\n cssIdentifier: 'multi-filter',\n }));\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(group); });\n group.addItem(filter.getGui());\n group.toggleGroupExpand(false);\n if (filter.afterGuiAttached) {\n var params_1 = { container: this.lastOpenedInContainer, suppressFocus: true };\n group.addManagedListener(group, AgGroupComponent.EVENT_EXPANDED, function () { return filter.afterGuiAttached(params_1); });\n }\n return group;\n };\n MultiFilter.prototype.isFilterActive = function () {\n return this.filters.some(function (filter) { return filter.isFilterActive(); });\n };\n MultiFilter.prototype.getLastActiveFilterIndex = function () {\n return this.activeFilterIndices.length > 0 ? this.activeFilterIndices[this.activeFilterIndices.length - 1] : null;\n };\n MultiFilter.prototype.doesFilterPass = function (params, filterToSkip) {\n var rowPasses = true;\n this.filters.forEach(function (filter) {\n if (!rowPasses || filter === filterToSkip || !filter.isFilterActive()) {\n return;\n }\n rowPasses = filter.doesFilterPass(params);\n });\n return rowPasses;\n };\n MultiFilter.prototype.getFilterType = function () {\n return 'multi';\n };\n MultiFilter.prototype.getModelFromUi = function () {\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n var providedFilter = filter;\n if (typeof providedFilter.getModelFromUi === 'function') {\n return providedFilter.getModelFromUi();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.getModel = function () {\n if (!this.isFilterActive()) {\n return null;\n }\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n if (filter.isFilterActive()) {\n return filter.getModel();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.setModel = function (model) {\n var _this = this;\n var setFilterModel = function (filter, filterModel) {\n return new AgPromise(function (resolve) {\n var promise = filter.setModel(filterModel);\n promise ? promise.then(function () { return resolve(); }) : resolve();\n });\n };\n var promises = [];\n if (model == null) {\n promises = this.filters.map(function (filter, index) {\n var res = setFilterModel(filter, null);\n _this.updateActiveList(index);\n return res;\n });\n }\n else {\n this.filters.forEach(function (filter, index) {\n var filterModel = model.filterModels.length > index ? model.filterModels[index] : null;\n var res = setFilterModel(filter, filterModel);\n promises.push(res);\n _this.updateActiveList(index);\n });\n }\n return AgPromise.all(promises).then(function () { });\n };\n MultiFilter.prototype.applyModel = function () {\n var result = false;\n this.filters.forEach(function (filter) {\n if (filter instanceof ProvidedFilter) {\n result = filter.applyModel() || result;\n }\n });\n return result;\n };\n MultiFilter.prototype.getChildFilterInstance = function (index) {\n return this.filters[index];\n };\n MultiFilter.prototype.afterGuiAttached = function (params) {\n if (params) {\n this.refreshGui(params.container);\n }\n var filters = this.params.filters;\n var suppressFocus = filters && filters.some(function (filter) { return filter.display && filter.display !== 'inline'; });\n this.executeFunctionIfExists('afterGuiAttached', __assign$3(__assign$3({}, params || {}), { suppressFocus: suppressFocus }));\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n // if suppress focus is true, we might run into two scenarios:\n // 1 - we are loading the filter for the first time and the component isn't ready,\n // which means the document will have focus.\n // 2 - The focus will be somewhere inside the component due to auto focus\n // In both cases we need to force the focus somewhere valid but outside the filter.\n if (suppressFocus && (activeEl === eDocument.body || this.getGui().contains(activeEl))) {\n // reset focus to the top of the container, and blur\n this.forceFocusOutOfContainer(true);\n }\n };\n MultiFilter.prototype.onAnyFilterChanged = function () {\n this.executeFunctionIfExists('onAnyFilterChanged');\n };\n MultiFilter.prototype.onNewRowsLoaded = function () {\n this.executeFunctionIfExists('onNewRowsLoaded');\n };\n MultiFilter.prototype.destroy = function () {\n var _this = this;\n this.filters.forEach(function (filter) {\n filter.setModel(null);\n _this.destroyBean(filter);\n });\n this.filters.length = 0;\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n MultiFilter.prototype.executeFunctionIfExists = function (name) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n // The first filter is always the \"dominant\" one. By iterating in reverse order we ensure the first filter\n // always gets the last say\n _.forEachReverse(this.filters, function (filter) {\n var func = filter[name];\n if (typeof func === 'function') {\n func.apply(filter, params);\n }\n });\n };\n MultiFilter.prototype.createFilter = function (filterDef, index) {\n var _this = this;\n var _a = this.params, filterModifiedCallback = _a.filterModifiedCallback, doesRowPassOtherFilter = _a.doesRowPassOtherFilter;\n var filterInstance;\n var filterParams = __assign$3(__assign$3({}, this.filterManager.createFilterParams(this.column, this.column.getColDef())), { filterModifiedCallback: filterModifiedCallback, filterChangedCallback: function (additionalEventAttributes) {\n _this.executeWhenAllFiltersReady(function () { return _this.filterChanged(index, additionalEventAttributes); });\n }, doesRowPassOtherFilter: function (node) {\n return doesRowPassOtherFilter(node) && _this.doesFilterPass({ node: node, data: node.data }, filterInstance);\n } });\n var compDetails = this.userComponentFactory.getFilterDetails(filterDef, filterParams, 'agTextColumnFilter');\n if (!compDetails) {\n return null;\n }\n var filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(function (filter) { return filterInstance = filter; });\n }\n return filterPromise;\n };\n MultiFilter.prototype.executeWhenAllFiltersReady = function (action) {\n if (this.filters && this.filters.length > 0) {\n action();\n }\n else {\n this.afterFiltersReadyFuncs.push(action);\n }\n };\n MultiFilter.prototype.updateActiveList = function (index) {\n var changedFilter = this.filters[index];\n _.removeFromArray(this.activeFilterIndices, index);\n if (changedFilter.isFilterActive()) {\n this.activeFilterIndices.push(index);\n }\n };\n MultiFilter.prototype.filterChanged = function (index, additionalEventAttributes) {\n this.updateActiveList(index);\n this.filterChangedCallback(additionalEventAttributes);\n var changedFilter = this.filters[index];\n this.filters.forEach(function (filter) {\n if (filter === changedFilter) {\n return;\n }\n if (typeof filter.onAnyFilterChanged === 'function') {\n filter.onAnyFilterChanged();\n }\n });\n };\n MultiFilter.prototype.onFocusIn = function (e) {\n if (this.lastActivatedMenuItem != null && !this.lastActivatedMenuItem.getGui().contains(e.target)) {\n this.lastActivatedMenuItem.deactivate();\n this.lastActivatedMenuItem = null;\n }\n return true;\n };\n __decorate$v([\n Autowired('filterManager')\n ], MultiFilter.prototype, \"filterManager\", void 0);\n __decorate$v([\n Autowired('userComponentFactory')\n ], MultiFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$v([\n PostConstruct\n ], MultiFilter.prototype, \"postConstruct\", null);\n return MultiFilter;\n}(TabGuardComp));\n\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFloatingFilterComp = /** @class */ (function (_super) {\n __extends$N(MultiFloatingFilterComp, _super);\n function MultiFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.floatingFilters = [];\n return _this;\n }\n MultiFloatingFilterComp.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n var filterParams = params.filterParams;\n var floatingFilterPromises = [];\n MultiFilter.getFilterDefs(filterParams).forEach(function (filterDef, index) {\n var floatingFilterParams = __assign$2(__assign$2({}, params), { \n // set the parent filter instance for each floating filter to the relevant child filter instance\n parentFilterInstance: function (callback) {\n _this.parentMultiFilterInstance(function (parent) {\n var child = parent.getChildFilterInstance(index);\n if (child == null) {\n return;\n }\n callback(child);\n });\n } });\n var floatingFilterPromise = _this.createFloatingFilter(filterDef, floatingFilterParams);\n if (floatingFilterPromise != null) {\n floatingFilterPromises.push(floatingFilterPromise);\n }\n });\n return AgPromise.all(floatingFilterPromises).then(function (floatingFilters) {\n floatingFilters.forEach(function (floatingFilter, index) {\n _this.floatingFilters.push(floatingFilter);\n var gui = floatingFilter.getGui();\n _this.appendChild(gui);\n if (index > 0) {\n _.setDisplayed(gui, false);\n }\n });\n });\n };\n MultiFloatingFilterComp.prototype.onParentModelChanged = function (model, event) {\n var _this = this;\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (event && event.afterFloatingFilter) {\n return;\n }\n this.parentMultiFilterInstance(function (parent) {\n if (model == null) {\n _this.floatingFilters.forEach(function (filter, i) {\n filter.onParentModelChanged(null, event);\n _.setDisplayed(filter.getGui(), i === 0);\n });\n }\n else {\n var lastActiveFloatingFilterIndex_1 = parent.getLastActiveFilterIndex();\n _this.floatingFilters.forEach(function (filter, i) {\n var filterModel = model.filterModels.length > i ? model.filterModels[i] : null;\n filter.onParentModelChanged(filterModel, event);\n var shouldShow = lastActiveFloatingFilterIndex_1 == null ? i === 0 : i === lastActiveFloatingFilterIndex_1;\n _.setDisplayed(filter.getGui(), shouldShow);\n });\n }\n });\n };\n MultiFloatingFilterComp.prototype.destroy = function () {\n this.destroyBeans(this.floatingFilters);\n this.floatingFilters.length = 0;\n _super.prototype.destroy.call(this);\n };\n MultiFloatingFilterComp.prototype.createFloatingFilter = function (filterDef, params) {\n var defaultComponentName = this.userComponentFactory.getDefaultFloatingFilterType(filterDef) || 'agTextColumnFloatingFilter';\n var compDetails = this.userComponentFactory.getFloatingFilterCompDetails(filterDef, params, defaultComponentName);\n return compDetails ? compDetails.newAgStackInstance() : null;\n };\n MultiFloatingFilterComp.prototype.parentMultiFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (parent) {\n if (!(parent instanceof MultiFilter)) {\n throw new Error('AG Grid - MultiFloatingFilterComp expects MultiFilter as it\\'s parent');\n }\n cb(parent);\n });\n };\n __decorate$u([\n Autowired('userComponentFactory')\n ], MultiFloatingFilterComp.prototype, \"userComponentFactory\", void 0);\n return MultiFloatingFilterComp;\n}(Component));\n\nvar MultiFilterModule = {\n moduleName: ModuleNames.MultiFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agMultiColumnFilter', componentClass: MultiFilter },\n { componentName: 'agMultiColumnFloatingFilter', componentClass: MultiFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RichSelectRow = /** @class */ (function (_super) {\n __extends$M(RichSelectRow, _super);\n function RichSelectRow(params) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n return _this;\n }\n RichSelectRow.prototype.setState = function (value, valueFormatted, selected) {\n var rendererSuccessful = this.populateWithRenderer(value, valueFormatted);\n if (!rendererSuccessful) {\n this.populateWithoutRenderer(value, valueFormatted);\n }\n this.updateSelected(selected);\n };\n RichSelectRow.prototype.updateSelected = function (selected) {\n this.addOrRemoveCssClass('ag-rich-select-row-selected', selected);\n };\n RichSelectRow.prototype.populateWithoutRenderer = function (value, valueFormatted) {\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n var valueToRender = valueFormattedExits ? valueFormatted : value;\n if (_.exists(valueToRender) && valueToRender !== '') {\n // not using innerHTML to prevent injection of HTML\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML#Security_considerations\n this.getGui().textContent = valueToRender.toString();\n }\n else {\n // putting in blank, so if missing, at least the user can click on it\n this.getGui().innerHTML = ' ';\n }\n };\n RichSelectRow.prototype.populateWithRenderer = function (value, valueFormatted) {\n var _this = this;\n // bad coder here - we are not populating all values of the cellRendererParams\n var params = {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsWrapper.getApi()\n };\n var compDetails = this.userComponentFactory.getCellRendererDetails(this.params, params);\n var cellRendererPromise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (cellRendererPromise != null) {\n _.bindCellRendererToHtmlElement(cellRendererPromise, this.getGui());\n }\n else {\n this.getGui().innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n if (cellRendererPromise) {\n cellRendererPromise.then(function (childComponent) {\n _this.addDestroyFunc(function () {\n _this.getContext().destroyBean(childComponent);\n });\n });\n return true;\n }\n return false;\n };\n __decorate$t([\n Autowired('userComponentFactory')\n ], RichSelectRow.prototype, \"userComponentFactory\", void 0);\n return RichSelectRow;\n}(Component));\n\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RichSelectCellEditor = /** @class */ (function (_super) {\n __extends$L(RichSelectCellEditor, _super);\n function RichSelectCellEditor() {\n var _this = _super.call(this, RichSelectCellEditor.TEMPLATE) || this;\n _this.selectionConfirmed = false;\n _this.searchString = '';\n return _this;\n }\n RichSelectCellEditor.prototype.init = function (params) {\n this.params = params;\n this.selectedValue = params.value;\n this.originalSelectedValue = params.value;\n this.focusAfterAttached = params.cellStartedEdit;\n var icon = _.createIconNoSpan('smallDown', this.gridOptionsWrapper);\n icon.classList.add('ag-rich-select-value-icon');\n this.eValue.appendChild(icon);\n this.virtualList = this.createManagedBean(new VirtualList('rich-select'));\n this.virtualList.setComponentCreator(this.createRowComponent.bind(this));\n this.eList.appendChild(this.virtualList.getGui());\n if (_.exists(this.params.cellHeight)) {\n this.virtualList.setRowHeight(this.params.cellHeight);\n }\n this.renderSelectedValue();\n if (_.missing(params.values)) {\n console.warn('AG Grid: richSelectCellEditor requires values for it to work');\n return;\n }\n var values = params.values;\n this.virtualList.setModel({\n getRowCount: function () { return values.length; },\n getRow: function (index) { return values[index]; }\n });\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n var virtualListGui = this.virtualList.getGui();\n this.addManagedListener(virtualListGui, 'click', this.onClick.bind(this));\n this.addManagedListener(virtualListGui, 'mousemove', this.onMouseMove.bind(this));\n var debounceDelay = _.exists(params.searchDebounceDelay) ? params.searchDebounceDelay : 300;\n this.clearSearchString = _.debounce(this.clearSearchString, debounceDelay);\n if (_.exists(params.charPress)) {\n this.searchText(params.charPress);\n }\n };\n RichSelectCellEditor.prototype.onKeyDown = function (event) {\n var key = event.key;\n event.preventDefault();\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown();\n break;\n case KeyCode.TAB:\n this.confirmSelection();\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onNavigationKeyPressed(event, key);\n break;\n default:\n this.searchText(event);\n }\n };\n RichSelectCellEditor.prototype.confirmSelection = function () {\n this.selectionConfirmed = true;\n };\n RichSelectCellEditor.prototype.onEnterKeyDown = function () {\n this.confirmSelection();\n this.params.stopEditing();\n };\n RichSelectCellEditor.prototype.onNavigationKeyPressed = function (event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n var oldIndex = this.params.values.indexOf(this.selectedValue);\n var newIndex = key === KeyCode.UP ? oldIndex - 1 : oldIndex + 1;\n if (newIndex >= 0 && newIndex < this.params.values.length) {\n var valueToSelect = this.params.values[newIndex];\n this.setSelectedValue(valueToSelect);\n }\n };\n RichSelectCellEditor.prototype.searchText = function (key) {\n if (typeof key !== 'string') {\n var keyString = key.key;\n if (keyString === KeyCode.BACKSPACE) {\n this.searchString = this.searchString.slice(0, -1);\n keyString = '';\n }\n else if (!_.isEventFromPrintableCharacter(key)) {\n return;\n }\n this.searchText(keyString);\n return;\n }\n this.searchString += key;\n this.runSearch();\n this.clearSearchString();\n };\n RichSelectCellEditor.prototype.runSearch = function () {\n var _this = this;\n var values = this.params.values;\n var searchStrings;\n if (typeof values[0] === 'number' || typeof values[0] === 'string') {\n searchStrings = values.map(String);\n }\n if (typeof values[0] === 'object' && this.params.colDef.keyCreator) {\n searchStrings = values.map(function (value) {\n var keyParams = {\n value: value,\n colDef: _this.params.colDef,\n column: _this.params.column,\n node: _this.params.node,\n data: _this.params.data,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n };\n return _this.params.colDef.keyCreator(keyParams);\n });\n }\n if (!searchStrings) {\n return;\n }\n var topSuggestion = _.fuzzySuggestions(this.searchString, searchStrings, true, true)[0];\n if (!topSuggestion) {\n return;\n }\n var topSuggestionIndex = searchStrings.indexOf(topSuggestion);\n var topValue = values[topSuggestionIndex];\n this.setSelectedValue(topValue);\n };\n RichSelectCellEditor.prototype.clearSearchString = function () {\n this.searchString = '';\n };\n RichSelectCellEditor.prototype.renderSelectedValue = function () {\n var _this = this;\n var valueFormatted = this.params.formatValue(this.selectedValue);\n var eValue = this.eValue;\n var params = {\n value: this.selectedValue,\n valueFormatted: valueFormatted,\n api: this.gridOptionsWrapper.getApi(),\n };\n var compDetails = this.userComponentFactory.getCellRendererDetails(this.params, params);\n var promise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (promise) {\n _.bindCellRendererToHtmlElement(promise, eValue);\n promise.then(function (renderer) {\n _this.addDestroyFunc(function () { return _this.getContext().destroyBean(renderer); });\n });\n }\n else {\n if (_.exists(this.selectedValue)) {\n eValue.innerText = valueFormatted;\n }\n else {\n _.clearElement(eValue);\n }\n }\n };\n RichSelectCellEditor.prototype.setSelectedValue = function (value) {\n if (this.selectedValue === value) {\n return;\n }\n var index = this.params.values.indexOf(value);\n if (index === -1) {\n return;\n }\n this.selectedValue = value;\n this.virtualList.ensureIndexVisible(index);\n this.virtualList.forEachRenderedRow(function (cmp, idx) {\n cmp.updateSelected(index === idx);\n });\n this.virtualList.focusRow(index);\n };\n RichSelectCellEditor.prototype.createRowComponent = function (value) {\n var valueFormatted = this.params.formatValue(value);\n var row = new RichSelectRow(this.params);\n this.getContext().createBean(row);\n row.setState(value, valueFormatted, value === this.selectedValue);\n return row;\n };\n RichSelectCellEditor.prototype.onMouseMove = function (mouseEvent) {\n var rect = this.virtualList.getGui().getBoundingClientRect();\n var scrollTop = this.virtualList.getScrollTop();\n var mouseY = mouseEvent.clientY - rect.top + scrollTop;\n var row = Math.floor(mouseY / this.virtualList.getRowHeight());\n var value = this.params.values[row];\n // not using utils.exist() as want empty string test to pass\n if (value !== undefined) {\n this.setSelectedValue(value);\n }\n };\n RichSelectCellEditor.prototype.onClick = function () {\n this.confirmSelection();\n this.params.stopEditing();\n };\n // we need to have the gui attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the gui state\n RichSelectCellEditor.prototype.afterGuiAttached = function () {\n var selectedIndex = this.params.values.indexOf(this.selectedValue);\n // we have to call this here to get the list to have the right height, ie\n // otherwise it would not have scrolls yet and ensureIndexVisible would do nothing\n this.virtualList.refresh();\n if (selectedIndex >= 0) {\n this.virtualList.ensureIndexVisible(selectedIndex);\n }\n // we call refresh again, as the list could of moved, and we need to render the new rows\n this.virtualList.refresh();\n if (this.focusAfterAttached) {\n var indexToSelect = selectedIndex !== -1 ? selectedIndex : 0;\n if (this.params.values.length) {\n this.virtualList.focusRow(indexToSelect);\n }\n else {\n this.getGui().focus();\n }\n }\n };\n RichSelectCellEditor.prototype.getValue = function () {\n // NOTE: we don't use valueParser for Set Filter. The user should provide values that are to be\n // set into the data. valueParser only really makese sense when the user is typing in text (not picking\n // form a set).\n return this.selectionConfirmed ? this.selectedValue : this.originalSelectedValue;\n };\n // tab index is needed so we can focus, which is needed for keyboard events\n RichSelectCellEditor.TEMPLATE = \"
\\n
\\n
\\n
\";\n __decorate$s([\n Autowired('userComponentFactory')\n ], RichSelectCellEditor.prototype, \"userComponentFactory\", void 0);\n __decorate$s([\n RefSelector('eValue')\n ], RichSelectCellEditor.prototype, \"eValue\", void 0);\n __decorate$s([\n RefSelector('eList')\n ], RichSelectCellEditor.prototype, \"eList\", void 0);\n return RichSelectCellEditor;\n}(PopupComponent));\n\nvar RichSelectModule = {\n moduleName: ModuleNames.RichSelectModule,\n beans: [],\n userComponents: [\n { componentName: 'agRichSelect', componentClass: RichSelectCellEditor },\n { componentName: 'agRichSelectCellEditor', componentClass: RichSelectCellEditor }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ServerSideRowModel = /** @class */ (function (_super) {\n __extends$K(ServerSideRowModel, _super);\n function ServerSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onRowHeightChanged_debounced = _.debounce(_this.onRowHeightChanged.bind(_this), 100);\n _this.pauseStoreUpdateListening = false;\n _this.started = false;\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ServerSideRowModel.prototype.ensureRowHeightsValid = function () { return false; };\n ServerSideRowModel.prototype.start = function () {\n this.started = true;\n var datasource = this.gridOptionsWrapper.getServerSideDatasource();\n if (datasource) {\n this.setDatasource(datasource);\n }\n };\n ServerSideRowModel.prototype.destroyDatasource = function () {\n if (!this.datasource) {\n return;\n }\n if (this.datasource.destroy) {\n this.datasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.datasource = undefined;\n };\n ServerSideRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onStoreUpdated.bind(this));\n var resetListener = this.resetRootStore.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, resetListener);\n this.verifyProps();\n };\n ServerSideRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsWrapper.getInitialGroupOrderComparator() != null) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Server Side Row Model. If using Full Store, then provide the rows to the grid in the desired sort order. If using Infinite Scroll, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'SSRM.InitialGroupOrderComparator');\n }\n if (this.gridOptionsWrapper.isRowSelection() && this.gridOptionsWrapper.getRowIdFunc() == null) {\n var message_2 = \"AG Grid: getRowId callback must be provided for Server Side Row Model selection to work correctly.\";\n _.doOnce(function () { return console.warn(message_2); }, 'SSRM.SelectionNeedsRowNodeIdFunc');\n }\n };\n ServerSideRowModel.prototype.setDatasource = function (datasource) {\n // sometimes React, due to async, can call gridApi.setDatasource() before we have started.\n // this happens when React app does this:\n // useEffect(() => setDatasource(ds), []);\n // thus if we set the datasource before the grid UI has finished initialising, we do not set it,\n // and the ssrm.start() method will set the datasoure when the grid is ready.\n if (!this.started) {\n return;\n }\n this.destroyDatasource();\n this.datasource = datasource;\n this.resetRootStore();\n };\n ServerSideRowModel.prototype.isLastRowIndexKnown = function () {\n var cache = this.getRootStore();\n if (!cache) {\n return false;\n }\n return cache.isLastRowIndexKnown();\n };\n ServerSideRowModel.prototype.onColumnEverything = function () {\n // this is a hack for one customer only, so they can suppress the resetting of the columns.\n // The problem the customer had was they were api.setColumnDefs() after the data source came\n // back with data. So this stops the reload from the grid after the data comes back.\n // Once we have \"AG-1591 Allow delta changes to columns\" fixed, then this hack can be taken out.\n if (this.gridOptionsWrapper.isSuppressEnterpriseResetOnNewColumns()) {\n return;\n }\n // every other customer can continue as normal and have it working!!!\n // if first time, alwasy reset\n if (!this.storeParams) {\n this.resetRootStore();\n return;\n }\n // check if anything pertaining to fetching data has changed, and if it has, reset, but if\n // it has not, don't reset\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n var sortModelDifferent = !_.jsonEquals(this.storeParams.sortModel, this.sortController.getSortModel());\n var rowGroupDifferent = !_.jsonEquals(this.storeParams.rowGroupCols, rowGroupColumnVos);\n var pivotDifferent = !_.jsonEquals(this.storeParams.pivotCols, pivotColumnVos);\n var valuesDifferent = !_.jsonEquals(this.storeParams.valueCols, valueColumnVos);\n var resetRequired = sortModelDifferent || rowGroupDifferent || pivotDifferent || valuesDifferent;\n if (resetRequired) {\n this.resetRootStore();\n }\n };\n ServerSideRowModel.prototype.destroyRootStore = function () {\n if (!this.rootNode || !this.rootNode.childStore) {\n return;\n }\n this.rootNode.childStore = this.destroyBean(this.rootNode.childStore);\n this.nodeManager.clear();\n };\n ServerSideRowModel.prototype.refreshAfterSort = function (newSortModel, params) {\n if (this.storeParams) {\n this.storeParams.sortModel = newSortModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterSort(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.resetRootStore = function () {\n this.destroyRootStore();\n this.rootNode = new RowNode(this.beans);\n this.rootNode.group = true;\n this.rootNode.level = -1;\n if (this.datasource) {\n this.storeParams = this.createStoreParams();\n this.rootNode.childStore = this.createBean(this.storeFactory.createStore(this.storeParams, this.rootNode));\n this.updateRowIndexesAndBounds();\n }\n // this event shows/hides 'no rows' overlay\n var rowDataChangedEvent = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n // this gets the row to render rows (or remove the previously rendered rows, as it's blank to start).\n // important to NOT pass in an event with keepRenderedRows or animate, as we want the renderer\n // to treat the rows as new rows, as it's all new data\n this.dispatchModelUpdated(true);\n };\n ServerSideRowModel.prototype.columnsToValueObjects = function (columns) {\n var _this = this;\n return columns.map(function (col) { return ({\n id: col.getId(),\n aggFunc: col.getAggFunc(),\n displayName: _this.columnModel.getDisplayNameForColumn(col, 'model'),\n field: col.getColDef().field\n }); });\n };\n ServerSideRowModel.prototype.createStoreParams = function () {\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n var dynamicRowHeight = this.gridOptionsWrapper.isDynamicRowHeight();\n var params = {\n // the columns the user has grouped and aggregated by\n valueCols: valueColumnVos,\n rowGroupCols: rowGroupColumnVos,\n pivotCols: pivotColumnVos,\n pivotMode: this.columnModel.isPivotMode(),\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortListener.extractSortModel(),\n datasource: this.datasource,\n lastAccessedSequence: new NumberSequence(),\n // blockSize: blockSize == null ? 100 : blockSize,\n dynamicRowHeight: dynamicRowHeight\n };\n return params;\n };\n ServerSideRowModel.prototype.getParams = function () {\n return this.storeParams;\n };\n ServerSideRowModel.prototype.dispatchModelUpdated = function (reset) {\n if (reset === void 0) { reset = false; }\n var modelUpdatedEvent = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: !reset,\n keepRenderedRows: !reset,\n newPage: false,\n newData: false\n };\n this.eventService.dispatchEvent(modelUpdatedEvent);\n };\n ServerSideRowModel.prototype.onStoreUpdated = function () {\n // sometimes if doing a batch update, we do the batch first,\n // then call onStoreUpdated manually. eg expandAll() method.\n if (this.pauseStoreUpdateListening) {\n return;\n }\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n /** This method is debounced. It is used for row auto-height. If we don't debounce,\n * then the Row Models will end up recalculating each row position\n * for each row height change and result in the Row Renderer laying out rows.\n * This is particularly bad if using print layout, and showing eg 1,000 rows,\n * each row will change it's height, causing Row Model to update 1,000 times.\n */\n ServerSideRowModel.prototype.onRowHeightChangedDebounced = function () {\n this.onRowHeightChanged_debounced();\n };\n ServerSideRowModel.prototype.onRowHeightChanged = function () {\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n ServerSideRowModel.prototype.updateRowIndexesAndBounds = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.setDisplayIndexes(new NumberSequence(), { value: 0 });\n };\n ServerSideRowModel.prototype.retryLoads = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.retryLoads();\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRow = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return undefined;\n }\n return rootStore.getRowUsingDisplayIndex(index);\n };\n ServerSideRowModel.prototype.expandAll = function (value) {\n // if we don't pause store updating, we are needlessly\n // recalculating row-indexes etc, and also getting rendering\n // engine to re-render (listens on ModelUpdated event)\n this.pauseStoreUpdateListening = true;\n this.forEachNode(function (node) {\n if (node.group && !node.stub) {\n node.setExpanded(value);\n }\n });\n this.pauseStoreUpdateListening = false;\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.refreshAfterFilter = function (newFilterModel, params) {\n if (this.storeParams) {\n this.storeParams.filterModel = newFilterModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterFilter(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRootStore = function () {\n if (this.rootNode && this.rootNode.childStore) {\n return this.rootNode.childStore;\n }\n };\n ServerSideRowModel.prototype.getRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 0;\n }\n return rootStore.getDisplayIndexEnd();\n };\n ServerSideRowModel.prototype.getTopLevelRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 1;\n }\n return rootStore.getRowCount();\n };\n ServerSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return topLevelIndex;\n }\n return rootStore.getTopLevelRowDisplayedIndex(topLevelIndex);\n };\n ServerSideRowModel.prototype.getRowBounds = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n return {\n rowTop: 0,\n rowHeight: rowHeight\n };\n }\n return rootStore.getRowBounds(index);\n };\n ServerSideRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n var rootStore = this.getRootStore();\n if (pixel <= 0 || !rootStore) {\n return 0;\n }\n return rootStore.getRowIndexAtPixel(pixel);\n };\n ServerSideRowModel.prototype.isEmpty = function () {\n return false;\n };\n ServerSideRowModel.prototype.isRowsToRender = function () {\n return this.getRootStore() != null && this.getRowCount() > 0;\n };\n ServerSideRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n ServerSideRowModel.prototype.forEachNode = function (callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeep(callback);\n };\n ServerSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeepAfterFilterAndSort(callback);\n };\n ServerSideRowModel.prototype.executeOnStore = function (route, callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n var storeToExecuteOn = rootStore.getChildStore(route);\n if (storeToExecuteOn) {\n callback(storeToExecuteOn);\n }\n };\n ServerSideRowModel.prototype.refreshStore = function (params) {\n if (params === void 0) { params = {}; }\n var route = params.route ? params.route : [];\n this.executeOnStore(route, function (store) { return store.refreshStore(params.purge == true); });\n };\n ServerSideRowModel.prototype.getStoreState = function () {\n var res = [];\n var rootStore = this.getRootStore();\n if (rootStore) {\n rootStore.addStoreStates(res);\n }\n return res;\n };\n ServerSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n if (_.exists(lastInRange) && firstInRange.parent !== lastInRange.parent) {\n return [];\n }\n return firstInRange.parent.childStore.getRowNodesInRange(lastInRange, firstInRange);\n };\n ServerSideRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n if (rowNode.detailNode && rowNode.detailNode.id === id) {\n result = rowNode.detailNode;\n }\n });\n return result;\n };\n ServerSideRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n __decorate$r([\n Autowired('columnModel')\n ], ServerSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$r([\n Autowired('filterManager')\n ], ServerSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$r([\n Autowired('sortController')\n ], ServerSideRowModel.prototype, \"sortController\", void 0);\n __decorate$r([\n Autowired('rowRenderer')\n ], ServerSideRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$r([\n Autowired('ssrmSortService')\n ], ServerSideRowModel.prototype, \"sortListener\", void 0);\n __decorate$r([\n Autowired('ssrmNodeManager')\n ], ServerSideRowModel.prototype, \"nodeManager\", void 0);\n __decorate$r([\n Autowired('ssrmStoreFactory')\n ], ServerSideRowModel.prototype, \"storeFactory\", void 0);\n __decorate$r([\n Autowired('beans')\n ], ServerSideRowModel.prototype, \"beans\", void 0);\n __decorate$r([\n PreDestroy\n ], ServerSideRowModel.prototype, \"destroyDatasource\", null);\n __decorate$r([\n PostConstruct\n ], ServerSideRowModel.prototype, \"addEventListeners\", null);\n __decorate$r([\n PreDestroy\n ], ServerSideRowModel.prototype, \"destroyRootStore\", null);\n ServerSideRowModel = __decorate$r([\n Bean('rowModel')\n ], ServerSideRowModel);\n return ServerSideRowModel;\n}(BeanStub));\n\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreUtils = /** @class */ (function (_super) {\n __extends$J(StoreUtils, _super);\n function StoreUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StoreUtils.prototype.loadFromDatasource = function (p) {\n var storeParams = p.storeParams, parentBlock = p.parentBlock, parentNode = p.parentNode;\n var groupKeys = parentNode.getGroupKeys();\n if (!storeParams.datasource) {\n return;\n }\n var request = {\n startRow: p.startRow,\n endRow: p.endRow,\n rowGroupCols: storeParams.rowGroupCols,\n valueCols: storeParams.valueCols,\n pivotCols: storeParams.pivotCols,\n pivotMode: storeParams.pivotMode,\n groupKeys: groupKeys,\n filterModel: storeParams.filterModel,\n sortModel: storeParams.sortModel\n };\n var getRowsParams = {\n successCallback: p.successCallback,\n success: p.success,\n failCallback: p.failCallback,\n fail: p.fail,\n request: request,\n parentNode: p.parentNode,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n window.setTimeout(function () {\n if (!storeParams.datasource || !parentBlock.isAlive()) {\n // failCallback() is important, to reduce the 'RowNodeBlockLoader.activeBlockLoadsCount' count\n p.failCallback();\n return;\n }\n storeParams.datasource.getRows(getRowsParams);\n }, 0);\n };\n StoreUtils.prototype.getChildStore = function (keys, currentCache, findNodeFunc) {\n if (_.missingOrEmpty(keys)) {\n return currentCache;\n }\n var nextKey = keys[0];\n var nextNode = findNodeFunc(nextKey);\n if (nextNode) {\n var keyListForNextLevel = keys.slice(1, keys.length);\n var nextStore = nextNode.childStore;\n return nextStore ? nextStore.getChildStore(keyListForNextLevel) : null;\n }\n return null;\n };\n StoreUtils.prototype.isServerRefreshNeeded = function (parentRowNode, rowGroupCols, params) {\n if (params.valueColChanged || params.secondaryColChanged) {\n return true;\n }\n var level = parentRowNode.level + 1;\n var grouping = level < rowGroupCols.length;\n var leafNodes = !grouping;\n if (leafNodes) {\n return true;\n }\n var colIdThisGroup = rowGroupCols[level].id;\n var actionOnThisGroup = params.changedColumns.indexOf(colIdThisGroup) > -1;\n if (actionOnThisGroup) {\n return true;\n }\n var allCols = this.columnModel.getAllGridColumns();\n var affectedGroupCols = allCols\n // find all impacted cols which also a group display column\n .filter(function (col) { return col.getColDef().showRowGroup && params.changedColumns.includes(col.getId()); })\n .map(function (col) { return col.getColDef().showRowGroup; })\n // if displaying all groups, or displaying the effected col for this group, refresh\n .some(function (group) { return group === true || group === colIdThisGroup; });\n return affectedGroupCols;\n };\n __decorate$q([\n Autowired('columnApi')\n ], StoreUtils.prototype, \"columnApi\", void 0);\n __decorate$q([\n Autowired('columnModel')\n ], StoreUtils.prototype, \"columnModel\", void 0);\n __decorate$q([\n Autowired('gridApi')\n ], StoreUtils.prototype, \"gridApi\", void 0);\n StoreUtils = __decorate$q([\n Bean('ssrmStoreUtils')\n ], StoreUtils);\n return StoreUtils;\n}(BeanStub));\n\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BlockUtils = /** @class */ (function (_super) {\n __extends$I(BlockUtils, _super);\n function BlockUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockUtils.prototype.postConstruct = function () {\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.usingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n };\n BlockUtils.prototype.createRowNode = function (params) {\n var rowNode = new RowNode(this.beans);\n var rowHeight = params.rowHeight != null ? params.rowHeight : this.rowHeight;\n rowNode.setRowHeight(rowHeight);\n rowNode.group = params.group;\n rowNode.leafGroup = params.leafGroup;\n rowNode.level = params.level;\n rowNode.uiLevel = params.level;\n rowNode.parent = params.parent;\n // stub gets set to true here, and then false when this rowNode gets it's data\n rowNode.stub = true;\n if (rowNode.group) {\n rowNode.expanded = false;\n rowNode.field = params.field;\n rowNode.rowGroupColumn = params.rowGroupColumn;\n }\n return rowNode;\n };\n BlockUtils.prototype.destroyRowNodes = function (rowNodes) {\n var _this = this;\n if (rowNodes) {\n rowNodes.forEach(function (row) { return _this.destroyRowNode(row); });\n }\n };\n BlockUtils.prototype.destroyRowNode = function (rowNode, preserveStore) {\n if (preserveStore === void 0) { preserveStore = false; }\n if (rowNode.childStore && !preserveStore) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n }\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown. maybe\n // rowNode should have a flag on whether it is visible???\n rowNode.clearRowTopAndRowIndex();\n if (rowNode.id != null) {\n this.nodeManager.removeNode(rowNode);\n }\n };\n BlockUtils.prototype.setTreeGroupInfo = function (rowNode) {\n var isGroupFunc = this.gridOptionsWrapper.getIsServerSideGroupFunc();\n var getKeyFunc = this.gridOptionsWrapper.getServerSideGroupKeyFunc();\n if (isGroupFunc != null) {\n rowNode.setGroup(isGroupFunc(rowNode.data));\n if (rowNode.group && getKeyFunc != null) {\n rowNode.key = getKeyFunc(rowNode.data);\n }\n }\n if (!rowNode.group && rowNode.childStore != null) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n }\n };\n BlockUtils.prototype.setRowGroupInfo = function (rowNode) {\n rowNode.key = this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n if (rowNode.key === null || rowNode.key === undefined) {\n _.doOnce(function () {\n console.warn(\"AG Grid: null and undefined values are not allowed for server side row model keys\");\n if (rowNode.rowGroupColumn) {\n console.warn(\"column = \" + rowNode.rowGroupColumn.getId());\n }\n console.warn(\"data is \", rowNode.data);\n }, 'ServerSideBlock-CannotHaveNullOrUndefinedForKey');\n }\n };\n BlockUtils.prototype.setMasterDetailInfo = function (rowNode) {\n var isMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();\n if (isMasterFunc != null) {\n rowNode.master = isMasterFunc(rowNode.data);\n }\n else {\n rowNode.master = true;\n }\n };\n BlockUtils.prototype.updateDataIntoRowNode = function (rowNode, data) {\n rowNode.updateData(data);\n if (this.usingTreeData) {\n this.setTreeGroupInfo(rowNode);\n }\n else if (rowNode.group) ;\n else if (this.usingMasterDetail) ;\n };\n BlockUtils.prototype.setDataIntoRowNode = function (rowNode, data, defaultId, cachedRowHeight) {\n rowNode.stub = false;\n if (_.exists(data)) {\n rowNode.setDataAndId(data, defaultId);\n if (this.usingTreeData) {\n this.setTreeGroupInfo(rowNode);\n }\n else if (rowNode.group) {\n this.setRowGroupInfo(rowNode);\n }\n else if (this.usingMasterDetail) {\n this.setMasterDetailInfo(rowNode);\n }\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n rowNode.key = null;\n }\n if (this.usingTreeData || rowNode.group) {\n this.setGroupDataIntoRowNode(rowNode);\n this.setChildCountIntoRowNode(rowNode);\n }\n // this needs to be done AFTER setGroupDataIntoRowNode(), as the height can depend on the group data\n // getting set, if it's a group node and colDef.autoHeight=true\n if (_.exists(data)) {\n rowNode.setRowHeight(this.gridOptionsWrapper.getRowHeightForNode(rowNode, false, cachedRowHeight).height);\n }\n };\n BlockUtils.prototype.setChildCountIntoRowNode = function (rowNode) {\n var getChildCount = this.gridOptionsWrapper.getChildCountFunc();\n if (getChildCount) {\n rowNode.allChildrenCount = getChildCount(rowNode.data);\n }\n };\n BlockUtils.prototype.setGroupDataIntoRowNode = function (rowNode) {\n var _this = this;\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n groupDisplayCols.forEach(function (col) {\n if (rowNode.groupData == null) {\n rowNode.groupData = {};\n }\n if (usingTreeData) {\n rowNode.groupData[col.getColId()] = rowNode.key;\n }\n else if (col.isRowGroupDisplayed(rowNode.rowGroupColumn.getId())) {\n var groupValue = _this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n rowNode.groupData[col.getColId()] = groupValue;\n }\n });\n };\n BlockUtils.prototype.clearDisplayIndex = function (rowNode) {\n rowNode.clearRowTopAndRowIndex();\n var hasChildStore = rowNode.group && _.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n childStore.clearDisplayIndexes();\n }\n var hasDetailNode = rowNode.master && rowNode.detailNode;\n if (hasDetailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n };\n BlockUtils.prototype.setDisplayIndex = function (rowNode, displayIndexSeq, nextRowTop) {\n // set this row\n rowNode.setRowIndex(displayIndexSeq.next());\n rowNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.rowHeight;\n // set child for master / detail\n var hasDetailRow = rowNode.master;\n if (hasDetailRow) {\n if (rowNode.expanded && rowNode.detailNode) {\n rowNode.detailNode.setRowIndex(displayIndexSeq.next());\n rowNode.detailNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.detailNode.rowHeight;\n }\n else if (rowNode.detailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n }\n // set children for SSRM child rows\n var hasChildStore = rowNode.group && _.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n if (rowNode.expanded) {\n childStore.setDisplayIndexes(displayIndexSeq, nextRowTop);\n }\n else {\n // we need to clear the row tops, as the row renderer depends on\n // this to know if the row should be faded out\n childStore.clearDisplayIndexes();\n }\n }\n };\n BlockUtils.prototype.binarySearchForDisplayIndex = function (displayRowIndex, rowNodes) {\n var bottomPointer = 0;\n var topPointer = rowNodes.length - 1;\n if (_.missing(topPointer) || _.missing(bottomPointer)) {\n console.warn(\"AG Grid: error: topPointer = \" + topPointer + \", bottomPointer = \" + bottomPointer);\n return undefined;\n }\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = rowNodes[midPointer];\n // first check current row for index\n if (currentRowNode.rowIndex === displayRowIndex) {\n return currentRowNode;\n }\n // then check if current row contains a detail row with the index\n var expandedMasterRow = currentRowNode.master && currentRowNode.expanded;\n var detailNode = currentRowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.rowIndex === displayRowIndex) {\n return currentRowNode.detailNode;\n }\n // then check if child cache contains index\n var childStore = currentRowNode.childStore;\n if (currentRowNode.expanded && childStore && childStore.isDisplayIndexInStore(displayRowIndex)) {\n return childStore.getRowUsingDisplayIndex(displayRowIndex);\n }\n // otherwise adjust pointers to continue searching for index\n if (currentRowNode.rowIndex < displayRowIndex) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowIndex > displayRowIndex) {\n topPointer = midPointer - 1;\n }\n else {\n console.warn(\"AG Grid: error: unable to locate rowIndex = \" + displayRowIndex + \" in cache\");\n return undefined;\n }\n }\n };\n BlockUtils.prototype.extractRowBounds = function (rowNode, index) {\n var extractRowBounds = function (currentRowNode) { return ({\n rowHeight: currentRowNode.rowHeight,\n rowTop: currentRowNode.rowTop\n }); };\n if (rowNode.rowIndex === index) {\n return extractRowBounds(rowNode);\n }\n if (rowNode.group && rowNode.expanded && _.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isDisplayIndexInStore(index)) {\n return childStore.getRowBounds(index);\n }\n }\n else if (rowNode.master && rowNode.expanded && _.exists(rowNode.detailNode)) {\n if (rowNode.detailNode.rowIndex === index) {\n return extractRowBounds(rowNode.detailNode);\n }\n }\n };\n BlockUtils.prototype.getIndexAtPixel = function (rowNode, pixel) {\n // first check if pixel is in range of current row\n if (rowNode.isPixelInRange(pixel)) {\n return rowNode.rowIndex;\n }\n // then check if current row contains a detail row with pixel in range\n var expandedMasterRow = rowNode.master && rowNode.expanded;\n var detailNode = rowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.isPixelInRange(pixel)) {\n return rowNode.detailNode.rowIndex;\n }\n // then check if it's a group row with a child cache with pixel in range\n if (rowNode.group && rowNode.expanded && _.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isPixelInRange(pixel)) {\n return childStore.getRowIndexAtPixel(pixel);\n }\n }\n return null;\n // pixel is not within this row node or it's children / detail, so return undefined\n };\n BlockUtils.prototype.createNodeIdPrefix = function (parentRowNode) {\n var parts = [];\n var rowNode = parentRowNode;\n // pull keys from all parent nodes, but do not include the root node\n while (rowNode && rowNode.level >= 0) {\n parts.push(rowNode.key);\n rowNode = rowNode.parent;\n }\n if (parts.length > 0) {\n return parts.reverse().join('-');\n }\n // no prefix, so node id's are left as they are\n return undefined;\n };\n BlockUtils.prototype.checkOpenByDefault = function (rowNode) {\n if (!rowNode.isExpandable()) {\n return;\n }\n var userFunc = this.gridOptionsWrapper.getIsServerSideGroupOpenByDefaultFunc();\n if (!userFunc) {\n return;\n }\n var params = {\n data: rowNode.data,\n rowNode: rowNode\n };\n var userFuncRes = userFunc(params);\n if (userFuncRes) {\n // we do this in a timeout, so that we don't expand a row node while in the middle\n // of setting up rows, setting up rows is complex enough without another chunk of work\n // getting added to the call stack. this is also helpful as openByDefault may or may\n // not happen (so makes setting up rows more deterministic by expands never happening)\n // and also checkOpenByDefault is shard with both store types, so easier control how it\n // impacts things by keeping it in new VM turn.\n window.setTimeout(function () { return rowNode.setExpanded(true); }, 0);\n }\n };\n __decorate$p([\n Autowired('valueService')\n ], BlockUtils.prototype, \"valueService\", void 0);\n __decorate$p([\n Autowired('columnModel')\n ], BlockUtils.prototype, \"columnModel\", void 0);\n __decorate$p([\n Autowired('ssrmNodeManager')\n ], BlockUtils.prototype, \"nodeManager\", void 0);\n __decorate$p([\n Autowired('beans')\n ], BlockUtils.prototype, \"beans\", void 0);\n __decorate$p([\n PostConstruct\n ], BlockUtils.prototype, \"postConstruct\", null);\n BlockUtils = __decorate$p([\n Bean('ssrmBlockUtils')\n ], BlockUtils);\n return BlockUtils;\n}(BeanStub));\n\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NodeManager = /** @class */ (function () {\n function NodeManager() {\n this.rowNodes = {};\n }\n NodeManager.prototype.addRowNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n console.warn(\"AG Grid: Duplicate node id \" + rowNode.id + \". Row ID's are provided via the getRowId() callback. Please modify the getRowId() callback code to provide unique row id values.\");\n console.warn('first instance', this.rowNodes[id].data);\n console.warn('second instance', rowNode.data);\n }\n this.rowNodes[id] = rowNode;\n };\n NodeManager.prototype.removeNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n this.rowNodes[id] = undefined;\n }\n };\n NodeManager.prototype.clear = function () {\n this.rowNodes = {};\n };\n __decorate$o([\n PreDestroy\n ], NodeManager.prototype, \"clear\", null);\n NodeManager = __decorate$o([\n Bean('ssrmNodeManager')\n ], NodeManager);\n return NodeManager;\n}());\n\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TransactionManager = /** @class */ (function (_super) {\n __extends$H(TransactionManager, _super);\n function TransactionManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.asyncTransactions = [];\n return _this;\n }\n TransactionManager.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n };\n TransactionManager.prototype.applyTransactionAsync = function (transaction, callback) {\n if (this.asyncTransactionsTimeout == null) {\n this.scheduleExecuteAsync();\n }\n this.asyncTransactions.push({ transaction: transaction, callback: callback });\n };\n TransactionManager.prototype.scheduleExecuteAsync = function () {\n var _this = this;\n var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();\n this.asyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeAsyncTransactions();\n }, waitMillis);\n };\n TransactionManager.prototype.executeAsyncTransactions = function () {\n var _this = this;\n if (!this.asyncTransactions) {\n return;\n }\n var resultFuncs = [];\n var resultsForEvent = [];\n var transactionsToRetry = [];\n var atLeastOneTransactionApplied = false;\n this.asyncTransactions.forEach(function (txWrapper) {\n var result;\n _this.serverSideRowModel.executeOnStore(txWrapper.transaction.route, function (cache) {\n result = cache.applyTransaction(txWrapper.transaction);\n });\n if (result == undefined) {\n result = { status: ServerSideTransactionResultStatus.StoreNotFound };\n }\n resultsForEvent.push(result);\n var retryTransaction = result.status == ServerSideTransactionResultStatus.StoreLoading;\n if (retryTransaction) {\n transactionsToRetry.push(txWrapper);\n return;\n }\n if (txWrapper.callback) {\n resultFuncs.push(function () { return txWrapper.callback(result); });\n }\n if (result.status === ServerSideTransactionResultStatus.Applied) {\n atLeastOneTransactionApplied = true;\n }\n });\n // do callbacks in next VM turn so it's async\n if (resultFuncs.length > 0) {\n window.setTimeout(function () {\n resultFuncs.forEach(function (func) { return func(); });\n }, 0);\n }\n this.asyncTransactionsTimeout = undefined;\n // this will be empty list if nothing to retry\n this.asyncTransactions = transactionsToRetry;\n if (atLeastOneTransactionApplied) {\n this.valueCache.onDataChanged();\n this.eventService.dispatchEvent({ type: Events.EVENT_STORE_UPDATED });\n }\n if (resultsForEvent.length > 0) {\n var event_1 = {\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: resultsForEvent\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n TransactionManager.prototype.flushAsyncTransactions = function () {\n // the timeout could be missing, if we are flushing due to row data loaded\n if (this.asyncTransactionsTimeout != null) {\n clearTimeout(this.asyncTransactionsTimeout);\n }\n this.executeAsyncTransactions();\n };\n TransactionManager.prototype.applyTransaction = function (transaction) {\n var _this = this;\n var res;\n this.serverSideRowModel.executeOnStore(transaction.route, function (store) {\n res = store.applyTransaction(transaction);\n });\n if (res) {\n this.valueCache.onDataChanged();\n this.eventService.dispatchEvent({ type: Events.EVENT_STORE_UPDATED });\n if (res.update && res.update.length) {\n // this set timeout is necessary to queue behind the listener for EVENT_STORE_UPDATED in ssrm which recalculates the rowIndexes\n // if the rowIndex isn't calculated first the binarySearchForDisplayIndex will not be able to find the required rows\n setTimeout(function () {\n // refresh the full width rows\n _this.rowRenderer.refreshFullWidthRows(res.update);\n }, 0);\n }\n return res;\n }\n else {\n return { status: ServerSideTransactionResultStatus.StoreNotFound };\n }\n };\n __decorate$n([\n Autowired('rowNodeBlockLoader')\n ], TransactionManager.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$n([\n Autowired('valueCache')\n ], TransactionManager.prototype, \"valueCache\", void 0);\n __decorate$n([\n Autowired('rowModel')\n ], TransactionManager.prototype, \"serverSideRowModel\", void 0);\n __decorate$n([\n Autowired('rowRenderer')\n ], TransactionManager.prototype, \"rowRenderer\", void 0);\n __decorate$n([\n PostConstruct\n ], TransactionManager.prototype, \"postConstruct\", null);\n TransactionManager = __decorate$n([\n Bean('ssrmTransactionManager')\n ], TransactionManager);\n return TransactionManager;\n}(BeanStub));\n\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandListener = /** @class */ (function (_super) {\n __extends$G(ExpandListener, _super);\n function ExpandListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExpandListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));\n };\n ExpandListener.prototype.onRowGroupOpened = function (event) {\n var rowNode = event.node;\n if (rowNode.expanded) {\n if (rowNode.master) {\n this.createDetailNode(rowNode);\n }\n else if (_.missing(rowNode.childStore)) {\n var storeParams = this.serverSideRowModel.getParams();\n rowNode.childStore = this.createBean(this.storeFactory.createStore(storeParams, rowNode));\n }\n }\n else if (this.gridOptionsWrapper.isPurgeClosedRowNodes() && _.exists(rowNode.childStore)) {\n rowNode.childStore = this.destroyBean(rowNode.childStore);\n }\n var storeUpdatedEvent = { type: Events.EVENT_STORE_UPDATED };\n this.eventService.dispatchEvent(storeUpdatedEvent);\n };\n ExpandListener.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n var defaultDetailRowHeight = 200;\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(detailNode).height;\n detailNode.rowHeight = rowHeight ? rowHeight : defaultDetailRowHeight;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$m([\n Autowired('rowModel')\n ], ExpandListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$m([\n Autowired('ssrmStoreFactory')\n ], ExpandListener.prototype, \"storeFactory\", void 0);\n __decorate$m([\n Autowired('beans')\n ], ExpandListener.prototype, \"beans\", void 0);\n __decorate$m([\n PostConstruct\n ], ExpandListener.prototype, \"postConstruct\", null);\n ExpandListener = __decorate$m([\n Bean('ssrmExpandListener')\n ], ExpandListener);\n return ExpandListener;\n}(BeanStub));\n\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortListener = /** @class */ (function (_super) {\n __extends$F(SortListener, _super);\n function SortListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n };\n SortListener.prototype.extractSortModel = function () {\n var sortModel = this.sortController.getSortModel();\n // when using tree data we just return the sort model with the 'ag-Grid-AutoColumn' as is, i.e not broken out\n // into it's constitute group columns as they are not defined up front and can vary per node.\n if (this.gridOptionsWrapper.isTreeData()) {\n return sortModel;\n }\n // it autoCol is active, we don't want to send this to the server. instead we want to\n // send the\n this.replaceAutoGroupColumnWithActualRowGroupColumns(sortModel);\n this.removeMultiColumnPrefixOnColumnIds(sortModel);\n return sortModel;\n };\n SortListener.prototype.removeMultiColumnPrefixOnColumnIds = function (sortModel) {\n if (this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n var multiColumnPrefix = Constants.GROUP_AUTO_COLUMN_ID + \"-\";\n for (var i = 0; i < sortModel.length; ++i) {\n if (sortModel[i].colId.indexOf(multiColumnPrefix) > -1) {\n sortModel[i].colId = sortModel[i].colId.substr(multiColumnPrefix.length);\n }\n }\n }\n };\n SortListener.prototype.replaceAutoGroupColumnWithActualRowGroupColumns = function (sortModel) {\n // find index of auto group column in sort model\n var autoGroupSortModel = sortModel.find(function (sm) { return sm.colId == Constants.GROUP_AUTO_COLUMN_ID; });\n // replace auto column with individual group columns\n if (autoGroupSortModel) {\n // remove auto group column\n var autoGroupIndex = sortModel.indexOf(autoGroupSortModel);\n _.removeFromArray(sortModel, autoGroupSortModel);\n var isNotInSortModel = function (col) { return sortModel.filter(function (sm) { return sm.colId === col.getColId(); }).length == 0; };\n var mapColumnToSortModel = function (col) { return ({ colId: col.getId(), sort: autoGroupSortModel.sort }); };\n var newModels = this.columnModel.getRowGroupColumns()\n .filter(isNotInSortModel)\n .map(mapColumnToSortModel);\n _.insertArrayIntoArray(sortModel, newModels, autoGroupIndex);\n }\n };\n SortListener.prototype.onSortChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newSortModel = this.extractSortModel();\n var oldSortModel = storeParams.sortModel;\n var changedColumns = this.findChangedColumnsInSort(newSortModel, oldSortModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterSort(newSortModel, params);\n };\n // returns back all the cols that were effected by the sorting. eg if we were sorting by col A,\n // and now we are sorting by col B, the list of impacted cols should be A and B. so if a cache\n // is impacted by sorting on A or B then it needs to be refreshed. this includes where the cache\n // was previously sorted by A and then the A sort now needs to be cleared.\n SortListener.prototype.findChangedColumnsInSort = function (newSortModel, oldSortModel) {\n var allColsInBothSorts = [];\n [newSortModel, oldSortModel].forEach(function (sortModel) {\n if (sortModel) {\n var ids = sortModel.map(function (sm) { return sm.colId; });\n allColsInBothSorts = allColsInBothSorts.concat(ids);\n }\n });\n var differentSorts = function (oldSortItem, newSortItem) {\n var oldSort = oldSortItem ? oldSortItem.sort : null;\n var newSort = newSortItem ? newSortItem.sort : null;\n return oldSort !== newSort;\n };\n var differentIndexes = function (oldSortItem, newSortItem) {\n var oldIndex = oldSortItem ? oldSortModel.indexOf(oldSortItem) : -1;\n var newIndex = newSortItem ? newSortModel.indexOf(newSortItem) : -1;\n return oldIndex !== newIndex;\n };\n return allColsInBothSorts.filter(function (colId) {\n var oldSortItem = oldSortModel.find(function (sm) { return sm.colId === colId; });\n var newSortItem = newSortModel.find(function (sm) { return sm.colId === colId; });\n return differentSorts(oldSortItem, newSortItem) || differentIndexes(oldSortItem, newSortItem);\n });\n };\n __decorate$l([\n Autowired('sortController')\n ], SortListener.prototype, \"sortController\", void 0);\n __decorate$l([\n Autowired('columnModel')\n ], SortListener.prototype, \"columnModel\", void 0);\n __decorate$l([\n Autowired('rowModel')\n ], SortListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$l([\n Autowired('ssrmListenerUtils')\n ], SortListener.prototype, \"listenerUtils\", void 0);\n __decorate$l([\n PostConstruct\n ], SortListener.prototype, \"postConstruct\", null);\n SortListener = __decorate$l([\n Bean('ssrmSortService')\n ], SortListener);\n return SortListener;\n}(BeanStub));\n\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterListener = /** @class */ (function (_super) {\n __extends$E(FilterListener, _super);\n function FilterListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n };\n FilterListener.prototype.onFilterChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newModel = this.filterManager.getFilterModel();\n var oldModel = storeParams ? storeParams.filterModel : {};\n var changedColumns = this.findChangedColumns(newModel, oldModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterFilter(newModel, params);\n };\n FilterListener.prototype.findChangedColumns = function (oldModel, newModel) {\n var allColKeysMap = {};\n Object.keys(oldModel).forEach(function (key) { return allColKeysMap[key] = true; });\n Object.keys(newModel).forEach(function (key) { return allColKeysMap[key] = true; });\n var res = [];\n Object.keys(allColKeysMap).forEach(function (key) {\n var oldJson = JSON.stringify(oldModel[key]);\n var newJson = JSON.stringify(newModel[key]);\n var filterChanged = oldJson != newJson;\n if (filterChanged) {\n res.push(key);\n }\n });\n return res;\n };\n __decorate$k([\n Autowired('rowModel')\n ], FilterListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$k([\n Autowired('filterManager')\n ], FilterListener.prototype, \"filterManager\", void 0);\n __decorate$k([\n Autowired('ssrmListenerUtils')\n ], FilterListener.prototype, \"listenerUtils\", void 0);\n __decorate$k([\n PostConstruct\n ], FilterListener.prototype, \"postConstruct\", null);\n FilterListener = __decorate$k([\n Bean('ssrmFilterListener')\n ], FilterListener);\n return FilterListener;\n}(BeanStub));\n\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar InfiniteStoreBlock = /** @class */ (function (_super) {\n __extends$D(InfiniteStoreBlock, _super);\n function InfiniteStoreBlock(blockNumber, parentRowNode, ssrmParams, storeParams, parentStore) {\n var _this = _super.call(this, blockNumber) || this;\n _this.ssrmParams = ssrmParams;\n _this.storeParams = storeParams;\n _this.parentRowNode = parentRowNode;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = blockNumber * storeParams.cacheBlockSize;\n _this.parentStore = parentStore;\n _this.level = parentRowNode.level + 1;\n _this.groupLevel = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : undefined;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n return _this;\n }\n InfiniteStoreBlock.prototype.postConstruct = function () {\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n if (!this.usingTreeData && this.groupLevel) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n this.nodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.parentRowNode);\n this.setData([]);\n };\n InfiniteStoreBlock.prototype.isDisplayIndexInBlock = function (displayIndex) {\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n InfiniteStoreBlock.prototype.isBlockBefore = function (displayIndex) {\n return displayIndex >= this.displayIndexEnd;\n };\n InfiniteStoreBlock.prototype.getDisplayIndexStart = function () {\n return this.displayIndexStart;\n };\n InfiniteStoreBlock.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n InfiniteStoreBlock.prototype.getBlockHeightPx = function () {\n return this.blockHeightPx;\n };\n InfiniteStoreBlock.prototype.getBlockTopPx = function () {\n return this.blockTopPx;\n };\n InfiniteStoreBlock.prototype.isGroupLevel = function () {\n return this.groupLevel;\n };\n InfiniteStoreBlock.prototype.getGroupField = function () {\n return this.groupField;\n };\n InfiniteStoreBlock.prototype.prefixId = function (id) {\n if (this.nodeIdPrefix != null) {\n return this.nodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n InfiniteStoreBlock.prototype.getBlockStateJson = function () {\n return {\n id: this.prefixId(this.getId()),\n state: {\n blockNumber: this.getId(),\n startRow: this.startRow,\n endRow: this.startRow + this.storeParams.cacheBlockSize,\n pageStatus: this.getState()\n }\n };\n };\n InfiniteStoreBlock.prototype.isAnyNodeOpen = function () {\n var openNodeCount = this.rowNodes.filter(function (node) { return node.expanded; }).length;\n return openNodeCount > 0;\n };\n // this method is repeated, see forEachRowNode, why?\n InfiniteStoreBlock.prototype.forEachNode = function (callback, sequence, includeChildren, filterAndSort) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.rowNodes.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n // this will only every happen for server side row model, as infinite\n // row model doesn't have groups\n if (includeChildren && rowNode.childStore) {\n var childStore = rowNode.childStore;\n if (filterAndSort) {\n childStore.forEachNodeDeepAfterFilterAndSort(callback, sequence);\n }\n else {\n childStore.forEachNodeDeep(callback, sequence);\n }\n }\n });\n };\n InfiniteStoreBlock.prototype.forEachNodeDeep = function (callback, sequence) {\n this.forEachNode(callback, sequence, true, false);\n };\n InfiniteStoreBlock.prototype.forEachNodeAfterFilterAndSort = function (callback, sequence) {\n this.forEachNode(callback, sequence, true, true);\n };\n InfiniteStoreBlock.prototype.forEachNodeShallow = function (callback, sequence) {\n this.forEachNode(callback, sequence, false, false);\n };\n InfiniteStoreBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n InfiniteStoreBlock.prototype.getRowUsingLocalIndex = function (rowIndex) {\n return this.rowNodes[rowIndex - this.startRow];\n };\n InfiniteStoreBlock.prototype.touchLastAccessed = function () {\n this.lastAccessed = this.ssrmParams.lastAccessedSequence.next();\n };\n InfiniteStoreBlock.prototype.processServerFail = function () {\n this.parentStore.onBlockLoadFailed(this);\n };\n InfiniteStoreBlock.prototype.retryLoads = function () {\n if (this.getState() === RowNodeBlock.STATE_FAILED) {\n this.setStateWaitingToLoad();\n this.rowNodeBlockLoader.checkBlockToLoad();\n this.setData();\n }\n this.forEachNodeShallow(function (node) {\n if (node.childStore) {\n node.childStore.retryLoads();\n }\n });\n };\n InfiniteStoreBlock.prototype.processServerResult = function (params) {\n this.parentStore.onBlockLoaded(this, params);\n };\n InfiniteStoreBlock.prototype.setData = function (rows, failedLoad) {\n var _this = this;\n if (rows === void 0) { rows = []; }\n if (failedLoad === void 0) { failedLoad = false; }\n this.destroyRowNodes();\n var storeRowCount = this.parentStore.getRowCount();\n var startRow = this.getId() * this.storeParams.cacheBlockSize;\n var endRow = Math.min(startRow + this.storeParams.cacheBlockSize, storeRowCount);\n var rowsToCreate = endRow - startRow;\n // when using autoHeight, we default the row heights to a height to fill the old height of the block.\n // we only ever do this to autoHeight, as we could be setting invalid heights (especially if different\n // number of rows in the block due to a filter, less rows would mean bigger rows), and autoHeight is\n // the only pattern that will automatically correct this. we check for visible autoHeight cols,\n // to omit the case where all autoHeight cols are hidden.\n var showingAutoHeightCols = this.columnModel.getAllDisplayedAutoHeightCols().length > 0;\n var cachedBlockHeight = showingAutoHeightCols ? this.parentStore.getCachedBlockHeight(this.getId()) : undefined;\n var cachedRowHeight = cachedBlockHeight ? Math.round(cachedBlockHeight / rowsToCreate) : undefined;\n var _loop_1 = function (i) {\n var dataLoadedForThisRow = i < rows.length;\n var getNodeWithData = function (existingNode) {\n // if there's not an existing node to reuse, create a fresh node\n var rowNode = (existingNode !== null && existingNode !== void 0 ? existingNode : _this.blockUtils.createRowNode({\n field: _this.groupField,\n group: _this.groupLevel,\n leafGroup: _this.leafGroup,\n level: _this.level,\n parent: _this.parentRowNode,\n rowGroupColumn: _this.rowGroupColumn,\n rowHeight: cachedRowHeight\n }));\n if (dataLoadedForThisRow) {\n var data = rows[i];\n if (!!existingNode) {\n _this.blockUtils.updateDataIntoRowNode(rowNode, data);\n }\n else {\n var defaultId = _this.prefixId(_this.startRow + i);\n _this.blockUtils.setDataIntoRowNode(rowNode, data, defaultId, cachedRowHeight);\n _this.blockUtils.checkOpenByDefault(rowNode);\n }\n _this.parentStore.removeDuplicateNode(rowNode.id);\n _this.nodeManager.addRowNode(rowNode);\n _this.allNodesMap[rowNode.id] = rowNode;\n }\n if (failedLoad) {\n rowNode.failedLoad = true;\n }\n return rowNode;\n };\n var getRowIdFunc = this_1.gridOptionsWrapper.getRowIdFunc();\n var row = void 0;\n if (getRowIdFunc && dataLoadedForThisRow) {\n var data = rows[i];\n var parentKeys = this_1.parentRowNode.getGroupKeys();\n var id = getRowIdFunc({\n data: data,\n level: this_1.level,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n });\n var cachedRow = this_1.parentStore.retrieveNodeFromCache(id);\n row = getNodeWithData(cachedRow);\n }\n if (!row) {\n row = getNodeWithData();\n }\n this_1.rowNodes.push(row);\n };\n var this_1 = this;\n for (var i = 0; i < rowsToCreate; i++) {\n _loop_1(i);\n }\n };\n // to safeguard the grid against duplicate nodes, when a row is loaded, we check\n // for another row in the same cache. if another row does exist, we delete it.\n // this covers for when user refreshes the store (which typically happens after a\n // data change) and the same row ends up coming back in a different block, and the\n // new block finishes refreshing before the old block has finished refreshing.\n InfiniteStoreBlock.prototype.removeDuplicateNode = function (id) {\n // we don't remove duplicates if this block is loaded, as that's a duplicate ID.\n // we are only interested in removing rows in blocks that are in the middle of a refresh,\n // ie two blocks, A and B, both are refreshed (as in the same cache) but A comes back\n // first and some rows have moved from B to A, we must remove the old rows from B.\n // however if B is not also getting refreshed (ie it's loaded) this is a bug\n // we need to tell the application about, as they provided duplicate ID's (done in Node Manager)\n if (this.getState() == RowNodeBlock.STATE_LOADED) {\n return;\n }\n var rowNode = this.allNodesMap[id];\n if (!rowNode) {\n return;\n }\n this.blockUtils.destroyRowNode(rowNode);\n var index = this.rowNodes.indexOf(rowNode);\n var stubRowNode = this.blockUtils.createRowNode({ field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn });\n this.rowNodes[index] = stubRowNode;\n };\n InfiniteStoreBlock.prototype.refresh = function () {\n if (this.getState() !== RowNodeBlock.STATE_WAITING_TO_LOAD) {\n this.setStateWaitingToLoad();\n }\n };\n InfiniteStoreBlock.prototype.destroyRowNodes = function () {\n var _this = this;\n var _a;\n (_a = this.rowNodes) === null || _a === void 0 ? void 0 : _a.forEach(function (row) {\n var isStoreCachingNode = _this.parentStore.isNodeCached(row.id);\n _this.blockUtils.destroyRowNode(row, isStoreCachingNode);\n });\n this.rowNodes = [];\n this.allNodesMap = {};\n };\n InfiniteStoreBlock.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ServerSideBlock');\n };\n InfiniteStoreBlock.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n this.touchLastAccessed();\n var res = this.blockUtils.binarySearchForDisplayIndex(displayRowIndex, this.rowNodes);\n return res;\n };\n InfiniteStoreBlock.prototype.loadFromDatasource = function () {\n this.storeUtils.loadFromDatasource({\n startRow: this.startRow,\n endRow: this.startRow + this.storeParams.cacheBlockSize,\n parentBlock: this,\n parentNode: this.parentRowNode,\n storeParams: this.ssrmParams,\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n success: this.success.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n fail: this.pageLoadFailed.bind(this, this.getVersion())\n });\n };\n InfiniteStoreBlock.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.blockTopPx && pixel < (this.blockTopPx + this.blockHeightPx);\n };\n InfiniteStoreBlock.prototype.getRowBounds = function (index) {\n var e_1, _a;\n this.touchLastAccessed();\n var res;\n try {\n for (var _b = __values$1(this.rowNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var rowNode = _c.value;\n res = this.blockUtils.extractRowBounds(rowNode, index);\n if (res != null) {\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return res;\n };\n InfiniteStoreBlock.prototype.getRowIndexAtPixel = function (pixel) {\n var e_2, _a;\n this.touchLastAccessed();\n var res = null;\n try {\n for (var _b = __values$1(this.rowNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var rowNode = _c.value;\n res = this.blockUtils.getIndexAtPixel(rowNode, pixel);\n if (res != null) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return res;\n };\n InfiniteStoreBlock.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexEnd = undefined;\n this.displayIndexStart = undefined;\n this.rowNodes.forEach(function (rowNode) { return _this.blockUtils.clearDisplayIndex(rowNode); });\n };\n InfiniteStoreBlock.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.blockTopPx = nextRowTop.value;\n this.rowNodes.forEach(function (rowNode) { return _this.blockUtils.setDisplayIndex(rowNode, displayIndexSeq, nextRowTop); });\n this.displayIndexEnd = displayIndexSeq.peek();\n this.blockHeightPx = nextRowTop.value - this.blockTopPx;\n };\n __decorate$j([\n Autowired('columnModel')\n ], InfiniteStoreBlock.prototype, \"columnModel\", void 0);\n __decorate$j([\n Autowired('ssrmStoreUtils')\n ], InfiniteStoreBlock.prototype, \"storeUtils\", void 0);\n __decorate$j([\n Autowired('ssrmBlockUtils')\n ], InfiniteStoreBlock.prototype, \"blockUtils\", void 0);\n __decorate$j([\n Autowired('ssrmNodeManager')\n ], InfiniteStoreBlock.prototype, \"nodeManager\", void 0);\n __decorate$j([\n Autowired('rowNodeBlockLoader')\n ], InfiniteStoreBlock.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$j([\n PostConstruct\n ], InfiniteStoreBlock.prototype, \"postConstruct\", null);\n __decorate$j([\n PreDestroy\n ], InfiniteStoreBlock.prototype, \"destroyRowNodes\", null);\n __decorate$j([\n __param$1(0, Qualifier('loggerFactory'))\n ], InfiniteStoreBlock.prototype, \"setBeans\", null);\n return InfiniteStoreBlock;\n}(RowNodeBlock));\n\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FindResult;\n(function (FindResult) {\n FindResult[FindResult[\"FOUND\"] = 0] = \"FOUND\";\n FindResult[FindResult[\"CONTINUE_FIND\"] = 1] = \"CONTINUE_FIND\";\n FindResult[FindResult[\"BREAK_FIND\"] = 2] = \"BREAK_FIND\";\n})(FindResult || (FindResult = {}));\nvar InfiniteStore = /** @class */ (function (_super) {\n __extends$C(InfiniteStore, _super);\n function InfiniteStore(ssrmParams, storeParams, parentRowNode) {\n var _this = _super.call(this) || this;\n _this.blocks = {};\n _this.blockHeights = {};\n _this.lastRowIndexKnown = false;\n // this will always be zero for the top level cache only,\n // all the other ones change as the groups open and close\n _this.displayIndexStart = 0;\n _this.displayIndexEnd = 0; // not sure if setting this one to zero is necessary\n _this.cacheTopPixel = 0;\n _this.info = {};\n _this.refreshedNodeCache = {};\n _this.ssrmParams = ssrmParams;\n _this.storeParams = storeParams;\n _this.parentRowNode = parentRowNode;\n return _this;\n }\n InfiniteStore.prototype.postConstruct = function () {\n this.defaultRowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n var isRootStore = this.parentRowNode.level === -1;\n var initialRowCount = isRootStore ? this.gridOptionsWrapper.getServerSideInitialRowCount() : InfiniteStore.INITIAL_ROW_COUNT;\n this.rowCount = initialRowCount;\n };\n InfiniteStore.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n this.blockUtils.destroyRowNodes(Object.values(this.refreshedNodeCache));\n };\n InfiniteStore.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ServerSideCache');\n };\n InfiniteStore.prototype.getRowCount = function () {\n return this.rowCount;\n };\n InfiniteStore.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n InfiniteStore.prototype.retryLoads = function () {\n this.getBlocksInOrder().forEach(function (block) { return block.retryLoads(); });\n };\n InfiniteStore.prototype.onBlockLoadFailed = function (block) {\n block.setData([], true);\n this.fireCacheUpdatedEvent();\n };\n InfiniteStore.prototype.onBlockLoaded = function (block, params) {\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + params.rowCount);\n var info = params.storeInfo || params.groupLevelInfo;\n if (info) {\n Object.assign(this.info, info);\n }\n if (!params.rowData) {\n var message_1 = 'AG Grid: \"params.rowData\" is missing from Server-Side Row Model success() callback. Please use the \"rowData\" attribute. If no data is returned, set an empty list.';\n _.doOnce(function () { return console.warn(message_1, params); }, 'InfiniteStore.noData');\n }\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.checkRowCount(block, finalRowCount);\n block.setData(params.rowData);\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if the datasource returns a\n // result and sets lastRow to something less than virtualRowCount (can happen if user scrolls\n // down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n this.fireCacheUpdatedEvent();\n };\n InfiniteStore.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.storeParams.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.storeParams.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = InfiniteStore.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === InfiniteStoreBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // we never purge blocks if they are open, as purging them would mess up with\n // our indexes, it would be very messy to restore the purged block to it's\n // previous state if it had open children.\n if (block.isAnyNodeOpen()) {\n return;\n }\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, and no open nodes, so burn baby burn\n _this.destroyBlock(block);\n }\n });\n };\n InfiniteStore.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getDisplayIndexStart();\n var blockIndexEnd = block.getDisplayIndexEnd();\n if (blockIndexEnd == null || blockIndexStart == null) {\n return false;\n }\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n InfiniteStore.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getDisplayIndexStart();\n var endIndex = block.getDisplayIndexEnd() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n InfiniteStore.prototype.removeDuplicateNode = function (id) {\n this.getBlocksInOrder().forEach(function (block) { return block.removeDuplicateNode(id); });\n };\n InfiniteStore.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.storeParams.cacheBlockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + InfiniteStore.OVERFLOW_SIZE;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n InfiniteStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNodeDeep(callback, sequence); });\n };\n InfiniteStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNodeAfterFilterAndSort(callback, sequence); });\n };\n InfiniteStore.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = _.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n InfiniteStore.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n InfiniteStore.prototype.fireCacheUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n InfiniteStore.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.storeParams.cacheBlockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n InfiniteStore.prototype.refreshStore = function (purge) {\n var noBlocksToRefresh = this.getRowCount() == 0;\n if (noBlocksToRefresh || purge) {\n this.resetStore();\n }\n else {\n this.refreshBlocks();\n }\n this.fireCacheUpdatedEvent();\n };\n InfiniteStore.prototype.isNodeCached = function (id) {\n return !!this.refreshedNodeCache[id];\n };\n InfiniteStore.prototype.retrieveNodeFromCache = function (id) {\n var node = this.refreshedNodeCache[id];\n if (node) {\n delete this.refreshedNodeCache[id];\n }\n return node;\n };\n InfiniteStore.prototype.buildRowNodeCache = function () {\n var rowCache = {};\n this.getBlocksInOrder().forEach(function (block) {\n block.rowNodes.forEach(function (row) {\n if (row.group) {\n rowCache[row.id] = row;\n }\n });\n });\n this.refreshedNodeCache = rowCache;\n };\n InfiniteStore.prototype.refreshBlocks = function () {\n this.buildRowNodeCache();\n this.getBlocksInOrder().forEach(function (block) {\n block.refresh();\n });\n this.lastRowIndexKnown = false;\n this.rowNodeBlockLoader.checkBlockToLoad();\n };\n InfiniteStore.prototype.resetStore = function () {\n this.destroyAllBlocks();\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.columnModel.isAutoRowHeightActive() || this.rowCount === 0) {\n this.rowCount = InfiniteStore.INITIAL_ROW_COUNT;\n }\n };\n InfiniteStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNodeShallow(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n });\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n InfiniteStore.prototype.findBlockAndExecute = function (matchBlockFunc, blockFoundFunc, blockNotFoundFunc) {\n var blockFound = false;\n var breakSearch = false;\n var lastBlock = null;\n var res;\n this.getBlocksInOrder().forEach(function (block) {\n if (blockFound || breakSearch) {\n return;\n }\n var comparatorResult = matchBlockFunc(block);\n if (comparatorResult == FindResult.FOUND) {\n res = blockFoundFunc(block);\n blockFound = true;\n }\n else if (comparatorResult == FindResult.CONTINUE_FIND) {\n lastBlock = block;\n }\n else if (comparatorResult == FindResult.BREAK_FIND) {\n breakSearch = true;\n }\n });\n if (!blockFound) {\n res = blockNotFoundFunc(lastBlock);\n }\n return res;\n };\n InfiniteStore.prototype.getRowBounds = function (index) {\n var _this = this;\n var matchBlockFunc = function (block) {\n if (block.isDisplayIndexInBlock(index)) {\n return FindResult.FOUND;\n }\n else {\n return block.isBlockBefore(index) ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowBounds(index);\n };\n var blockNotFoundFunc = function (previousBlock) {\n var nextRowTop;\n var nextRowIndex;\n if (previousBlock !== null) {\n nextRowTop = previousBlock.getBlockTopPx() + previousBlock.getBlockHeightPx();\n nextRowIndex = previousBlock.getDisplayIndexEnd();\n }\n else {\n nextRowTop = _this.cacheTopPixel;\n nextRowIndex = _this.displayIndexStart;\n }\n var rowsBetween = index - nextRowIndex;\n return {\n rowHeight: _this.defaultRowHeight,\n rowTop: nextRowTop + rowsBetween * _this.defaultRowHeight\n };\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n InfiniteStore.prototype.getRowIndexAtPixel = function (pixel) {\n var _this = this;\n var matchBlockFunc = function (block) {\n if (block.isPixelInRange(pixel)) {\n return FindResult.FOUND;\n }\n else {\n return block.getBlockTopPx() < pixel ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowIndexAtPixel(pixel);\n };\n var blockNotFoundFunc = function (previousBlock) {\n var nextRowTop;\n var nextRowIndex;\n if (previousBlock) {\n nextRowTop = previousBlock.getBlockTopPx() + previousBlock.getBlockHeightPx();\n nextRowIndex = previousBlock.getDisplayIndexEnd();\n }\n else {\n nextRowTop = _this.cacheTopPixel;\n nextRowIndex = _this.displayIndexStart;\n }\n // we start at the last loaded block before this block, and go down\n // block by block, adding in the block sizes (using cached sizes if available)\n // until we get to a block that does should have the pixel\n var blockSize = _this.storeParams.cacheBlockSize;\n var defaultBlockHeight = _this.defaultRowHeight * blockSize;\n var nextBlockId = previousBlock ? (previousBlock.getId() + 1) : 0;\n var getBlockDetails = function (id) {\n var cachedBlockHeight = _this.getCachedBlockHeight(id);\n var blockHeight = cachedBlockHeight != null ? cachedBlockHeight : defaultBlockHeight;\n var pixelInBlock = pixel <= (blockHeight + nextRowTop);\n return {\n height: blockHeight, pixelInBlock: pixelInBlock\n };\n };\n var blockDetails = getBlockDetails(nextBlockId);\n while (!blockDetails.pixelInBlock) {\n nextRowTop += blockDetails.height;\n nextRowIndex += blockSize;\n nextBlockId++;\n blockDetails = getBlockDetails(nextBlockId);\n }\n var pixelsBetween = pixel - nextRowTop;\n var rowHeight = blockDetails.height / blockSize;\n var rowsBetween = Math.floor(pixelsBetween / rowHeight) | 0;\n return nextRowIndex + rowsBetween;\n };\n var result = this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n var lastAllowedIndex = this.getDisplayIndexEnd() - 1;\n result = Math.min(result, lastAllowedIndex);\n return result;\n };\n InfiniteStore.prototype.clearDisplayIndexes = function () {\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.getBlocksInOrder().forEach(function (block) { return block.clearDisplayIndexes(); });\n };\n InfiniteStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.cacheTopPixel = nextRowTop.value;\n var lastBlockId = -1;\n var blockSize = this.storeParams.cacheBlockSize;\n this.getBlocksInOrder().forEach(function (currentBlock) {\n // if we skipped blocks, then we need to skip the row indexes. we assume that all missing\n // blocks are made up of closed RowNodes only (if they were groups), as we never expire from\n // the cache if any row nodes are open.\n var blockId = currentBlock.getId();\n var blocksSkippedCount = blockId - lastBlockId - 1;\n var rowsSkippedCount = blocksSkippedCount * blockSize;\n if (rowsSkippedCount > 0) {\n displayIndexSeq.skip(rowsSkippedCount);\n }\n for (var i = 1; i <= blocksSkippedCount; i++) {\n var blockToAddId = blockId - i;\n if (_.exists(_this.blockHeights[blockToAddId])) {\n nextRowTop.value += _this.blockHeights[blockToAddId];\n }\n else {\n nextRowTop.value += blockSize * _this.defaultRowHeight;\n }\n }\n lastBlockId = blockId;\n currentBlock.setDisplayIndexes(displayIndexSeq, nextRowTop);\n _this.blockHeights[blockId] = currentBlock.getBlockHeightPx();\n });\n // if any blocks missing at the end, need to increase the row index for them also\n // eg if block size = 10, we have total rows of 25 (indexes 0 .. 24), but first 2 blocks loaded (because\n // last row was ejected from cache), then:\n // lastVisitedRow = 19, virtualRowCount = 25, rows not accounted for = 5 (24 - 19)\n var lastVisitedRow = ((lastBlockId + 1) * blockSize) - 1;\n var rowCount = this.getRowCount();\n var rowsNotAccountedFor = rowCount - lastVisitedRow - 1;\n if (rowsNotAccountedFor > 0) {\n displayIndexSeq.skip(rowsNotAccountedFor);\n nextRowTop.value += rowsNotAccountedFor * this.defaultRowHeight;\n }\n this.displayIndexEnd = displayIndexSeq.peek();\n this.cacheHeightPixels = nextRowTop.value - this.cacheTopPixel;\n };\n // gets called in a) init() above and b) by the grid\n InfiniteStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex, dontCreateBlock) {\n var _this = this;\n if (dontCreateBlock === void 0) { dontCreateBlock = false; }\n // this can happen if asking for a row that doesn't exist in the model,\n // eg if a cell range is selected, and the user filters so rows no longer exists\n if (!this.isDisplayIndexInStore(displayRowIndex)) {\n return undefined;\n }\n var matchBlockFunc = function (block) {\n if (block.isDisplayIndexInBlock(displayRowIndex)) {\n return FindResult.FOUND;\n }\n else {\n return block.isBlockBefore(displayRowIndex) ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowUsingDisplayIndex(displayRowIndex);\n };\n var blockNotFoundFunc = function (previousBlock) {\n if (dontCreateBlock) {\n return;\n }\n var blockNumber;\n var displayIndexStart;\n var nextRowTop;\n var blockSize = _this.storeParams.cacheBlockSize;\n // because missing blocks are always fully closed, we can work out\n // the start index of the block we want by hopping from the closest block,\n // as we know the row count in closed blocks is equal to the page size\n if (previousBlock) {\n blockNumber = previousBlock.getId() + 1;\n displayIndexStart = previousBlock.getDisplayIndexEnd();\n nextRowTop = previousBlock.getBlockHeightPx() + previousBlock.getBlockTopPx();\n var isInRange = function () {\n return displayRowIndex >= displayIndexStart && displayRowIndex < (displayIndexStart + blockSize);\n };\n while (!isInRange()) {\n displayIndexStart += blockSize;\n var cachedBlockHeight = _this.blockHeights[blockNumber];\n if (_.exists(cachedBlockHeight)) {\n nextRowTop += cachedBlockHeight;\n }\n else {\n nextRowTop += _this.defaultRowHeight * blockSize;\n }\n blockNumber++;\n }\n }\n else {\n var localIndex = displayRowIndex - _this.displayIndexStart;\n blockNumber = Math.floor(localIndex / blockSize);\n displayIndexStart = _this.displayIndexStart + (blockNumber * blockSize);\n nextRowTop = _this.cacheTopPixel + (blockNumber * blockSize * _this.defaultRowHeight);\n }\n _this.logger.log(\"block missing, rowIndex = \" + displayRowIndex + \", creating #\" + blockNumber + \", displayIndexStart = \" + displayIndexStart);\n var newBlock = _this.createBlock(blockNumber, displayIndexStart, { value: nextRowTop });\n return newBlock.getRowUsingDisplayIndex(displayRowIndex);\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n InfiniteStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var blockSize = this.storeParams.cacheBlockSize;\n var blockId = Math.floor(topLevelIndex / blockSize);\n var matchBlockFunc = function (block) {\n if (block.getId() === blockId) {\n return FindResult.FOUND;\n }\n return block.getId() < blockId ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n };\n var blockFoundFunc = function (foundBlock) {\n var rowNode = foundBlock.getRowUsingLocalIndex(topLevelIndex);\n return rowNode.rowIndex;\n };\n var blockNotFoundFunc = function (previousBlock) {\n if (!previousBlock) {\n return topLevelIndex;\n }\n // note: the local index is the same as the top level index, two terms for same thing\n //\n // get index of the last row before this row\n // eg if blocksize = 100, then:\n // last row of first block is 99 (100 * 1) -1;\n // last row of second block is 199 (100 * 2) -1;\n var lastRowTopLevelIndex = (blockSize * (previousBlock.getId() + 1)) - 1;\n // get the last top level node in the block before the wanted block. this will be the last\n // loaded displayed top level node.\n var lastRowNode = previousBlock.getRowUsingLocalIndex(lastRowTopLevelIndex);\n // we want the index of the last displayed node, not just the top level node, so if the last top level node\n // is open, we get the index of the last displayed child node.\n var lastDisplayedNodeIndexInBlockBefore;\n if (lastRowNode.expanded && lastRowNode.childStore) {\n var serverSideCache = lastRowNode.childStore;\n lastDisplayedNodeIndexInBlockBefore = serverSideCache.getDisplayIndexEnd() - 1;\n }\n else if (lastRowNode.expanded && lastRowNode.detailNode) {\n lastDisplayedNodeIndexInBlockBefore = lastRowNode.detailNode.rowIndex;\n }\n else {\n lastDisplayedNodeIndexInBlockBefore = lastRowNode.rowIndex;\n }\n // we are guaranteed no rows are open. so the difference between the topTopIndex will be the\n // same as the difference between the displayed index\n var indexDiff = topLevelIndex - lastRowTopLevelIndex;\n return lastDisplayedNodeIndexInBlockBefore + indexDiff;\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n InfiniteStore.prototype.addStoreStates = function (result) {\n result.push({\n infiniteScroll: true,\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.rowCount,\n lastRowIndexKnown: this.lastRowIndexKnown,\n info: this.info,\n maxBlocksInCache: this.storeParams.maxBlocksInCache,\n cacheBlockSize: this.storeParams.cacheBlockSize\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n InfiniteStore.prototype.getCachedBlockHeight = function (blockNumber) {\n return this.blockHeights[blockNumber];\n };\n InfiniteStore.prototype.createBlock = function (blockNumber, displayIndex, nextRowTop) {\n var block = this.createBean(new InfiniteStoreBlock(blockNumber, this.parentRowNode, this.ssrmParams, this.storeParams, this));\n block.setDisplayIndexes(new NumberSequence(displayIndex), nextRowTop);\n this.blocks[block.getId()] = block;\n this.purgeBlocksIfNeeded(block);\n this.rowNodeBlockLoader.addBlock(block);\n return block;\n };\n InfiniteStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n InfiniteStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n InfiniteStore.prototype.applyTransaction = function (transaction) {\n return { status: ServerSideTransactionResultStatus.StoreWrongType };\n };\n InfiniteStore.prototype.getChildStore = function (keys) {\n var _this = this;\n var findNodeCallback = function (key) {\n var nextNode = null;\n _this.getBlocksInOrder().forEach(function (block) {\n block.forEachNodeShallow(function (rowNode) {\n if (rowNode.key == key) {\n nextNode = rowNode;\n }\n }, new NumberSequence());\n });\n return nextNode;\n };\n return this.storeUtils.getChildStore(keys, this, findNodeCallback);\n };\n InfiniteStore.prototype.isPixelInRange = function (pixel) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return pixel >= this.cacheTopPixel && pixel < (this.cacheTopPixel + this.cacheHeightPixels);\n };\n InfiniteStore.prototype.refreshAfterFilter = function (params) {\n var serverFiltersAllLevels = this.gridOptionsWrapper.isServerSideFilterAllLevels();\n if (serverFiltersAllLevels || this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params)) {\n this.resetStore();\n return;\n }\n // call refreshAfterSort on children, as we did not purge.\n // if we did purge, no need to do this as all children were destroyed\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterFilter(params); });\n };\n InfiniteStore.prototype.refreshAfterSort = function (params) {\n var serverSortsAllLevels = this.gridOptionsWrapper.isServerSideSortAllLevels();\n if (serverSortsAllLevels || this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params)) {\n this.resetStore();\n return;\n }\n // call refreshAfterSort on children, as we did not purge.\n // if we did purge, no need to do this as all children were destroyed\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n InfiniteStore.prototype.forEachChildStoreShallow = function (callback) {\n this.getBlocksInOrder().forEach(function (block) {\n if (block.isGroupLevel()) {\n var innerCallback = function (rowNode) {\n var nextCache = rowNode.childStore;\n if (nextCache) {\n callback(nextCache);\n }\n };\n block.forEachNodeShallow(innerCallback, new NumberSequence());\n }\n });\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n InfiniteStore.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n InfiniteStore.INITIAL_ROW_COUNT = 1;\n InfiniteStore.OVERFLOW_SIZE = 1;\n __decorate$i([\n Autowired('rowRenderer')\n ], InfiniteStore.prototype, \"rowRenderer\", void 0);\n __decorate$i([\n Autowired('rowNodeBlockLoader')\n ], InfiniteStore.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$i([\n Autowired('ssrmStoreUtils')\n ], InfiniteStore.prototype, \"storeUtils\", void 0);\n __decorate$i([\n Autowired(\"focusService\")\n ], InfiniteStore.prototype, \"focusService\", void 0);\n __decorate$i([\n Autowired(\"columnModel\")\n ], InfiniteStore.prototype, \"columnModel\", void 0);\n __decorate$i([\n Autowired('ssrmBlockUtils')\n ], InfiniteStore.prototype, \"blockUtils\", void 0);\n __decorate$i([\n PostConstruct\n ], InfiniteStore.prototype, \"postConstruct\", null);\n __decorate$i([\n PreDestroy\n ], InfiniteStore.prototype, \"destroyAllBlocks\", null);\n __decorate$i([\n __param(0, Qualifier('loggerFactory'))\n ], InfiniteStore.prototype, \"setBeans\", null);\n return InfiniteStore;\n}(BeanStub));\n\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FullStore = /** @class */ (function (_super) {\n __extends$B(FullStore, _super);\n function FullStore(ssrmParams, storeParams, parentRowNode) {\n var _this = \n // finite block represents a cache with just one block, thus 0 is the id, it's the first block\n _super.call(this, 0) || this;\n _this.nodeIdSequence = new NumberSequence();\n _this.info = {};\n _this.ssrmParams = ssrmParams;\n _this.parentRowNode = parentRowNode;\n _this.level = parentRowNode.level + 1;\n _this.groupLevel = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : undefined;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n return _this;\n }\n FullStore.prototype.postConstruct = function () {\n var _this = this;\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.nodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.parentRowNode);\n if (!this.usingTreeData && this.groupLevel) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n var initialRowCount = 1;\n var isRootStore = this.parentRowNode.level === -1;\n var userInitialRowCount = this.gridOptionsWrapper.getServerSideInitialRowCount();\n if (isRootStore && userInitialRowCount !== undefined) {\n initialRowCount = userInitialRowCount;\n }\n this.initialiseRowNodes(initialRowCount);\n this.rowNodeBlockLoader.addBlock(this);\n this.addDestroyFunc(function () { return _this.rowNodeBlockLoader.removeBlock(_this); });\n };\n FullStore.prototype.destroyRowNodes = function () {\n this.blockUtils.destroyRowNodes(this.allRowNodes);\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n };\n FullStore.prototype.initialiseRowNodes = function (loadingRowsCount, failedLoad) {\n if (failedLoad === void 0) { failedLoad = false; }\n this.destroyRowNodes();\n for (var i = 0; i < loadingRowsCount; i++) {\n var loadingRowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (failedLoad) {\n loadingRowNode.failedLoad = true;\n }\n this.allRowNodes.push(loadingRowNode);\n this.nodesAfterFilter.push(loadingRowNode);\n this.nodesAfterSort.push(loadingRowNode);\n }\n };\n FullStore.prototype.getBlockStateJson = function () {\n return {\n id: this.nodeIdPrefix ? this.nodeIdPrefix : '',\n state: this.getState()\n };\n };\n FullStore.prototype.loadFromDatasource = function () {\n this.storeUtils.loadFromDatasource({\n startRow: undefined,\n endRow: undefined,\n parentBlock: this,\n parentNode: this.parentRowNode,\n storeParams: this.ssrmParams,\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n success: this.success.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n fail: this.pageLoadFailed.bind(this, this.getVersion())\n });\n };\n FullStore.prototype.getStartRow = function () {\n return 0; // always zero as not in a cache\n };\n FullStore.prototype.getEndRow = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.createDataNode = function (data, index) {\n var rowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (index != null) {\n _.insertIntoArray(this.allRowNodes, rowNode, index);\n }\n else {\n this.allRowNodes.push(rowNode);\n }\n var defaultId = this.prefixId(this.nodeIdSequence.next());\n this.blockUtils.setDataIntoRowNode(rowNode, data, defaultId, undefined);\n this.nodeManager.addRowNode(rowNode);\n this.blockUtils.checkOpenByDefault(rowNode);\n this.allNodesMap[rowNode.id] = rowNode;\n return rowNode;\n };\n FullStore.prototype.prefixId = function (id) {\n if (this.nodeIdPrefix) {\n return this.nodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n FullStore.prototype.processServerFail = function () {\n this.initialiseRowNodes(1, true);\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.processServerResult = function (params) {\n if (!this.isAlive()) {\n return;\n }\n var info = params.storeInfo || params.groupLevelInfo;\n if (info) {\n Object.assign(this.info, info);\n }\n var nodesToRecycle = this.allRowNodes.length > 0 ? this.allNodesMap : undefined;\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n if (!params.rowData) {\n var message_1 = 'AG Grid: \"params.data\" is missing from Server-Side Row Model success() callback. Please use the \"data\" attribute. If no data is returned, set an empty list.';\n _.doOnce(function () { return console.warn(message_1, params); }, 'FullStore.noData');\n }\n this.createOrRecycleNodes(nodesToRecycle, params.rowData);\n if (nodesToRecycle) {\n this.blockUtils.destroyRowNodes(_.getAllValuesInObject(nodesToRecycle));\n }\n this.filterAndSortNodes();\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.createOrRecycleNodes = function (nodesToRecycle, rowData) {\n var _this = this;\n if (!rowData) {\n return;\n }\n var lookupNodeToRecycle = function (data) {\n if (!nodesToRecycle) {\n return undefined;\n }\n var getRowIdFunc = _this.gridOptionsWrapper.getRowIdFunc();\n if (!getRowIdFunc) {\n return undefined;\n }\n var parentKeys = _this.parentRowNode.getGroupKeys();\n var level = _this.level;\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n var foundNode = nodesToRecycle[id];\n if (!foundNode) {\n return undefined;\n }\n delete nodesToRecycle[id];\n return foundNode;\n };\n var recycleNode = function (rowNode, dataItem) {\n _this.allNodesMap[rowNode.id] = rowNode;\n _this.blockUtils.updateDataIntoRowNode(rowNode, dataItem);\n _this.allRowNodes.push(rowNode);\n };\n rowData.forEach(function (dataItem) {\n var nodeToRecycle = lookupNodeToRecycle(dataItem);\n if (nodeToRecycle) {\n recycleNode(nodeToRecycle, dataItem);\n }\n else {\n _this.createDataNode(dataItem);\n }\n });\n };\n FullStore.prototype.flushAsyncTransactions = function () {\n var _this = this;\n // we want to update the store with any outstanding transactions straight away,\n // as otherwise if waitTimeMillis is large (eg 5s), then the user could be looking\n // at old data for a few seconds before the transactions is applied, which isn't what\n // you would expect when we advertise 'transaction is applied when data is loaded'.\n // we do this in a timeout as flushAsyncTransactions expects the grid to be in a settled\n // state, not in the middle of loading rows! keeps the VM Turns more simple and deterministic.\n window.setTimeout(function () { return _this.transactionManager.flushAsyncTransactions(); }, 0);\n };\n FullStore.prototype.filterAndSortNodes = function () {\n this.filterRowNodes();\n this.sortRowNodes();\n };\n FullStore.prototype.sortRowNodes = function () {\n var serverIsSorting = this.gridOptionsWrapper.isServerSideSortAllLevels() || this.gridOptionsWrapper.isServerSideSortOnServer();\n var sortOptions = this.sortController.getSortOptions();\n var noSortApplied = !sortOptions || sortOptions.length == 0;\n if (serverIsSorting || noSortApplied) {\n this.nodesAfterSort = this.nodesAfterFilter;\n return;\n }\n this.nodesAfterSort = this.rowNodeSorter.doFullSort(this.nodesAfterFilter, sortOptions);\n };\n FullStore.prototype.filterRowNodes = function () {\n var _this = this;\n var serverIsFiltering = this.gridOptionsWrapper.isServerSideFilterAllLevels() || this.gridOptionsWrapper.isServerSideFilterOnServer();\n // filtering for InFullStore only works at lowest level details.\n // reason is the logic for group filtering was to difficult to work out how it should work at time of writing.\n var groupLevel = this.groupLevel;\n if (serverIsFiltering || groupLevel) {\n this.nodesAfterFilter = this.allRowNodes;\n return;\n }\n this.nodesAfterFilter = this.allRowNodes.filter(function (rowNode) { return _this.filterManager.doesRowPassFilter({ rowNode: rowNode }); });\n };\n FullStore.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.allRowNodes.forEach(function (rowNode) { return _this.blockUtils.clearDisplayIndex(rowNode); });\n };\n FullStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n FullStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n FullStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.topPx = nextRowTop.value;\n var visibleNodeIds = {};\n // set on all visible nodes\n this.nodesAfterSort.forEach(function (rowNode) {\n _this.blockUtils.setDisplayIndex(rowNode, displayIndexSeq, nextRowTop);\n visibleNodeIds[rowNode.id] = true;\n });\n // and clear on all non-visible nodes\n this.allRowNodes.forEach(function (rowNode) {\n if (!visibleNodeIds[rowNode.id]) {\n _this.blockUtils.clearDisplayIndex(rowNode);\n }\n });\n this.displayIndexEnd = displayIndexSeq.peek();\n this.heightPx = nextRowTop.value - this.topPx;\n };\n FullStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.allRowNodes.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeep(callback, sequence);\n }\n });\n };\n FullStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.nodesAfterSort.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeepAfterFilterAndSort(callback, sequence);\n }\n });\n };\n FullStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n // this can happen if asking for a row that doesn't exist in the model,\n // eg if a cell range is selected, and the user filters so rows no longer exists\n if (!this.isDisplayIndexInStore(displayRowIndex)) {\n return undefined;\n }\n var res = this.blockUtils.binarySearchForDisplayIndex(displayRowIndex, this.nodesAfterSort);\n return res;\n };\n FullStore.prototype.getRowBounds = function (index) {\n for (var i = 0; i < this.nodesAfterSort.length; i++) {\n var rowNode = this.nodesAfterSort[i];\n var res = this.blockUtils.extractRowBounds(rowNode, index);\n if (res) {\n return res;\n }\n }\n return null;\n };\n FullStore.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.topPx && pixel < (this.topPx + this.heightPx);\n };\n FullStore.prototype.getRowIndexAtPixel = function (pixel) {\n var _this = this;\n // if pixel before block, return first row\n var pixelBeforeThisStore = pixel <= this.topPx;\n if (pixelBeforeThisStore) {\n var firstNode = this.nodesAfterSort[0];\n return firstNode.rowIndex;\n }\n // if pixel after store, return last row, however the last\n // row could be a child store\n var pixelAfterThisStore = pixel >= (this.topPx + this.heightPx);\n if (pixelAfterThisStore) {\n var lastRowNode = this.nodesAfterSort[this.nodesAfterSort.length - 1];\n var lastRowNodeBottomPx = lastRowNode.rowTop + lastRowNode.rowHeight;\n if (pixel >= lastRowNodeBottomPx && lastRowNode.expanded) {\n if (lastRowNode.childStore && lastRowNode.childStore.getRowCount() > 0) {\n return lastRowNode.childStore.getRowIndexAtPixel(pixel);\n }\n if (lastRowNode.detailNode) {\n return lastRowNode.detailNode.rowIndex;\n }\n }\n return lastRowNode.rowIndex;\n }\n var res = null;\n this.nodesAfterSort.forEach(function (rowNode) {\n var res2 = _this.blockUtils.getIndexAtPixel(rowNode, pixel);\n if (res2 != null) {\n res = res2;\n }\n });\n var pixelIsPastLastRow = res == null;\n if (pixelIsPastLastRow) {\n return this.displayIndexEnd - 1;\n }\n return res;\n };\n FullStore.prototype.getChildStore = function (keys) {\n var _this = this;\n return this.storeUtils.getChildStore(keys, this, function (key) {\n var rowNode = _this.allRowNodes.find(function (currentRowNode) {\n return currentRowNode.key == key;\n });\n return rowNode;\n });\n };\n FullStore.prototype.forEachChildStoreShallow = function (callback) {\n this.allRowNodes.forEach(function (rowNode) {\n var childStore = rowNode.childStore;\n if (childStore) {\n callback(childStore);\n }\n });\n };\n FullStore.prototype.refreshAfterFilter = function (params) {\n var serverIsFiltering = this.gridOptionsWrapper.isServerSideFilterOnServer();\n var storeIsImpacted = this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params);\n var serverIsFilteringAllLevels = this.gridOptionsWrapper.isServerSideFilterAllLevels();\n if (serverIsFilteringAllLevels || (serverIsFiltering && storeIsImpacted)) {\n this.refreshStore(true);\n this.sortRowNodes();\n return;\n }\n this.filterRowNodes();\n this.sortRowNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterFilter(params); });\n };\n FullStore.prototype.refreshAfterSort = function (params) {\n var serverIsSorting = this.gridOptionsWrapper.isServerSideSortOnServer();\n var storeIsImpacted = this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params);\n var serverIsSortingAllLevels = this.gridOptionsWrapper.isServerSideSortAllLevels();\n if (serverIsSortingAllLevels || (serverIsSorting && storeIsImpacted)) {\n this.refreshStore(true);\n this.filterRowNodes();\n return;\n }\n this.filterRowNodes();\n this.sortRowNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n FullStore.prototype.applyTransaction = function (transaction) {\n // we only apply transactions to loaded state\n switch (this.getState()) {\n case RowNodeBlock.STATE_FAILED:\n return { status: ServerSideTransactionResultStatus.StoreLoadingFailed };\n case RowNodeBlock.STATE_LOADING:\n return { status: ServerSideTransactionResultStatus.StoreLoading };\n case RowNodeBlock.STATE_WAITING_TO_LOAD:\n return { status: ServerSideTransactionResultStatus.StoreWaitingToLoad };\n }\n var applyCallback = this.gridOptionsWrapper.getIsApplyServerSideTransactionFunc();\n if (applyCallback) {\n var params = {\n transaction: transaction,\n parentNode: this.parentRowNode,\n storeInfo: this.info,\n groupLevelInfo: this.info\n };\n var apply = applyCallback(params);\n if (!apply) {\n return { status: ServerSideTransactionResultStatus.Cancelled };\n }\n }\n var res = {\n status: ServerSideTransactionResultStatus.Applied,\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeAdd(transaction, res);\n this.executeRemove(transaction, res, nodesToUnselect);\n this.executeUpdate(transaction, res, nodesToUnselect);\n this.filterAndSortNodes();\n this.updateSelection(nodesToUnselect);\n return res;\n };\n FullStore.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n nodesToUnselect.forEach(function (rowNode) {\n rowNode.setSelected(false, false, true);\n });\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n FullStore.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n if (useIndex) {\n // items get inserted in reverse order for index insertion\n add.reverse().forEach(function (item) {\n var newRowNode = _this.createDataNode(item, addIndex);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n else {\n add.forEach(function (item) {\n var newRowNode = _this.createDataNode(item);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n };\n FullStore.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (remove == null) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n _this.nodeManager.removeNode(rowNode);\n });\n this.allRowNodes = this.allRowNodes.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n };\n FullStore.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (update == null) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n rowNodeTransaction.update.push(rowNode);\n });\n };\n FullStore.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var rowNode;\n if (getRowIdFunc != null) {\n // find rowNode using id\n var level = this.level;\n var parentKeys = this.parentRowNode.getGroupKeys();\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.allRowNodes.find(function (currentRowNode) { return currentRowNode.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n return null;\n }\n }\n return rowNode;\n };\n FullStore.prototype.addStoreStates = function (result) {\n result.push({\n infiniteScroll: false,\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.allRowNodes.length,\n info: this.info\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n FullStore.prototype.refreshStore = function (purge) {\n if (purge) {\n var loadingRowsToShow = this.nodesAfterSort ? this.nodesAfterSort.length : 1;\n this.initialiseRowNodes(loadingRowsToShow);\n }\n this.scheduleLoad();\n this.fireStoreUpdatedEvent();\n };\n FullStore.prototype.retryLoads = function () {\n if (this.getState() === RowNodeBlock.STATE_FAILED) {\n this.initialiseRowNodes(1);\n this.scheduleLoad();\n }\n this.forEachChildStoreShallow(function (store) { return store.retryLoads(); });\n };\n FullStore.prototype.scheduleLoad = function () {\n this.setStateWaitingToLoad();\n this.rowNodeBlockLoader.checkBlockToLoad();\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n FullStore.prototype.fireStoreUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n FullStore.prototype.getRowCount = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rowNode = this.nodesAfterSort[topLevelIndex];\n return rowNode.rowIndex;\n };\n FullStore.prototype.isLastRowIndexKnown = function () {\n return this.getState() == RowNodeBlock.STATE_LOADED;\n };\n FullStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var result = [];\n var inActiveRange = false;\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n this.nodesAfterSort.forEach(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = inActiveRange;\n return invalidRange ? [] : result;\n };\n __decorate$h([\n Autowired('ssrmStoreUtils')\n ], FullStore.prototype, \"storeUtils\", void 0);\n __decorate$h([\n Autowired('ssrmBlockUtils')\n ], FullStore.prototype, \"blockUtils\", void 0);\n __decorate$h([\n Autowired('columnModel')\n ], FullStore.prototype, \"columnModel\", void 0);\n __decorate$h([\n Autowired('rowNodeBlockLoader')\n ], FullStore.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$h([\n Autowired('rowNodeSorter')\n ], FullStore.prototype, \"rowNodeSorter\", void 0);\n __decorate$h([\n Autowired('sortController')\n ], FullStore.prototype, \"sortController\", void 0);\n __decorate$h([\n Autowired('ssrmNodeManager')\n ], FullStore.prototype, \"nodeManager\", void 0);\n __decorate$h([\n Autowired('filterManager')\n ], FullStore.prototype, \"filterManager\", void 0);\n __decorate$h([\n Autowired('ssrmTransactionManager')\n ], FullStore.prototype, \"transactionManager\", void 0);\n __decorate$h([\n PostConstruct\n ], FullStore.prototype, \"postConstruct\", null);\n __decorate$h([\n PreDestroy\n ], FullStore.prototype, \"destroyRowNodes\", null);\n return FullStore;\n}(RowNodeBlock));\n\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreFactory = /** @class */ (function () {\n function StoreFactory() {\n }\n StoreFactory.prototype.createStore = function (ssrmParams, parentNode) {\n var storeParams = this.getStoreParams(ssrmParams, parentNode);\n var CacheClass = storeParams.infiniteScroll ? InfiniteStore : FullStore;\n return new CacheClass(ssrmParams, storeParams, parentNode);\n };\n StoreFactory.prototype.getStoreParams = function (ssrmParams, parentNode) {\n var userStoreParams = this.getLevelSpecificParams(parentNode);\n // if user provided overrideParams, we take infiniteScroll from there if it exists\n var infiniteScroll = this.isInfiniteScroll(userStoreParams);\n var cacheBlockSize = this.getBlockSize(infiniteScroll, userStoreParams);\n var maxBlocksInCache = this.getMaxBlocksInCache(infiniteScroll, ssrmParams, userStoreParams);\n var storeParams = {\n infiniteScroll: infiniteScroll,\n cacheBlockSize: cacheBlockSize,\n maxBlocksInCache: maxBlocksInCache\n };\n return storeParams;\n };\n StoreFactory.prototype.getMaxBlocksInCache = function (infiniteScroll, ssrmParams, userStoreParams) {\n if (!infiniteScroll) {\n return undefined;\n }\n var maxBlocksInCache = (userStoreParams && userStoreParams.maxBlocksInCache != null)\n ? userStoreParams.maxBlocksInCache\n : this.gridOptionsWrapper.getMaxBlocksInCache();\n var maxBlocksActive = maxBlocksInCache != null && maxBlocksInCache >= 0;\n if (!maxBlocksActive) {\n return undefined;\n }\n if (ssrmParams.dynamicRowHeight) {\n var message_1 = 'AG Grid: Server Side Row Model does not support Dynamic Row Height and Cache Purging. ' +\n 'Either a) remove getRowHeight() callback or b) remove maxBlocksInCache property. Purging has been disabled.';\n _.doOnce(function () { return console.warn(message_1); }, 'storeFactory.maxBlocksInCache.dynamicRowHeight');\n return undefined;\n }\n if (this.columnModel.isAutoRowHeightActive()) {\n var message_2 = 'AG Grid: Server Side Row Model does not support Auto Row Height and Cache Purging. ' +\n 'Either a) remove colDef.autoHeight or b) remove maxBlocksInCache property. Purging has been disabled.';\n _.doOnce(function () { return console.warn(message_2); }, 'storeFactory.maxBlocksInCache.autoRowHeightActive');\n return undefined;\n }\n return maxBlocksInCache;\n };\n StoreFactory.prototype.getBlockSize = function (infiniteScroll, userStoreParams) {\n if (!infiniteScroll) {\n return undefined;\n }\n var blockSize = (userStoreParams && userStoreParams.cacheBlockSize != null)\n ? userStoreParams.cacheBlockSize\n : this.gridOptionsWrapper.getCacheBlockSize();\n if (blockSize != null && blockSize > 0) {\n return blockSize;\n }\n else {\n return 100;\n }\n };\n StoreFactory.prototype.getLevelSpecificParams = function (parentNode) {\n var callback = this.gridOptionsWrapper.getServerSideGroupLevelParamsFunc();\n if (!callback) {\n return undefined;\n }\n var params = {\n level: parentNode.level + 1,\n parentRowNode: parentNode.level >= 0 ? parentNode : undefined,\n rowGroupColumns: this.columnModel.getRowGroupColumns(),\n pivotColumns: this.columnModel.getPivotColumns(),\n pivotMode: this.columnModel.isPivotMode()\n };\n var res = callback(params);\n if (res.storeType != null) {\n res.infiniteScroll = res.storeType === \"partial\";\n }\n return res;\n };\n StoreFactory.prototype.isInfiniteScroll = function (storeParams) {\n var res = (storeParams && storeParams.infiniteScroll != null)\n ? storeParams.infiniteScroll\n : this.gridOptionsWrapper.isServerSideInfiniteScroll();\n return res;\n };\n __decorate$g([\n Autowired('gridOptionsWrapper')\n ], StoreFactory.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$g([\n Autowired('columnModel')\n ], StoreFactory.prototype, \"columnModel\", void 0);\n StoreFactory = __decorate$g([\n Bean('ssrmStoreFactory')\n ], StoreFactory);\n return StoreFactory;\n}());\n\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ListenerUtils = /** @class */ (function () {\n function ListenerUtils() {\n }\n ListenerUtils.prototype.isSortingWithValueColumn = function (changedColumnsInSort) {\n var valueColIds = this.columnModel.getValueColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (valueColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n ListenerUtils.prototype.isSortingWithSecondaryColumn = function (changedColumnsInSort) {\n if (!this.columnModel.getSecondaryColumns()) {\n return false;\n }\n var secondaryColIds = this.columnModel.getSecondaryColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (secondaryColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n __decorate$f([\n Autowired('columnModel')\n ], ListenerUtils.prototype, \"columnModel\", void 0);\n ListenerUtils = __decorate$f([\n Bean('ssrmListenerUtils')\n ], ListenerUtils);\n return ListenerUtils;\n}());\n\nvar ServerSideRowModelModule = {\n moduleName: ModuleNames.ServerSideRowModelModule,\n rowModels: { serverSide: ServerSideRowModel },\n beans: [ExpandListener, SortListener, StoreUtils, BlockUtils, NodeManager, TransactionManager,\n FilterListener, StoreFactory, ListenerUtils],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar NULL_SUBSTITUTE$1 = '____';\nvar ClientSideValuesExtractor = /** @class */ (function () {\n function ClientSideValuesExtractor(rowModel, filterParams, caseFormat) {\n this.rowModel = rowModel;\n this.filterParams = filterParams;\n this.caseFormat = caseFormat;\n }\n ClientSideValuesExtractor.prototype.extractUniqueValues = function (predicate) {\n var _this = this;\n var values = {};\n var keyCreator = this.filterParams.colDef.keyCreator;\n var addValue = function (value) {\n // NOTE: We don't care about the keys later on (only values in the dictionary are\n // returned), so as long as we use a non-conflicting key for the `null` value this\n // will behave correctly.\n var valueKey = value != null ? _this.caseFormat(value) : NULL_SUBSTITUTE$1;\n if (valueKey && values[valueKey] == null) {\n values[valueKey] = value;\n }\n };\n this.rowModel.forEachLeafNode(function (node) {\n // only pull values from rows that have data. this means we skip filler group nodes.\n if (!node.data || !predicate(node)) {\n return;\n }\n var _a = _this.filterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n var value = _this.filterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: node.data,\n getValue: function (field) { return node.data[field]; },\n node: node,\n });\n if (keyCreator) {\n var params = {\n value: value,\n colDef: _this.filterParams.colDef,\n column: _this.filterParams.column,\n node: node,\n data: node.data,\n api: _this.filterParams.api,\n columnApi: _this.filterParams.columnApi,\n context: _this.filterParams.context\n };\n value = keyCreator(params);\n }\n value = _.makeNull(value);\n if (value != null && Array.isArray(value)) {\n value.forEach(function (x) {\n var formatted = _.toStringOrNull(_.makeNull(x));\n addValue(formatted);\n });\n }\n else {\n addValue(_.toStringOrNull(value));\n }\n });\n return _.values(values);\n };\n return ClientSideValuesExtractor;\n}());\n\nvar SetFilterModelValuesType;\n(function (SetFilterModelValuesType) {\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_LIST\"] = 0] = \"PROVIDED_LIST\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_CALLBACK\"] = 1] = \"PROVIDED_CALLBACK\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"TAKEN_FROM_GRID_VALUES\"] = 2] = \"TAKEN_FROM_GRID_VALUES\";\n})(SetFilterModelValuesType || (SetFilterModelValuesType = {}));\nvar NULL_SUBSTITUTE = '____';\nvar SetValueModel = /** @class */ (function () {\n function SetValueModel(filterParams, setIsLoading, valueFormatterService, translate, caseFormat) {\n var _this = this;\n this.filterParams = filterParams;\n this.setIsLoading = setIsLoading;\n this.valueFormatterService = valueFormatterService;\n this.translate = translate;\n this.caseFormat = caseFormat;\n this.localEventService = new EventService();\n this.miniFilterText = null;\n // The lookup for a set is much faster than the lookup for an array, especially when the length of the array is\n // thousands of records long, so where lookups are important we use a set.\n /** Values provided to the filter for use. */\n this.providedValues = null;\n /** All possible values for the filter, sorted if required. */\n this.allValues = [];\n /** Remaining values when filters from other columns have been applied. */\n this.availableValues = new Set();\n /** All values that are currently displayed, after the mini-filter has been applied. */\n this.displayedValues = [];\n /** Values that have been selected for this filter. */\n this.selectedValues = new Set();\n this.initialised = false;\n var column = filterParams.column, colDef = filterParams.colDef, textFormatter = filterParams.textFormatter, doesRowPassOtherFilter = filterParams.doesRowPassOtherFilter, suppressSorting = filterParams.suppressSorting, comparator = filterParams.comparator, rowModel = filterParams.rowModel, values = filterParams.values; filterParams.caseSensitive;\n this.column = column;\n this.formatter = textFormatter || TextFilter.DEFAULT_FORMATTER;\n this.doesRowPassOtherFilters = doesRowPassOtherFilter;\n this.suppressSorting = suppressSorting || false;\n this.comparator = comparator || colDef.comparator || _.defaultComparator;\n if (rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideValuesExtractor = new ClientSideValuesExtractor(rowModel, this.filterParams, this.caseFormat);\n }\n if (values == null) {\n this.valuesType = SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n }\n else {\n this.valuesType = Array.isArray(values) ?\n SetFilterModelValuesType.PROVIDED_LIST :\n SetFilterModelValuesType.PROVIDED_CALLBACK;\n this.providedValues = values;\n }\n this.updateAllValues().then(function (updatedValues) { return _this.resetSelectionState(updatedValues || []); });\n }\n SetValueModel.prototype.addEventListener = function (eventType, listener, async) {\n this.localEventService.addEventListener(eventType, listener, async);\n };\n SetValueModel.prototype.removeEventListener = function (eventType, listener, async) {\n this.localEventService.removeEventListener(eventType, listener, async);\n };\n /**\n * Re-fetches the values used in the filter from the value source.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.refreshValues = function () {\n var currentModel = this.getModel();\n this.updateAllValues();\n // ensure model is updated for new values\n return this.setModel(currentModel);\n };\n /**\n * Overrides the current values being used for the set filter.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.overrideValues = function (valuesToUse) {\n var _this = this;\n return new AgPromise(function (resolve) {\n // wait for any existing values to be populated before overriding\n _this.allValuesPromise.then(function () {\n _this.valuesType = SetFilterModelValuesType.PROVIDED_LIST;\n _this.providedValues = valuesToUse;\n _this.refreshValues().then(function () { return resolve(); });\n });\n });\n };\n SetValueModel.prototype.refreshAfterAnyFilterChanged = function () {\n var _this = this;\n return this.showAvailableOnly() ?\n this.allValuesPromise.then(function (values) { return _this.updateAvailableValues(values || []); }) :\n AgPromise.resolve();\n };\n SetValueModel.prototype.isInitialised = function () {\n return this.initialised;\n };\n SetValueModel.prototype.updateAllValues = function () {\n var _this = this;\n this.allValuesPromise = new AgPromise(function (resolve) {\n switch (_this.valuesType) {\n case SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES:\n case SetFilterModelValuesType.PROVIDED_LIST: {\n var values = _this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES ?\n _this.getValuesFromRows(false) : _this.uniqueUnsortedStringArray(_this.providedValues);\n var sortedValues = _this.sortValues(values || []);\n _this.allValues = sortedValues;\n resolve(sortedValues);\n break;\n }\n case SetFilterModelValuesType.PROVIDED_CALLBACK: {\n _this.setIsLoading(true);\n var callback_1 = _this.providedValues;\n var _a = _this.filterParams, columnApi = _a.columnApi, api = _a.api, context = _a.context, column = _a.column, colDef = _a.colDef;\n var params_1 = {\n success: function (values) {\n var processedValues = _this.uniqueUnsortedStringArray(values || []);\n _this.setIsLoading(false);\n var sortedValues = _this.sortValues(processedValues || []);\n _this.allValues = sortedValues;\n resolve(sortedValues);\n },\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n api: api,\n context: context,\n };\n window.setTimeout(function () { return callback_1(params_1); }, 0);\n break;\n }\n default:\n throw new Error('Unrecognised valuesType');\n }\n });\n this.allValuesPromise.then(function (values) { return _this.updateAvailableValues(values || []); }).then(function () { return _this.initialised = true; });\n return this.allValuesPromise;\n };\n SetValueModel.prototype.setValuesType = function (value) {\n this.valuesType = value;\n };\n SetValueModel.prototype.getValuesType = function () {\n return this.valuesType;\n };\n SetValueModel.prototype.isValueAvailable = function (value) {\n return this.availableValues.has(value);\n };\n SetValueModel.prototype.showAvailableOnly = function () {\n return this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n };\n SetValueModel.prototype.updateAvailableValues = function (allValues) {\n var availableValues = this.showAvailableOnly() ? this.sortValues(this.getValuesFromRows(true)) : allValues;\n this.availableValues = _.convertToSet(availableValues);\n this.localEventService.dispatchEvent({ type: SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED });\n this.updateDisplayedValues();\n };\n SetValueModel.prototype.sortValues = function (values) {\n if (this.suppressSorting) {\n return values;\n }\n if (!this.filterParams.excelMode || values.indexOf(null) < 0) {\n return values.sort(this.comparator);\n }\n // ensure the blank value always appears last\n return values.filter(function (v) { return v != null; }).sort(this.comparator).concat(null);\n };\n SetValueModel.prototype.getValuesFromRows = function (removeUnavailableValues) {\n var _this = this;\n if (removeUnavailableValues === void 0) { removeUnavailableValues = false; }\n if (!this.clientSideValuesExtractor) {\n console.error('AG Grid: Set Filter cannot initialise because you are using a row model that does not contain all rows in the browser. Either use a different filter type, or configure Set Filter such that you provide it with values');\n return [];\n }\n var predicate = function (node) { return (!removeUnavailableValues || _this.doesRowPassOtherFilters(node)); };\n return this.clientSideValuesExtractor.extractUniqueValues(predicate);\n };\n /** Sets mini filter value. Returns true if it changed from last value, otherwise false. */\n SetValueModel.prototype.setMiniFilter = function (value) {\n value = _.makeNull(value);\n if (this.miniFilterText === value) {\n //do nothing if filter has not changed\n return false;\n }\n this.miniFilterText = value;\n this.updateDisplayedValues();\n return true;\n };\n SetValueModel.prototype.getMiniFilter = function () {\n return this.miniFilterText;\n };\n SetValueModel.prototype.updateDisplayedValues = function () {\n var _this = this;\n // if no filter, just display all available values\n if (this.miniFilterText == null) {\n this.displayedValues = _.values(this.availableValues);\n return;\n }\n // if filter present, we filter down the list\n this.displayedValues = [];\n // to allow for case insensitive searches, upper-case both filter text and value\n var formattedFilterText = this.caseFormat(this.formatter(this.miniFilterText) || '');\n var matchesFilter = function (valueToCheck) {\n return valueToCheck != null && _this.caseFormat(valueToCheck).indexOf(formattedFilterText) >= 0;\n };\n this.availableValues.forEach(function (value) {\n if (value == null) {\n if (_this.filterParams.excelMode && matchesFilter(_this.translate('blanks'))) {\n _this.displayedValues.push(value);\n }\n }\n else {\n var textFormatterValue = _this.formatter(value);\n // TODO: should this be applying the text formatter *after* the value formatter?\n var valueFormatterValue = _this.valueFormatterService.formatValue(_this.column, null, textFormatterValue, _this.filterParams.valueFormatter, false);\n if (matchesFilter(textFormatterValue) || matchesFilter(valueFormatterValue)) {\n _this.displayedValues.push(value);\n }\n }\n });\n };\n SetValueModel.prototype.getDisplayedValueCount = function () {\n return this.displayedValues.length;\n };\n SetValueModel.prototype.getDisplayedValue = function (index) {\n return this.displayedValues[index];\n };\n SetValueModel.prototype.hasSelections = function () {\n return this.filterParams.defaultToNothingSelected ?\n this.selectedValues.size > 0 :\n this.allValues.length !== this.selectedValues.size;\n };\n SetValueModel.prototype.getValues = function () {\n return this.allValues.slice();\n };\n SetValueModel.prototype.selectAllMatchingMiniFilter = function (clearExistingSelection) {\n var _this = this;\n if (clearExistingSelection === void 0) { clearExistingSelection = false; }\n if (this.miniFilterText == null) {\n // ensure everything is selected\n this.selectedValues = _.convertToSet(this.allValues);\n }\n else {\n // ensure everything that matches the mini filter is selected\n if (clearExistingSelection) {\n this.selectedValues.clear();\n }\n this.displayedValues.forEach(function (value) { return _this.selectedValues.add(value); });\n }\n };\n SetValueModel.prototype.deselectAllMatchingMiniFilter = function () {\n var _this = this;\n if (this.miniFilterText == null) {\n // ensure everything is deselected\n this.selectedValues.clear();\n }\n else {\n // ensure everything that matches the mini filter is deselected\n this.displayedValues.forEach(function (value) { return _this.selectedValues.delete(value); });\n }\n };\n SetValueModel.prototype.selectValue = function (value) {\n this.selectedValues.add(value);\n };\n SetValueModel.prototype.deselectValue = function (value) {\n if (this.filterParams.excelMode && this.isEverythingVisibleSelected()) {\n // ensure we're starting from the correct \"everything selected\" state\n this.resetSelectionState(this.displayedValues);\n }\n this.selectedValues.delete(value);\n };\n SetValueModel.prototype.isValueSelected = function (value) {\n return this.selectedValues.has(value);\n };\n SetValueModel.prototype.isEverythingVisibleSelected = function () {\n var _this = this;\n return this.displayedValues.filter(function (it) { return _this.isValueSelected(it); }).length === this.displayedValues.length;\n };\n SetValueModel.prototype.isNothingVisibleSelected = function () {\n var _this = this;\n return this.displayedValues.filter(function (it) { return _this.isValueSelected(it); }).length === 0;\n };\n SetValueModel.prototype.getModel = function () {\n return this.hasSelections() ? _.values(this.selectedValues) : null;\n };\n SetValueModel.prototype.setModel = function (model) {\n var _this = this;\n return this.allValuesPromise.then(function (values) {\n if (model == null) {\n _this.resetSelectionState(values || []);\n }\n else {\n // select all values from the model that exist in the filter\n _this.selectedValues.clear();\n var allValues_1 = _this.uniqueValues(values || []);\n model.forEach(function (value) {\n var allValue = allValues_1[_this.uniqueKey(value)];\n if (allValue !== undefined) {\n _this.selectedValues.add(allValue);\n }\n });\n }\n });\n };\n SetValueModel.prototype.uniqueUnsortedStringArray = function (values) {\n var _this = this;\n var stringifiedResults = _.toStrings(values);\n if (!stringifiedResults) {\n return [];\n }\n var uniqueValues = this.uniqueValues(stringifiedResults);\n /*\n * It is not possible to simply use Object.values(uniqueValues) here as the keys inside uniqueValues could be numeric.\n * Javascript objects sort numeric keys and do not fully respect the insert order, as such to trust the results are unsorted\n * we need to reference the order of the original array as done here.\n */\n return stringifiedResults.map(_.makeNull).filter(function (value) {\n var key = _this.uniqueKey(value);\n if (key in uniqueValues) {\n delete uniqueValues[key];\n return true;\n }\n return false;\n });\n };\n SetValueModel.prototype.uniqueValues = function (values) {\n var _this = this;\n // Honour case-sensitivity setting for matching purposes here, preserving original casing\n // in the selectedValues output.\n var uniqueValues = {};\n (values || []).forEach(function (rawValue) {\n var value = _.makeNull(rawValue);\n var key = _this.uniqueKey(value);\n if (uniqueValues[key] === undefined) {\n uniqueValues[key] = value;\n }\n });\n return uniqueValues;\n };\n SetValueModel.prototype.uniqueKey = function (v) {\n return v == null ? NULL_SUBSTITUTE : this.caseFormat(v);\n };\n SetValueModel.prototype.resetSelectionState = function (values) {\n if (this.filterParams.defaultToNothingSelected) {\n this.selectedValues.clear();\n }\n else {\n this.selectedValues = _.convertToSet(values || []);\n }\n };\n SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED = 'availableValuesChanged';\n return SetValueModel;\n}());\n\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFilterListItem = /** @class */ (function (_super) {\n __extends$A(SetFilterListItem, _super);\n function SetFilterListItem(value, params, translate, isSelected) {\n var _this = _super.call(this, SetFilterListItem.TEMPLATE) || this;\n _this.value = value;\n _this.params = params;\n _this.translate = translate;\n _this.isSelected = isSelected;\n return _this;\n }\n SetFilterListItem.prototype.init = function () {\n var _this = this;\n this.render();\n this.eCheckbox.setValue(this.isSelected, true);\n this.eCheckbox.setDisabled(!!this.params.readOnly);\n if (!!this.params.readOnly) {\n // Don't add event listeners if we're read-only.\n return;\n }\n this.eCheckbox.onValueChange(function (value) {\n var parsedValue = value || false;\n _this.isSelected = parsedValue;\n var event = {\n type: SetFilterListItem.EVENT_SELECTION_CHANGED,\n isSelected: parsedValue,\n };\n _this.dispatchEvent(event);\n });\n };\n SetFilterListItem.prototype.toggleSelected = function () {\n if (!!this.params.readOnly) {\n return;\n }\n this.isSelected = !this.isSelected;\n this.eCheckbox.setValue(this.isSelected);\n };\n SetFilterListItem.prototype.render = function () {\n var column = this.params.column;\n var value = this.value;\n var formattedValue = null;\n if (typeof value === 'function') {\n value = value();\n }\n else {\n formattedValue = this.getFormattedValue(this.params, column, value);\n }\n if (this.params.showTooltips) {\n var tooltipValue = formattedValue != null ? formattedValue : value;\n this.setTooltip(tooltipValue);\n }\n var params = {\n value: value,\n valueFormatted: formattedValue,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n colDef: this.params.colDef,\n column: this.params.column,\n };\n this.renderCell(params);\n };\n SetFilterListItem.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'setFilterValue';\n res.colDef = this.getComponentHolder();\n return res;\n };\n SetFilterListItem.prototype.getFormattedValue = function (filterParams, column, value) {\n var formatter = filterParams && filterParams.valueFormatter;\n return this.valueFormatterService.formatValue(column, null, value, formatter, false);\n };\n SetFilterListItem.prototype.renderCell = function (params) {\n var _this = this;\n var compDetails = this.userComponentFactory.getSetFilterCellRendererDetails(this.params, params);\n var cellRendererPromise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (cellRendererPromise == null) {\n var valueToRender = params.valueFormatted == null ? params.value : params.valueFormatted;\n this.eCheckbox.setLabel(valueToRender == null ? this.translate('blanks') : valueToRender);\n return;\n }\n cellRendererPromise.then(function (component) {\n if (component) {\n _this.eCheckbox.setLabel(component.getGui());\n _this.addDestroyFunc(function () { return _this.destroyBean(component); });\n }\n });\n };\n SetFilterListItem.prototype.getComponentHolder = function () {\n return this.params.column.getColDef();\n };\n SetFilterListItem.EVENT_SELECTION_CHANGED = 'selectionChanged';\n SetFilterListItem.TEMPLATE = \"\\n
\\n \\n
\";\n __decorate$e([\n Autowired('valueFormatterService')\n ], SetFilterListItem.prototype, \"valueFormatterService\", void 0);\n __decorate$e([\n Autowired('userComponentFactory')\n ], SetFilterListItem.prototype, \"userComponentFactory\", void 0);\n __decorate$e([\n RefSelector('eCheckbox')\n ], SetFilterListItem.prototype, \"eCheckbox\", void 0);\n __decorate$e([\n PostConstruct\n ], SetFilterListItem.prototype, \"init\", null);\n return SetFilterListItem;\n}(Component));\n\nvar DEFAULT_LOCALE_TEXT = {\n loadingOoo: 'Loading...',\n blanks: '(Blanks)',\n searchOoo: 'Search...',\n selectAll: '(Select All)',\n selectAllSearchResults: '(Select All Search Results)',\n noMatches: 'No matches.'\n};\n\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFilter = /** @class */ (function (_super) {\n __extends$z(SetFilter, _super);\n function SetFilter() {\n var _this = _super.call(this, 'setFilter') || this;\n _this.valueModel = null;\n _this.setFilterParams = null;\n _this.virtualList = null;\n _this.caseSensitive = false;\n // To make the filtering super fast, we store the values in an object, and check for the boolean value.\n // Although Set would be a more natural choice of data structure, its performance across browsers is\n // significantly worse than using an object: https://jsbench.me/hdk91jbw1h/\n _this.appliedModelValues = null;\n return _this;\n }\n SetFilter.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.positionableFeature = new PositionableFeature(this.eSetFilterList, { forcePopupParentAsOffsetParent: true });\n this.createBean(this.positionableFeature);\n };\n // unlike the simple filters, nothing in the set filter UI shows/hides.\n // maybe this method belongs in abstractSimpleFilter???\n SetFilter.prototype.updateUiVisibility = function () { };\n SetFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n
\\n
\" + this.translateForSetFilter('loadingOoo') + \"
\\n \\n
\" + this.translateForSetFilter('noMatches') + \"
\\n
\\n
\";\n };\n SetFilter.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n if (e.defaultPrevented) {\n return;\n }\n switch (e.key) {\n case KeyCode.SPACE:\n this.handleKeySpace(e);\n break;\n case KeyCode.ENTER:\n this.handleKeyEnter(e);\n break;\n }\n };\n SetFilter.prototype.handleKeySpace = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!this.eSetFilterList.contains(eDocument.activeElement) || !this.virtualList) {\n return;\n }\n var currentItem = this.virtualList.getLastFocusedRow();\n if (currentItem == null) {\n return;\n }\n var component = this.virtualList.getComponentAt(currentItem);\n if (component == null) {\n return;\n }\n e.preventDefault();\n var readOnly = (this.setFilterParams || {}).readOnly;\n if (!!readOnly) {\n return;\n }\n component.toggleSelected();\n };\n SetFilter.prototype.handleKeyEnter = function (e) {\n if (!this.setFilterParams) {\n return;\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (!excelMode || !!readOnly) {\n return;\n }\n e.preventDefault();\n // in Excel Mode, hitting Enter is the same as pressing the Apply button\n this.onBtApply(false, false, e);\n if (this.setFilterParams.excelMode === 'mac') {\n // in Mac version, select all the input text\n this.eMiniFilter.getInputElement().select();\n }\n };\n SetFilter.prototype.getCssIdentifier = function () {\n return 'set-filter';\n };\n SetFilter.prototype.setModelAndRefresh = function (values) {\n var _this = this;\n return this.valueModel ? this.valueModel.setModel(values).then(function () { return _this.refresh(); }) : AgPromise.resolve();\n };\n SetFilter.prototype.resetUiToDefaults = function () {\n this.setMiniFilter(null);\n return this.setModelAndRefresh(null);\n };\n SetFilter.prototype.setModelIntoUi = function (model) {\n this.setMiniFilter(null);\n var values = model == null ? null : model.values;\n return this.setModelAndRefresh(values);\n };\n SetFilter.prototype.getModelFromUi = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var values = this.valueModel.getModel();\n if (!values) {\n return null;\n }\n return { values: values, filterType: this.getFilterType() };\n };\n SetFilter.prototype.getFilterType = function () {\n return 'set';\n };\n SetFilter.prototype.getValueModel = function () {\n return this.valueModel;\n };\n SetFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (a == null && b == null) {\n return true;\n }\n return a != null && b != null && _.areEqual(a.values, b.values);\n };\n SetFilter.prototype.setParams = function (params) {\n var _this = this;\n this.applyExcelModeOptions(params);\n _super.prototype.setParams.call(this, params);\n this.setFilterParams = params;\n this.caseSensitive = params.caseSensitive || false;\n this.valueModel = new SetValueModel(params, function (loading) { return _this.showOrHideLoadingScreen(loading); }, this.valueFormatterService, function (key) { return _this.translateForSetFilter(key); }, function (v) { return _this.caseFormat(v); });\n this.initialiseFilterBodyUi();\n this.addEventListenersForDataChanges();\n };\n SetFilter.prototype.applyExcelModeOptions = function (params) {\n // apply default options to match Excel behaviour, unless they have already been specified\n if (params.excelMode === 'windows') {\n if (!params.buttons) {\n params.buttons = ['apply', 'cancel'];\n }\n if (params.closeOnApply == null) {\n params.closeOnApply = true;\n }\n }\n else if (params.excelMode === 'mac') {\n if (!params.buttons) {\n params.buttons = ['reset'];\n }\n if (params.applyMiniFilterWhileTyping == null) {\n params.applyMiniFilterWhileTyping = true;\n }\n if (params.debounceMs == null) {\n params.debounceMs = 500;\n }\n }\n };\n SetFilter.prototype.addEventListenersForDataChanges = function () {\n var _this = this;\n if (!this.isValuesTakenFromGrid()) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, function (event) {\n // only interested in changes to do with this column\n if (_this.setFilterParams && event.column === _this.setFilterParams.column) {\n _this.syncAfterDataChange();\n }\n });\n };\n SetFilter.prototype.syncAfterDataChange = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var promise = this.valueModel.refreshValues();\n return promise.then(function () {\n _this.refresh();\n _this.onBtApply(false, true);\n });\n };\n SetFilter.prototype.showOrHideLoadingScreen = function (isLoading) {\n _.setDisplayed(this.eFilterLoading, isLoading);\n };\n SetFilter.prototype.initialiseFilterBodyUi = function () {\n this.initVirtualList();\n this.initMiniFilter();\n };\n SetFilter.prototype.initVirtualList = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var filterListName = translate('ariaFilterList', 'Filter List');\n var virtualList = this.virtualList = this.createBean(new VirtualList('filter', 'listbox', filterListName));\n var eSetFilterList = this.getRefElement('eSetFilterList');\n if (eSetFilterList) {\n eSetFilterList.appendChild(virtualList.getGui());\n }\n var cellHeight = this.setFilterParams.cellHeight;\n if (cellHeight != null) {\n virtualList.setRowHeight(cellHeight);\n }\n virtualList.setComponentCreator(function (value) { return _this.createSetListItem(value); });\n var model;\n if (this.setFilterParams.suppressSelectAll) {\n model = new ModelWrapper(this.valueModel);\n }\n else {\n model = new ModelWrapperWithSelectAll(this.valueModel, function () { return _this.isSelectAllSelected(); });\n }\n virtualList.setModel(model);\n };\n SetFilter.prototype.getSelectAllLabel = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var key = this.valueModel.getMiniFilter() == null || !this.setFilterParams.excelMode ?\n 'selectAll' : 'selectAllSearchResults';\n return this.translateForSetFilter(key);\n };\n SetFilter.prototype.createSetListItem = function (value) {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var listItem;\n if (value === SetFilter.SELECT_ALL_VALUE) {\n listItem = this.createBean(new SetFilterListItem(function () { return _this.getSelectAllLabel(); }, this.setFilterParams, function (key) { return _this.translateForSetFilter(key); }, this.isSelectAllSelected()));\n listItem.addEventListener(SetFilterListItem.EVENT_SELECTION_CHANGED, function (e) { return _this.onSelectAll(e.isSelected); });\n return listItem;\n }\n listItem = this.createBean(new SetFilterListItem(value, this.setFilterParams, function (key) { return _this.translateForSetFilter(key); }, this.valueModel.isValueSelected(value)));\n listItem.addEventListener(SetFilterListItem.EVENT_SELECTION_CHANGED, function (e) { return _this.onItemSelected(value, e.isSelected); });\n return listItem;\n };\n SetFilter.prototype.initMiniFilter = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this, eMiniFilter = _a.eMiniFilter, gridOptionsWrapper = _a.gridOptionsWrapper;\n var translate = gridOptionsWrapper.getLocaleTextFunc();\n eMiniFilter.setDisplayed(!this.setFilterParams.suppressMiniFilter);\n eMiniFilter.setValue(this.valueModel.getMiniFilter());\n eMiniFilter.onValueChange(function () { return _this.onMiniFilterInput(); });\n eMiniFilter.setInputAriaLabel(translate('ariaSearchFilterValues', 'Search filter values'));\n this.addManagedListener(eMiniFilter.getInputElement(), 'keypress', function (e) { return _this.onMiniFilterKeyPress(e); });\n };\n // we need to have the GUI attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the GUI state\n SetFilter.prototype.afterGuiAttached = function (params) {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n _super.prototype.afterGuiAttached.call(this, params);\n if (this.setFilterParams.excelMode) {\n this.resetUiToActiveModel();\n this.showOrHideResults();\n }\n this.refreshVirtualList();\n var eMiniFilter = this.eMiniFilter;\n eMiniFilter.setInputPlaceholder(this.translateForSetFilter('searchOoo'));\n if (!params || !params.suppressFocus) {\n eMiniFilter.getFocusableElement().focus();\n }\n var resizable = !!(params && params.container === 'floatingFilter');\n var resizableObject;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n resizableObject = { bottom: true, bottomLeft: true, left: true };\n }\n else {\n resizableObject = { bottom: true, bottomRight: true, right: true };\n }\n if (resizable) {\n this.positionableFeature.restoreLastSize();\n this.positionableFeature.setResizable(resizableObject);\n }\n else {\n this.positionableFeature.removeSizeFromEl();\n this.positionableFeature.setResizable(false);\n }\n };\n SetFilter.prototype.applyModel = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (this.setFilterParams.excelMode && this.valueModel.isEverythingVisibleSelected()) {\n // In Excel, if the filter is applied with all visible values selected, then any active filter on the\n // column is removed. This ensures the filter is removed in this situation.\n this.valueModel.selectAllMatchingMiniFilter();\n }\n var result = _super.prototype.applyModel.call(this);\n // keep appliedModelValues in sync with the applied model\n var appliedModel = this.getModel();\n if (appliedModel) {\n this.appliedModelValues = appliedModel.values.reduce(function (values, value) {\n values[_this.caseFormat(String(value))] = true;\n return values;\n }, {});\n }\n else {\n this.appliedModelValues = null;\n }\n return result;\n };\n SetFilter.prototype.isModelValid = function (model) {\n return this.setFilterParams && this.setFilterParams.excelMode ? model == null || model.values.length > 0 : true;\n };\n SetFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n if (!this.setFilterParams || !this.valueModel || !this.appliedModelValues) {\n return true;\n }\n var node = params.node, data = params.data;\n var _a = this.setFilterParams, valueGetter = _a.valueGetter, keyCreator = _a.colDef.keyCreator, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n var value = valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: data,\n getValue: function (field) { return data[field]; },\n node: node,\n });\n if (keyCreator) {\n var keyParams = {\n value: value,\n colDef: colDef,\n column: column,\n node: node,\n data: data,\n api: api,\n columnApi: columnApi,\n context: context,\n };\n value = keyCreator(keyParams);\n }\n value = _.makeNull(value);\n if (Array.isArray(value)) {\n return value.some(function (v) { return _this.appliedModelValues[_this.caseFormat(String(_.makeNull(v)))] === true; });\n }\n // Comparing against a value performs better than just checking for undefined\n // https://jsbench.me/hdk91jbw1h/\n return this.appliedModelValues[this.caseFormat(String(value))] === true;\n };\n SetFilter.prototype.onNewRowsLoaded = function () {\n if (!this.isValuesTakenFromGrid()) {\n return;\n }\n this.syncAfterDataChange();\n };\n SetFilter.prototype.isValuesTakenFromGrid = function () {\n if (!this.valueModel) {\n return false;\n }\n var valuesType = this.valueModel.getValuesType();\n return valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can change the value of the filter once\n * the filter has been already started\n * @param options The options to use.\n */\n SetFilter.prototype.setFilterValues = function (options) {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.overrideValues(options).then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can reset the values of the filter once that it has started.\n */\n SetFilter.prototype.resetFilterValues = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.setValuesType(SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES);\n this.syncAfterDataChange();\n };\n SetFilter.prototype.refreshFilterValues = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n // the model is still being initialised\n if (!this.valueModel.isInitialised()) {\n return;\n }\n this.valueModel.refreshValues().then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n SetFilter.prototype.onAnyFilterChanged = function () {\n var _this = this;\n // don't block the current action when updating the values for this filter\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n if (!_this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n _this.valueModel.refreshAfterAnyFilterChanged().then(function () { return _this.refresh(); });\n }, 0);\n };\n SetFilter.prototype.onMiniFilterInput = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.valueModel.setMiniFilter(this.eMiniFilter.getValue())) {\n return;\n }\n var _a = this.setFilterParams || {}, applyMiniFilterWhileTyping = _a.applyMiniFilterWhileTyping, readOnly = _a.readOnly;\n if (!readOnly && applyMiniFilterWhileTyping) {\n this.filterOnAllVisibleValues(false);\n }\n else {\n this.updateUiAfterMiniFilterChange();\n }\n };\n SetFilter.prototype.updateUiAfterMiniFilterChange = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (excelMode == null || !!readOnly) {\n this.refresh();\n }\n else if (this.valueModel.getMiniFilter() == null) {\n this.resetUiToActiveModel();\n }\n else {\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged();\n }\n this.showOrHideResults();\n };\n SetFilter.prototype.showOrHideResults = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var hideResults = this.valueModel.getMiniFilter() != null && this.valueModel.getDisplayedValueCount() < 1;\n _.setDisplayed(this.eNoMatches, hideResults);\n _.setDisplayed(this.eSetFilterList, !hideResults);\n };\n SetFilter.prototype.resetUiToActiveModel = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.eMiniFilter.setValue(null, true);\n this.valueModel.setMiniFilter(null);\n this.setModelIntoUi(this.getModel()).then(function () { return _this.onUiChanged(false, 'prevent'); });\n };\n SetFilter.prototype.onMiniFilterKeyPress = function (e) {\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (e.key === KeyCode.ENTER && !excelMode && !readOnly) {\n this.filterOnAllVisibleValues();\n }\n };\n SetFilter.prototype.filterOnAllVisibleValues = function (applyImmediately) {\n if (applyImmediately === void 0) { applyImmediately = true; }\n var readOnly = (this.setFilterParams || {}).readOnly;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!!readOnly) {\n throw new Error('Unable to filter in readOnly mode.');\n }\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged(false, applyImmediately ? 'immediately' : 'debounce');\n this.showOrHideResults();\n };\n SetFilter.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n if (rowIndex == null) {\n return;\n }\n window.setTimeout(function () {\n if (!_this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n SetFilter.prototype.onSelectAll = function (isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (isSelected) {\n this.valueModel.selectAllMatchingMiniFilter();\n }\n else {\n this.valueModel.deselectAllMatchingMiniFilter();\n }\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.refresh();\n this.onUiChanged();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.onItemSelected = function (value, isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (isSelected) {\n this.valueModel.selectValue(value);\n }\n else {\n this.valueModel.deselectValue(value);\n }\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.refresh();\n this.onUiChanged();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.setMiniFilter = function (newMiniFilter) {\n this.eMiniFilter.setValue(newMiniFilter);\n this.onMiniFilterInput();\n };\n SetFilter.prototype.getMiniFilter = function () {\n return this.valueModel ? this.valueModel.getMiniFilter() : null;\n };\n SetFilter.prototype.refresh = function () {\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n this.virtualList.refresh();\n };\n SetFilter.prototype.getValues = function () {\n return this.valueModel ? this.valueModel.getValues() : [];\n };\n SetFilter.prototype.refreshVirtualList = function () {\n if (this.setFilterParams && this.setFilterParams.refreshValuesOnOpen) {\n this.refreshFilterValues();\n }\n else {\n this.refresh();\n }\n };\n SetFilter.prototype.translateForSetFilter = function (key) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(key, DEFAULT_LOCALE_TEXT[key]);\n };\n SetFilter.prototype.isSelectAllSelected = function () {\n if (!this.setFilterParams || !this.valueModel) {\n return false;\n }\n if (!this.setFilterParams.defaultToNothingSelected) {\n // everything selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n if (this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n }\n else {\n // nothing selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n if (this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n }\n // returning `undefined` means the checkbox status is indeterminate.\n return undefined;\n };\n SetFilter.prototype.destroy = function () {\n if (this.virtualList != null) {\n this.virtualList.destroy();\n this.virtualList = null;\n }\n _super.prototype.destroy.call(this);\n };\n SetFilter.prototype.caseFormat = function (valueToFormat) {\n if (valueToFormat == null || typeof valueToFormat !== 'string') {\n return valueToFormat;\n }\n return this.caseSensitive ? valueToFormat : valueToFormat.toUpperCase();\n };\n SetFilter.SELECT_ALL_VALUE = '__AG_SELECT_ALL__';\n __decorate$d([\n RefSelector('eMiniFilter')\n ], SetFilter.prototype, \"eMiniFilter\", void 0);\n __decorate$d([\n RefSelector('eFilterLoading')\n ], SetFilter.prototype, \"eFilterLoading\", void 0);\n __decorate$d([\n RefSelector('eSetFilterList')\n ], SetFilter.prototype, \"eSetFilterList\", void 0);\n __decorate$d([\n RefSelector('eFilterNoMatches')\n ], SetFilter.prototype, \"eNoMatches\", void 0);\n __decorate$d([\n Autowired('valueFormatterService')\n ], SetFilter.prototype, \"valueFormatterService\", void 0);\n return SetFilter;\n}(ProvidedFilter));\nvar ModelWrapper = /** @class */ (function () {\n function ModelWrapper(model) {\n this.model = model;\n }\n ModelWrapper.prototype.getRowCount = function () {\n return this.model.getDisplayedValueCount();\n };\n ModelWrapper.prototype.getRow = function (index) {\n return this.model.getDisplayedValue(index);\n };\n ModelWrapper.prototype.isRowSelected = function (index) {\n return this.model.isValueSelected(this.getRow(index));\n };\n return ModelWrapper;\n}());\nvar ModelWrapperWithSelectAll = /** @class */ (function () {\n function ModelWrapperWithSelectAll(model, isSelectAllSelected) {\n this.model = model;\n this.isSelectAllSelected = isSelectAllSelected;\n }\n ModelWrapperWithSelectAll.prototype.getRowCount = function () {\n return this.model.getDisplayedValueCount() + 1;\n };\n ModelWrapperWithSelectAll.prototype.getRow = function (index) {\n return index === 0 ? SetFilter.SELECT_ALL_VALUE : this.model.getDisplayedValue(index - 1);\n };\n ModelWrapperWithSelectAll.prototype.isRowSelected = function (index) {\n return index === 0 ? this.isSelectAllSelected() : this.model.isValueSelected(this.getRow(index));\n };\n return ModelWrapperWithSelectAll;\n}());\n\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFloatingFilterComp = /** @class */ (function (_super) {\n __extends$y(SetFloatingFilterComp, _super);\n function SetFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n _this.availableValuesListenerAdded = false;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SetFloatingFilterComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n SetFloatingFilterComp.prototype.init = function (params) {\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'))\n .addGuiEventListener('click', function () { return params.showParentFilter(); });\n this.params = params;\n };\n SetFloatingFilterComp.prototype.onParentModelChanged = function (parentModel) {\n this.updateFloatingFilterText(parentModel);\n };\n SetFloatingFilterComp.prototype.parentSetFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (filter) {\n if (!(filter instanceof SetFilter)) {\n throw new Error('AG Grid - SetFloatingFilter expects SetFilter as it\\'s parent');\n }\n cb(filter);\n });\n };\n SetFloatingFilterComp.prototype.addAvailableValuesListener = function () {\n var _this = this;\n this.parentSetFilterInstance(function (setFilter) {\n var setValueModel = setFilter.getValueModel();\n if (!setValueModel) {\n return;\n }\n // unlike other filters, what we show in the floating filter can be different, even\n // if another filter changes. this is due to how set filter restricts its values based\n // on selections in other filters, e.g. if you filter Language to English, then the set filter\n // on Country will only show English speaking countries. Thus the list of items to show\n // in the floating filter can change.\n _this.addManagedListener(setValueModel, SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED, function () { return _this.updateFloatingFilterText(); });\n });\n this.availableValuesListenerAdded = true;\n };\n SetFloatingFilterComp.prototype.updateFloatingFilterText = function (parentModel) {\n var _this = this;\n if (!this.availableValuesListenerAdded) {\n this.addAvailableValuesListener();\n }\n this.parentSetFilterInstance(function (setFilter) {\n var values = (parentModel || setFilter.getModel() || {}).values;\n var valueModel = setFilter.getValueModel();\n if (values == null || valueModel == null) {\n _this.eFloatingFilterText.setValue('');\n return;\n }\n var localeTextFunc = _this.gridOptionsWrapper.getLocaleTextFunc();\n var availableValues = values.filter(function (v) { return valueModel.isValueAvailable(v); });\n // format all the values, if a formatter is provided\n var formattedValues = availableValues.map(function (value) {\n var _a = _this.params, column = _a.column, filterParams = _a.filterParams;\n var formattedValue = _this.valueFormatterService.formatValue(column, null, value, filterParams.valueFormatter, false);\n var valueToRender = formattedValue != null ? formattedValue : value;\n return valueToRender == null ? localeTextFunc('blanks', DEFAULT_LOCALE_TEXT.blanks) : valueToRender;\n });\n var arrayToDisplay = formattedValues.length > 10 ? formattedValues.slice(0, 10).concat('...') : formattedValues;\n var valuesString = \"(\" + formattedValues.length + \") \" + arrayToDisplay.join(',');\n _this.eFloatingFilterText.setValue(valuesString);\n });\n };\n __decorate$c([\n RefSelector('eFloatingFilterText')\n ], SetFloatingFilterComp.prototype, \"eFloatingFilterText\", void 0);\n __decorate$c([\n Autowired('valueFormatterService')\n ], SetFloatingFilterComp.prototype, \"valueFormatterService\", void 0);\n __decorate$c([\n Autowired('columnModel')\n ], SetFloatingFilterComp.prototype, \"columnModel\", void 0);\n return SetFloatingFilterComp;\n}(Component));\n\nvar SetFilterModule = {\n moduleName: ModuleNames.SetFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agSetColumnFilter', componentClass: SetFilter },\n { componentName: 'agSetColumnFloatingFilter', componentClass: SetFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBarService = /** @class */ (function (_super) {\n __extends$x(StatusBarService, _super);\n // tslint:disable-next-line\n function StatusBarService() {\n var _this = _super.call(this) || this;\n _this.allComponents = {};\n return _this;\n }\n StatusBarService.prototype.registerStatusPanel = function (key, component) {\n this.allComponents[key] = component;\n };\n StatusBarService.prototype.getStatusPanel = function (key) {\n return this.allComponents[key];\n };\n StatusBarService = __decorate$b([\n Bean('statusBarService')\n ], StatusBarService);\n return StatusBarService;\n}(BeanStub));\n\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBar = /** @class */ (function (_super) {\n __extends$w(StatusBar, _super);\n function StatusBar() {\n return _super.call(this, StatusBar.TEMPLATE) || this;\n }\n StatusBar.prototype.postConstruct = function () {\n if (this.gridOptions.statusBar && this.gridOptions.statusBar.statusPanels) {\n var leftStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'left'; });\n this.createAndRenderComponents(leftStatusPanelComponents, this.eStatusBarLeft);\n var centerStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'center'; });\n this.createAndRenderComponents(centerStatusPanelComponents, this.eStatusBarCenter);\n var rightStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return (!componentConfig.align || componentConfig.align === 'right'); });\n this.createAndRenderComponents(rightStatusPanelComponents, this.eStatusBarRight);\n }\n else {\n this.setDisplayed(false);\n }\n };\n StatusBar.prototype.createAndRenderComponents = function (statusBarComponents, ePanelComponent) {\n var _this = this;\n var componentDetails = [];\n statusBarComponents.forEach(function (componentConfig) {\n var params = {};\n var compDetails = _this.userComponentFactory.getStatusPanelCompDetails(componentConfig, params);\n var promise = compDetails.newAgStackInstance();\n if (!promise) {\n return;\n }\n componentDetails.push({\n // default to the component name if no key supplied\n key: componentConfig.key || componentConfig.statusPanel,\n promise: promise\n });\n });\n AgPromise.all(componentDetails.map(function (details) { return details.promise; }))\n .then(function () {\n componentDetails.forEach(function (componentDetail) {\n componentDetail.promise.then(function (component) {\n var destroyFunc = function () {\n _this.getContext().destroyBean(component);\n };\n if (_this.isAlive()) {\n _this.statusBarService.registerStatusPanel(componentDetail.key, component);\n ePanelComponent.appendChild(component.getGui());\n _this.addDestroyFunc(destroyFunc);\n }\n else {\n destroyFunc();\n }\n });\n });\n });\n };\n StatusBar.TEMPLATE = \"
\\n
\\n
\\n
\\n
\";\n __decorate$a([\n Autowired('gridOptions')\n ], StatusBar.prototype, \"gridOptions\", void 0);\n __decorate$a([\n Autowired('userComponentFactory')\n ], StatusBar.prototype, \"userComponentFactory\", void 0);\n __decorate$a([\n Autowired('statusBarService')\n ], StatusBar.prototype, \"statusBarService\", void 0);\n __decorate$a([\n RefSelector('eStatusBarLeft')\n ], StatusBar.prototype, \"eStatusBarLeft\", void 0);\n __decorate$a([\n RefSelector('eStatusBarCenter')\n ], StatusBar.prototype, \"eStatusBarCenter\", void 0);\n __decorate$a([\n RefSelector('eStatusBarRight')\n ], StatusBar.prototype, \"eStatusBarRight\", void 0);\n __decorate$a([\n PostConstruct\n ], StatusBar.prototype, \"postConstruct\", null);\n return StatusBar;\n}(Component));\n\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NameValueComp = /** @class */ (function (_super) {\n __extends$v(NameValueComp, _super);\n function NameValueComp() {\n return _super.call(this, NameValueComp.TEMPLATE) || this;\n }\n NameValueComp.prototype.setLabel = function (key, defaultValue) {\n // we want to hide until the first value comes in\n this.setDisplayed(false);\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLabel.innerHTML = localeTextFunc(key, defaultValue);\n };\n NameValueComp.prototype.setValue = function (value) {\n this.eValue.innerHTML = value;\n };\n NameValueComp.TEMPLATE = \"
\\n : \\n \\n
\";\n __decorate$9([\n RefSelector('eLabel')\n ], NameValueComp.prototype, \"eLabel\", void 0);\n __decorate$9([\n RefSelector('eValue')\n ], NameValueComp.prototype, \"eValue\", void 0);\n return NameValueComp;\n}(Component));\n\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalAndFilteredRowsComp = /** @class */ (function (_super) {\n __extends$u(TotalAndFilteredRowsComp, _super);\n function TotalAndFilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalAndFilteredRowsComp.prototype.postConstruct = function () {\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalAndFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.setLabel('totalAndFilteredRows', 'Rows');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-and-filtered-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalAndFilteredRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n var rowCount = _.formatNumberCommas(this.getFilteredRowCountValue(), thousandSeparator, decimalSeparator);\n var totalRowCount = _.formatNumberCommas(this.getTotalRowCount(), thousandSeparator, decimalSeparator);\n if (rowCount === totalRowCount) {\n this.setValue(rowCount);\n }\n else {\n var localeTextFunc_1 = this.gridOptionsWrapper.getLocaleTextFunc();\n this.setValue(rowCount + \" \" + localeTextFunc_1('of', 'of') + \" \" + totalRowCount);\n }\n };\n TotalAndFilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount++;\n }\n });\n return filteredRowCount;\n };\n TotalAndFilteredRowsComp.prototype.getTotalRowCount = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) {\n if (!node.group) {\n totalRowCount++;\n }\n });\n return totalRowCount;\n };\n TotalAndFilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalAndFilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$8([\n Autowired('gridApi')\n ], TotalAndFilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$8([\n PostConstruct\n ], TotalAndFilteredRowsComp.prototype, \"postConstruct\", null);\n return TotalAndFilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilteredRowsComp = /** @class */ (function (_super) {\n __extends$t(FilteredRowsComp, _super);\n function FilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilteredRowsComp.prototype.postConstruct = function () {\n this.setLabel('filteredRows', 'Filtered');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-filtered-row-count');\n this.setDisplayed(true);\n var listener = this.onDataChanged.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, listener);\n listener();\n };\n FilteredRowsComp.prototype.onDataChanged = function () {\n var totalRowCountValue = this.getTotalRowCountValue();\n var filteredRowCountValue = this.getFilteredRowCountValue();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(filteredRowCountValue, thousandSeparator, decimalSeparator));\n this.setDisplayed(totalRowCountValue !== filteredRowCountValue);\n };\n FilteredRowsComp.prototype.getTotalRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n FilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount += 1;\n }\n });\n return filteredRowCount;\n };\n FilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$7([\n Autowired('gridApi')\n ], FilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$7([\n PostConstruct\n ], FilteredRowsComp.prototype, \"postConstruct\", null);\n return FilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalRowsComp = /** @class */ (function (_super) {\n __extends$s(TotalRowsComp, _super);\n function TotalRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalRowsComp.prototype.postConstruct = function () {\n this.setLabel('totalRows', 'Total Rows');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(this.getRowCountValue(), thousandSeparator, decimalSeparator));\n };\n TotalRowsComp.prototype.getRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachLeafNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n TotalRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$6([\n Autowired('gridApi')\n ], TotalRowsComp.prototype, \"gridApi\", void 0);\n __decorate$6([\n PostConstruct\n ], TotalRowsComp.prototype, \"postConstruct\", null);\n return TotalRowsComp;\n}(NameValueComp));\n\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectedRowsComp = /** @class */ (function (_super) {\n __extends$r(SelectedRowsComp, _super);\n function SelectedRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectedRowsComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agSelectedRowCountComponent should only be used with the client and server side row model.\");\n return;\n }\n this.setLabel('selectedRows', 'Selected');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-selected-row-count');\n var selectedRowCount = this.gridApi.getSelectedRows().length;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(selectedRowCount, thousandSeparator, decimalSeparator));\n this.setDisplayed(selectedRowCount > 0);\n var eventListener = this.onRowSelectionChanged.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, eventListener);\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, eventListener);\n };\n SelectedRowsComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n SelectedRowsComp.prototype.onRowSelectionChanged = function () {\n var selectedRowCount = this.gridApi.getSelectedRows().length;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(selectedRowCount, thousandSeparator, decimalSeparator));\n this.setDisplayed(selectedRowCount > 0);\n };\n SelectedRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SelectedRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$5([\n Autowired('gridApi')\n ], SelectedRowsComp.prototype, \"gridApi\", void 0);\n __decorate$5([\n PostConstruct\n ], SelectedRowsComp.prototype, \"postConstruct\", null);\n return SelectedRowsComp;\n}(NameValueComp));\n\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationComp = /** @class */ (function (_super) {\n __extends$q(AggregationComp, _super);\n function AggregationComp() {\n return _super.call(this, AggregationComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n AggregationComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n AggregationComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agAggregationComponent should only be used with the client and server side row model.\");\n return;\n }\n this.avgAggregationComp.setLabel('avg', 'Average');\n this.countAggregationComp.setLabel('count', 'Count');\n this.minAggregationComp.setLabel('min', 'Min');\n this.maxAggregationComp.setLabel('max', 'Max');\n this.sumAggregationComp.setLabel('sum', 'Sum');\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, this.onRangeSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onRangeSelectionChanged.bind(this));\n };\n AggregationComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n AggregationComp.prototype.init = function () {\n };\n AggregationComp.prototype.setAggregationComponentValue = function (aggFuncName, value, visible) {\n var statusBarValueComponent = this.getAggregationValueComponent(aggFuncName);\n if (_.exists(statusBarValueComponent) && statusBarValueComponent) {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n statusBarValueComponent.setValue(_.formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator));\n statusBarValueComponent.setDisplayed(visible);\n }\n };\n AggregationComp.prototype.getAggregationValueComponent = function (aggFuncName) {\n // converts user supplied agg name to our reference - eg: sum => sumAggregationComp\n var refComponentName = aggFuncName + \"AggregationComp\";\n // if the user has specified the agAggregationPanelComp but no aggFuncs we show the all\n // if the user has specified the agAggregationPanelComp and aggFuncs, then we only show the aggFuncs listed\n var statusBarValueComponent = null;\n var aggregationPanelConfig = _.exists(this.gridOptions.statusBar) && this.gridOptions.statusBar ? this.gridOptions.statusBar.statusPanels.find(function (panel) { return panel.statusPanel === 'agAggregationComponent'; }) : null;\n if (_.exists(aggregationPanelConfig) && aggregationPanelConfig) {\n // a little defensive here - if no statusPanelParams show it, if componentParams we also expect aggFuncs\n if (!_.exists(aggregationPanelConfig.statusPanelParams) ||\n (_.exists(aggregationPanelConfig.statusPanelParams) &&\n _.exists(aggregationPanelConfig.statusPanelParams.aggFuncs) &&\n _.exists(aggregationPanelConfig.statusPanelParams.aggFuncs.find(function (func) { return func === aggFuncName; })))) {\n statusBarValueComponent = this[refComponentName];\n }\n }\n else {\n // components not specified - assume we can show this component\n statusBarValueComponent = this[refComponentName];\n }\n // either we can't find it (which would indicate a typo or similar user side), or the user has deliberately\n // not listed the component in aggFuncs\n return statusBarValueComponent;\n };\n AggregationComp.prototype.onRangeSelectionChanged = function () {\n var _this = this;\n var cellRanges = this.rangeService ? this.rangeService.getCellRanges() : undefined;\n var sum = 0;\n var count = 0;\n var numberCount = 0;\n var min = null;\n var max = null;\n var cellsSoFar = {};\n if (cellRanges && !_.missingOrEmpty(cellRanges)) {\n cellRanges.forEach(function (cellRange) {\n var currentRow = _this.rangeService.getRangeStartRow(cellRange);\n var lastRow = _this.rangeService.getRangeEndRow(cellRange);\n while (true) {\n var finishedAllRows = _.missing(currentRow) || !currentRow || _this.rowPositionUtils.before(lastRow, currentRow);\n if (finishedAllRows || !currentRow || !cellRange.columns) {\n break;\n }\n cellRange.columns.forEach(function (col) {\n if (currentRow === null) {\n return;\n }\n // we only want to include each cell once, in case a cell is in multiple ranges\n var cellId = _this.cellPositionUtils.createId({\n rowPinned: currentRow.rowPinned,\n column: col,\n rowIndex: currentRow.rowIndex\n });\n if (cellsSoFar[cellId]) {\n return;\n }\n cellsSoFar[cellId] = true;\n var rowNode = _this.rowRenderer.getRowNode(currentRow);\n if (_.missing(rowNode)) {\n return;\n }\n var value = _this.valueService.getValue(col, rowNode);\n // if empty cell, skip it, doesn't impact count or anything\n if (_.missing(value) || value === '') {\n return;\n }\n // see if value is wrapped, can happen when doing count() or avg() functions\n if (typeof value === 'object' && 'value' in value) {\n value = value.value;\n }\n if (typeof value === 'string') {\n value = Number(value);\n }\n if (typeof value === 'number' && !isNaN(value)) {\n sum += value;\n if (max === null || value > max) {\n max = value;\n }\n if (min === null || value < min) {\n min = value;\n }\n numberCount++;\n }\n count++;\n });\n currentRow = _this.cellNavigationService.getRowBelow(currentRow);\n }\n });\n }\n var gotResult = count > 1;\n var gotNumberResult = numberCount > 1;\n // we show count even if no numbers\n this.setAggregationComponentValue('count', count, gotResult);\n // show if numbers found\n this.setAggregationComponentValue('sum', sum, gotNumberResult);\n this.setAggregationComponentValue('min', min, gotNumberResult);\n this.setAggregationComponentValue('max', max, gotNumberResult);\n this.setAggregationComponentValue('avg', (sum / numberCount), gotNumberResult);\n };\n AggregationComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$4([\n Optional('rangeService')\n ], AggregationComp.prototype, \"rangeService\", void 0);\n __decorate$4([\n Autowired('valueService')\n ], AggregationComp.prototype, \"valueService\", void 0);\n __decorate$4([\n Autowired('cellNavigationService')\n ], AggregationComp.prototype, \"cellNavigationService\", void 0);\n __decorate$4([\n Autowired('rowRenderer')\n ], AggregationComp.prototype, \"rowRenderer\", void 0);\n __decorate$4([\n Autowired('gridOptions')\n ], AggregationComp.prototype, \"gridOptions\", void 0);\n __decorate$4([\n Autowired('gridApi')\n ], AggregationComp.prototype, \"gridApi\", void 0);\n __decorate$4([\n Autowired('cellPositionUtils')\n ], AggregationComp.prototype, \"cellPositionUtils\", void 0);\n __decorate$4([\n Autowired('rowPositionUtils')\n ], AggregationComp.prototype, \"rowPositionUtils\", void 0);\n __decorate$4([\n RefSelector('sumAggregationComp')\n ], AggregationComp.prototype, \"sumAggregationComp\", void 0);\n __decorate$4([\n RefSelector('countAggregationComp')\n ], AggregationComp.prototype, \"countAggregationComp\", void 0);\n __decorate$4([\n RefSelector('minAggregationComp')\n ], AggregationComp.prototype, \"minAggregationComp\", void 0);\n __decorate$4([\n RefSelector('maxAggregationComp')\n ], AggregationComp.prototype, \"maxAggregationComp\", void 0);\n __decorate$4([\n RefSelector('avgAggregationComp')\n ], AggregationComp.prototype, \"avgAggregationComp\", void 0);\n __decorate$4([\n PostConstruct\n ], AggregationComp.prototype, \"postConstruct\", null);\n return AggregationComp;\n}(Component));\n\nvar StatusBarModule = {\n moduleName: ModuleNames.StatusBarModule,\n beans: [StatusBarService],\n agStackComponents: [\n { componentName: 'AgStatusBar', componentClass: StatusBar },\n { componentName: 'AgNameValue', componentClass: NameValueComp },\n ],\n userComponents: [\n { componentName: 'agAggregationComponent', componentClass: AggregationComp },\n { componentName: 'agSelectedRowCountComponent', componentClass: SelectedRowsComp },\n { componentName: 'agTotalRowCountComponent', componentClass: TotalRowsComp },\n { componentName: 'agFilteredRowCountComponent', componentClass: FilteredRowsComp },\n { componentName: 'agTotalAndFilteredRowCountComponent', componentClass: TotalAndFilteredRowsComp }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ViewportRowModel = /** @class */ (function (_super) {\n __extends$p(ViewportRowModel, _super);\n function ViewportRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // rowRenderer tells us these\n _this.firstRow = -1;\n _this.lastRow = -1;\n // datasource tells us this\n _this.rowCount = -1;\n _this.rowNodesByIndex = {};\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ViewportRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) { return false; };\n ViewportRowModel.prototype.init = function () {\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.addManagedListener(this.eventService, Events.EVENT_VIEWPORT_CHANGED, this.onViewportChanged.bind(this));\n };\n ViewportRowModel.prototype.start = function () {\n if (this.gridOptionsWrapper.getViewportDatasource()) {\n this.setViewportDatasource(this.gridOptionsWrapper.getViewportDatasource());\n }\n };\n ViewportRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ViewportRowModel.prototype.destroyDatasource = function () {\n if (!this.viewportDatasource) {\n return;\n }\n if (this.viewportDatasource.destroy) {\n this.viewportDatasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.firstRow = -1;\n this.lastRow = -1;\n };\n ViewportRowModel.prototype.calculateFirstRow = function (firstRenderedRow) {\n var bufferSize = this.gridOptionsWrapper.getViewportRowModelBufferSize();\n var pageSize = this.gridOptionsWrapper.getViewportRowModelPageSize();\n var afterBuffer = firstRenderedRow - bufferSize;\n if (afterBuffer < 0) {\n return 0;\n }\n return Math.floor(afterBuffer / pageSize) * pageSize;\n };\n ViewportRowModel.prototype.calculateLastRow = function (lastRenderedRow) {\n if (lastRenderedRow === -1) {\n return lastRenderedRow;\n }\n var bufferSize = this.gridOptionsWrapper.getViewportRowModelBufferSize();\n var pageSize = this.gridOptionsWrapper.getViewportRowModelPageSize();\n var afterBuffer = lastRenderedRow + bufferSize;\n var result = Math.ceil(afterBuffer / pageSize) * pageSize;\n var lastRowIndex = this.rowCount - 1;\n return Math.min(result, lastRowIndex);\n };\n ViewportRowModel.prototype.onViewportChanged = function (event) {\n var newFirst = this.calculateFirstRow(event.firstRow);\n var newLast = this.calculateLastRow(event.lastRow);\n if (this.firstRow !== newFirst || this.lastRow !== newLast) {\n this.firstRow = newFirst;\n this.lastRow = newLast;\n this.purgeRowsNotInViewport();\n if (this.viewportDatasource) {\n this.viewportDatasource.setViewportRange(this.firstRow, this.lastRow);\n }\n }\n };\n ViewportRowModel.prototype.purgeRowsNotInViewport = function () {\n var _this = this;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n if (index < _this.firstRow || index > _this.lastRow) {\n if (_this.isRowFocused(index)) {\n return;\n }\n delete _this.rowNodesByIndex[index];\n }\n });\n };\n ViewportRowModel.prototype.isRowFocused = function (rowIndex) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var hasFocus = focusedCell.rowIndex === rowIndex;\n return hasFocus;\n };\n ViewportRowModel.prototype.setViewportDatasource = function (viewportDatasource) {\n this.destroyDatasource();\n this.viewportDatasource = viewportDatasource;\n this.rowCount = 0;\n if (!viewportDatasource.init) {\n console.warn('AG Grid: viewport is missing init method.');\n }\n else {\n viewportDatasource.init({\n setRowCount: this.setRowCount.bind(this),\n setRowData: this.setRowData.bind(this),\n getRow: this.getRow.bind(this)\n });\n }\n };\n ViewportRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n ViewportRowModel.prototype.getRow = function (rowIndex) {\n if (!this.rowNodesByIndex[rowIndex]) {\n this.rowNodesByIndex[rowIndex] = this.createBlankRowNode(rowIndex);\n }\n return this.rowNodesByIndex[rowIndex];\n };\n ViewportRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n ViewportRowModel.prototype.getRowCount = function () {\n return this.rowCount;\n };\n ViewportRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n return Math.floor(pixel / this.rowHeight);\n }\n return 0;\n };\n ViewportRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n ViewportRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n ViewportRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n ViewportRowModel.prototype.isEmpty = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.isRowsToRender = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n var firstIndex = _.missing(firstInRange) ? 0 : firstInRange.rowIndex;\n var lastIndex = lastInRange.rowIndex;\n var firstNodeOutOfRange = firstIndex < this.firstRow || firstIndex > this.lastRow;\n var lastNodeOutOfRange = lastIndex < this.firstRow || lastIndex > this.lastRow;\n if (firstNodeOutOfRange || lastNodeOutOfRange) {\n return [];\n }\n var result = [];\n var startIndex = firstIndex <= lastIndex ? firstIndex : lastIndex;\n var endIndex = firstIndex <= lastIndex ? lastIndex : firstIndex;\n for (var i = startIndex; i <= endIndex; i++) {\n result.push(this.rowNodesByIndex[i]);\n }\n return result;\n };\n ViewportRowModel.prototype.forEachNode = function (callback) {\n var _this = this;\n var callbackCount = 0;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n var rowNode = _this.rowNodesByIndex[index];\n callback(rowNode, callbackCount);\n callbackCount++;\n });\n };\n ViewportRowModel.prototype.setRowData = function (rowData) {\n var _this = this;\n _.iterateObject(rowData, function (indexStr, dataItem) {\n var index = parseInt(indexStr, 10);\n // we should never keep rows that we didn't specifically ask for, this\n // guarantees the contract we have with the server.\n if (index >= _this.firstRow && index <= _this.lastRow) {\n var rowNode = _this.rowNodesByIndex[index];\n // the abnormal case is we requested a row even though the grid didn't need it\n // as a result of the paging and buffer (ie the row is off screen), in which\n // case we need to create a new node now\n if (_.missing(rowNode)) {\n rowNode = _this.createBlankRowNode(index);\n _this.rowNodesByIndex[index] = rowNode;\n }\n // now we deffo have a row node, so set in the details\n // if the grid already asked for this row (the normal case), then we would\n // of put a placeholder node in place.\n rowNode.setDataAndId(dataItem, index.toString());\n }\n });\n };\n ViewportRowModel.prototype.createBlankRowNode = function (rowIndex) {\n var rowNode = new RowNode(this.beans);\n rowNode.setRowHeight(this.rowHeight);\n rowNode.setRowTop(this.rowHeight * rowIndex);\n rowNode.setRowIndex(rowIndex);\n return rowNode;\n };\n ViewportRowModel.prototype.setRowCount = function (rowCount, keepRenderedRows) {\n if (keepRenderedRows === void 0) { keepRenderedRows = false; }\n if (rowCount === this.rowCount) {\n return;\n }\n this.rowCount = rowCount;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n newData: false,\n newPage: false,\n keepRenderedRows: keepRenderedRows,\n animate: false\n };\n this.eventService.dispatchEvent(event);\n };\n ViewportRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n __decorate$3([\n Autowired('rowRenderer')\n ], ViewportRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$3([\n Autowired('focusService')\n ], ViewportRowModel.prototype, \"focusService\", void 0);\n __decorate$3([\n Autowired('beans')\n ], ViewportRowModel.prototype, \"beans\", void 0);\n __decorate$3([\n PostConstruct\n ], ViewportRowModel.prototype, \"init\", null);\n __decorate$3([\n PreDestroy\n ], ViewportRowModel.prototype, \"destroyDatasource\", null);\n ViewportRowModel = __decorate$3([\n Bean('rowModel')\n ], ViewportRowModel);\n return ViewportRowModel;\n}(BeanStub));\n\nvar ViewportRowModelModule = {\n moduleName: ModuleNames.ViewportRowModelModule,\n rowModels: { viewport: ViewportRowModel },\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\n// For small data structs like a bounding box, objects are superior to arrays\n// in terms of performance (by 3-4% in Chrome 71, Safari 12 and by 20% in Firefox 64).\n// They are also self descriptive and harder to abuse.\n// For example, one has to do:\n// `ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);`\n// rather than become enticed by the much slower:\n// `ctx.strokeRect(...bbox);`\n// https://jsperf.com/array-vs-object-create-access\nvar BBox = /** @class */ (function () {\n function BBox(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BBox.prototype.isValid = function () {\n return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height);\n };\n BBox.prototype.dilate = function (value) {\n this.x -= value;\n this.y -= value;\n this.width += value * 2;\n this.height += value * 2;\n };\n BBox.prototype.containsPoint = function (x, y) {\n return x >= this.x && x <= (this.x + this.width)\n && y >= this.y && y <= (this.y + this.height);\n };\n BBox.prototype.render = function (ctx, params) {\n if (params === void 0) { params = BBox.noParams; }\n ctx.save();\n if (params.resetTransform) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n ctx.strokeStyle = params.strokeStyle || 'cyan';\n ctx.lineWidth = params.lineWidth || 1;\n ctx.strokeRect(this.x, this.y, this.width, this.height);\n if (params.label) {\n ctx.fillStyle = params.fillStyle || 'black';\n ctx.textBaseline = 'bottom';\n ctx.fillText(params.label, this.x, this.y);\n }\n ctx.restore();\n };\n BBox.noParams = {};\n return BBox;\n}());\n\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * As of Jan 8, 2019, Firefox still doesn't implement\n * `getTransform(): DOMMatrix;`\n * `setTransform(transform?: DOMMatrix2DInit)`\n * in the `CanvasRenderingContext2D`.\n * Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=928150\n * IE11 and Edge 44 also don't have the support.\n * Thus this class, to keep track of the current transform and\n * combine transformations.\n * Standards:\n * https://html.spec.whatwg.org/dev/canvas.html\n * https://www.w3.org/TR/geometry-1/\n */\nvar Matrix = /** @class */ (function () {\n function Matrix(elements) {\n if (elements === void 0) { elements = [1, 0, 0, 1, 0, 0]; }\n this.elements = elements;\n }\n Matrix.prototype.setElements = function (elements) {\n var e = this.elements;\n // `this.elements = elements.slice()` is 4-5 times slower\n // (in Chrome 71 and FF 64) than manually copying elements,\n // since slicing allocates new memory.\n // The performance of passing parameters individually\n // vs as an array is about the same in both browsers, so we\n // go with a single (array of elements) parameter, because\n // `setElements(elements)` and `setElements([a, b, c, d, e, f])`\n // calls give us roughly the same performance, versus\n // `setElements(...elements)` and `setElements(a, b, c, d, e, f)`,\n // where the spread operator causes a 20-30x performance drop\n // (30x when compiled to ES5's `.apply(this, elements)`\n // 20x when used natively).\n e[0] = elements[0];\n e[1] = elements[1];\n e[2] = elements[2];\n e[3] = elements[3];\n e[4] = elements[4];\n e[5] = elements[5];\n return this;\n };\n Matrix.prototype.setIdentityElements = function () {\n var e = this.elements;\n e[0] = 1;\n e[1] = 0;\n e[2] = 0;\n e[3] = 1;\n e[4] = 0;\n e[5] = 0;\n return this;\n };\n Object.defineProperty(Matrix.prototype, \"identity\", {\n get: function () {\n var e = this.elements;\n return e[0] === 1 && e[1] === 0 && e[2] === 0 &&\n e[3] === 1 && e[4] === 0 && e[5] === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"a\", {\n get: function () {\n return this.elements[0];\n },\n set: function (value) {\n this.elements[0] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"b\", {\n get: function () {\n return this.elements[1];\n },\n set: function (value) {\n this.elements[1] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"c\", {\n get: function () {\n return this.elements[2];\n },\n set: function (value) {\n this.elements[2] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"d\", {\n get: function () {\n return this.elements[3];\n },\n set: function (value) {\n this.elements[3] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"e\", {\n get: function () {\n return this.elements[4];\n },\n set: function (value) {\n this.elements[4] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"f\", {\n get: function () {\n return this.elements[5];\n },\n set: function (value) {\n this.elements[5] = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Performs the AxB matrix multiplication and saves the result\n * to `C`, if given, or to `A` otherwise.\n */\n Matrix.prototype.AxB = function (A, B, C) {\n var _a = __read$6(A, 6), m11 = _a[0], m12 = _a[1], m21 = _a[2], m22 = _a[3], m31 = _a[4], m32 = _a[5];\n var _b = __read$6(B, 6), o11 = _b[0], o12 = _b[1], o21 = _b[2], o22 = _b[3], o31 = _b[4], o32 = _b[5];\n C = C || A;\n C[0] = m11 * o11 + m21 * o12;\n C[1] = m12 * o11 + m22 * o12;\n C[2] = m11 * o21 + m21 * o22;\n C[3] = m12 * o21 + m22 * o22;\n C[4] = m11 * o31 + m21 * o32 + m31;\n C[5] = m12 * o31 + m22 * o32 + m32;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns the current matrix.\n * @param other\n */\n Matrix.prototype.multiplySelf = function (other) {\n this.AxB(this.elements, other.elements);\n return this;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns a new matrix.\n * @param other\n */\n Matrix.prototype.multiply = function (other) {\n var elements = new Array(6);\n this.AxB(this.elements, other.elements, elements);\n return new Matrix(elements);\n };\n Matrix.prototype.preMultiplySelf = function (other) {\n this.AxB(other.elements, this.elements, this.elements);\n return this;\n };\n /**\n * Returns the inverse of this matrix as a new matrix.\n */\n Matrix.prototype.inverse = function () {\n var _a = __read$6(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n return new Matrix([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n };\n /**\n * Save the inverse of this matrix to the given matrix.\n */\n Matrix.prototype.inverseTo = function (other) {\n var _a = __read$6(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n other.setElements([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n return this;\n };\n Matrix.prototype.invertSelf = function () {\n var elements = this.elements;\n var _a = __read$6(elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n elements[0] = d;\n elements[1] = -b;\n elements[2] = -c;\n elements[3] = a;\n elements[4] = c * f - d * e;\n elements[5] = b * e - a * f;\n return this;\n };\n Matrix.prototype.clone = function () {\n return new Matrix(this.elements.slice());\n };\n Matrix.prototype.transformPoint = function (x, y) {\n var e = this.elements;\n return {\n x: x * e[0] + y * e[2] + e[4],\n y: x * e[1] + y * e[3] + e[5]\n };\n };\n Matrix.prototype.transformBBox = function (bbox, radius, target) {\n if (radius === void 0) { radius = 0; }\n var elements = this.elements;\n var xx = elements[0];\n var xy = elements[1];\n var yx = elements[2];\n var yy = elements[3];\n var h_w = bbox.width * 0.5;\n var h_h = bbox.height * 0.5;\n var cx = bbox.x + h_w;\n var cy = bbox.y + h_h;\n var w, h;\n if (radius) {\n h_w -= radius;\n h_h -= radius;\n var sx = Math.sqrt(xx * xx + yx * yx);\n var sy = Math.sqrt(xy * xy + yy * yy);\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx) + Math.abs(sx * radius);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy) + Math.abs(sy * radius);\n }\n else {\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy);\n }\n if (!target) {\n target = new BBox(0, 0, 0, 0);\n }\n target.x = cx * xx + cy * yx + elements[4] - w;\n target.y = cx * xy + cy * yy + elements[5] - h;\n target.width = w + w;\n target.height = h + h;\n return target;\n };\n Matrix.prototype.toContext = function (ctx) {\n // It's fair to say that matrix multiplications are not cheap.\n // However, updating path definitions on every frame isn't either, so\n // it may be cheaper to just translate paths. It's also fair to\n // say, that most paths will have to be re-rendered anyway, say\n // rectangle paths in a bar chart, where an animation would happen when\n // the data set changes and existing bars are morphed into new ones.\n // Or a pie chart, where old sectors are also morphed into new ones.\n // Same for the line chart. The only plausible case where translating\n // existing paths would be enough, is the scatter chart, where marker\n // icons, typically circles, stay the same size. But if circle radii\n // are bound to some data points, even circle paths would have to be\n // updated. And thus it makes sense to optimize for fewer matrix\n // transforms, where transform matrices of paths are mostly identity\n // matrices and `x`/`y`, `centerX`/`centerY` and similar properties\n // are used to define a path at specific coordinates. And only groups\n // are used to collectively apply a transform to a set of nodes.\n // If the matrix is mostly identity (95% of the time),\n // the `if (this.isIdentity)` check can make this call 3-4 times\n // faster on average: https://jsperf.com/matrix-check-first-vs-always-set\n if (this.identity) {\n return;\n }\n var e = this.elements;\n ctx.transform(e[0], e[1], e[2], e[3], e[4], e[5]);\n };\n Matrix.flyweight = function (elements) {\n if (elements) {\n if (elements instanceof Matrix) {\n Matrix.matrix.setElements(elements.elements);\n }\n else {\n Matrix.matrix.setElements(elements);\n }\n }\n else {\n Matrix.matrix.setIdentityElements();\n }\n return Matrix.matrix;\n };\n Matrix.matrix = new Matrix();\n return Matrix;\n}());\n\nfunction createId(instance) {\n var constructor = instance.constructor;\n var className = constructor.className;\n if (!className) {\n throw new Error(\"The \" + constructor + \" is missing the 'className' property.\");\n }\n return className + '-' + (constructor.id = (constructor.id || 0) + 1);\n}\n\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar PointerEvents;\n(function (PointerEvents) {\n PointerEvents[PointerEvents[\"All\"] = 0] = \"All\";\n PointerEvents[PointerEvents[\"None\"] = 1] = \"None\";\n})(PointerEvents || (PointerEvents = {}));\n/**\n * Abstract scene graph node.\n * Each node can have zero or one parent and belong to zero or one scene.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /**\n * Unique node ID in the form `ClassName-NaturalNumber`.\n */\n this.id = createId(this);\n /**\n * Some number to identify this node, typically within a `Group` node.\n * Usually this will be some enum value used as a selector.\n */\n this.tag = NaN;\n /**\n * To simplify the type system (especially in Selections) we don't have the `Parent` node\n * (one that has children). Instead, we mimic HTML DOM, where any node can have children.\n * But we still need to distinguish regular leaf nodes from container leafs somehow.\n */\n this.isContainerNode = false;\n this._children = [];\n // Used to check for duplicate nodes.\n this.childSet = {}; // new Set()\n // These matrices may need to have package level visibility\n // for performance optimization purposes.\n this.matrix = new Matrix();\n this.inverseMatrix = new Matrix();\n this._dirtyTransform = false;\n this._scalingX = 1;\n this._scalingY = 1;\n /**\n * The center of scaling.\n * The default value of `null` means the scaling center will be\n * determined automatically, as the center of the bounding box\n * of a node.\n */\n this._scalingCenterX = null;\n this._scalingCenterY = null;\n this._rotationCenterX = null;\n this._rotationCenterY = null;\n /**\n * Rotation angle in radians.\n * The value is set as is. No normalization to the [-180, 180) or [0, 360)\n * interval is performed.\n */\n this._rotation = 0;\n this._translationX = 0;\n this._translationY = 0;\n /**\n * Each time a property of the node that effects how it renders changes\n * the `dirty` property of the node should be set to `true`. The change\n * to the `dirty` property of the node will propagate up to its parents\n * and eventually to the scene, at which point an animation frame callback\n * will be scheduled to rerender the scene and its nodes and reset the `dirty`\n * flags of all nodes and the {@link Scene._dirty | Scene} back to `false`.\n * Since changes to node properties are not rendered immediately, it's possible\n * to change as many properties on as many nodes as needed and the rendering\n * will still only happen once in the next animation frame callback.\n * The animation frame callback is only scheduled if it hasn't been already.\n */\n this._dirty = true;\n this._visible = true;\n this.pointerEvents = PointerEvents.All;\n }\n /**\n * This is meaningfully faster than `instanceof` and should be the preferred way\n * of checking inside loops.\n * @param node\n */\n Node.isNode = function (node) {\n return node ? node.matrix !== undefined : false;\n };\n Node.prototype._setScene = function (value) {\n this._scene = value;\n var children = this.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n children[i]._setScene(value);\n }\n };\n Object.defineProperty(Node.prototype, \"scene\", {\n get: function () {\n return this._scene;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype._setParent = function (value) {\n this._parent = value;\n };\n Object.defineProperty(Node.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"children\", {\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.countChildren = function (depth) {\n if (depth === void 0) { depth = Node.MAX_SAFE_INTEGER; }\n if (depth <= 0) {\n return 0;\n }\n var children = this.children;\n var n = children.length;\n var size = n;\n for (var i = 0; i < n; i++) {\n size += children[i].countChildren(depth - 1);\n }\n return size;\n };\n /**\n * Appends one or more new node instances to this parent.\n * If one needs to:\n * - move a child to the end of the list of children\n * - move a child from one parent to another (including parents in other scenes)\n * one should use the {@link insertBefore} method instead.\n * @param nodes A node or nodes to append.\n */\n Node.prototype.append = function (nodes) {\n // Passing a single parameter to an open-ended version of `append`\n // would be 30-35% slower than this.\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n // The function takes an array rather than having open-ended\n // arguments like `...nodes: Node[]` because the latter is\n // transpiled to a function where the `arguments` object\n // is copied to a temporary array inside a loop.\n // So an array is created either way. And if we already have\n // an array of nodes we want to add, we have to use the prohibitively\n // expensive spread operator to pass it to the function,\n // and, on top of that, the copy of the `arguments` is still made.\n var n = nodes.length;\n for (var i = 0; i < n; i++) {\n var node = nodes[i];\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n this.dirty = true;\n };\n Node.prototype.appendChild = function (node) {\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs to a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n this.dirty = true;\n return node;\n };\n Node.prototype.removeChild = function (node) {\n if (node.parent === this) {\n var i = this.children.indexOf(node);\n if (i >= 0) {\n this._children.splice(i, 1);\n delete this.childSet[node.id];\n node._setParent();\n node._setScene();\n this.dirty = true;\n return node;\n }\n }\n throw new Error(\"The node to be removed is not a child of this node.\");\n };\n /**\n * Inserts the node `node` before the existing child node `nextNode`.\n * If `nextNode` is null, insert `node` at the end of the list of children.\n * If the `node` belongs to another parent, it is first removed.\n * Returns the `node`.\n * @param node\n * @param nextNode\n */\n Node.prototype.insertBefore = function (node, nextNode) {\n var parent = node.parent;\n if (node.parent) {\n node.parent.removeChild(node);\n }\n if (nextNode && nextNode.parent === this) {\n var i = this.children.indexOf(nextNode);\n if (i >= 0) {\n this._children.splice(i, 0, node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n else {\n throw new Error(nextNode + \" has \" + parent + \" as the parent, \"\n + \"but is not in its list of children.\");\n }\n this.dirty = true;\n }\n else {\n this.append(node);\n }\n return node;\n };\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n get: function () {\n var parent = this.parent;\n if (parent) {\n var children = parent.children;\n var index = children.indexOf(this);\n if (index >= 0 && index <= children.length - 1) {\n return children[index + 1];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.transformPoint = function (x, y) {\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.invertSelf().transformPoint(x, y);\n };\n Node.prototype.inverseTransformPoint = function (x, y) {\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.transformPoint(x, y);\n };\n Object.defineProperty(Node.prototype, \"dirtyTransform\", {\n get: function () {\n return this._dirtyTransform;\n },\n set: function (value) {\n this._dirtyTransform = value;\n if (value) {\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingX\", {\n get: function () {\n return this._scalingX;\n },\n set: function (value) {\n if (this._scalingX !== value) {\n this._scalingX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingY\", {\n get: function () {\n return this._scalingY;\n },\n set: function (value) {\n if (this._scalingY !== value) {\n this._scalingY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterX\", {\n get: function () {\n return this._scalingCenterX;\n },\n set: function (value) {\n if (this._scalingCenterX !== value) {\n this._scalingCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterY\", {\n get: function () {\n return this._scalingCenterY;\n },\n set: function (value) {\n if (this._scalingCenterY !== value) {\n this._scalingCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterX\", {\n get: function () {\n return this._rotationCenterX;\n },\n set: function (value) {\n if (this._rotationCenterX !== value) {\n this._rotationCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterY\", {\n get: function () {\n return this._rotationCenterY;\n },\n set: function (value) {\n if (this._rotationCenterY !== value) {\n this._rotationCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotation\", {\n get: function () {\n return this._rotation;\n },\n set: function (value) {\n if (this._rotation !== value) {\n this._rotation = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationDeg\", {\n get: function () {\n return this.rotation / Math.PI * 180;\n },\n /**\n * For performance reasons the rotation angle's internal representation\n * is in radians. Therefore, don't expect to get the same number you set.\n * Even with integer angles about a quarter of them from 0 to 359 cannot\n * be converted to radians and back without precision loss.\n * For example:\n *\n * node.rotationDeg = 11;\n * console.log(node.rotationDeg); // 10.999999999999998\n *\n * @param value Rotation angle in degrees.\n */\n set: function (value) {\n this.rotation = value / 180 * Math.PI;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationX\", {\n get: function () {\n return this._translationX;\n },\n set: function (value) {\n if (this._translationX !== value) {\n this._translationX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationY\", {\n get: function () {\n return this._translationY;\n },\n set: function (value) {\n if (this._translationY !== value) {\n this._translationY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.containsPoint = function (x, y) {\n return false;\n };\n /**\n * Hit testing method.\n * Recursively checks if the given point is inside this node or any of its children.\n * Returns the first matching node or `undefined`.\n * Nodes that render later (show on top) are hit tested first.\n * @param x\n * @param y\n */\n Node.prototype.pickNode = function (x, y) {\n if (!this.visible || this.pointerEvents === PointerEvents.None || !this.containsPoint(x, y)) {\n return;\n }\n var children = this.children;\n if (children.length) {\n // Nodes added later should be hit-tested first,\n // as they are rendered on top of the previously added nodes.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = children[i].pickNode(x, y);\n if (hit) {\n return hit;\n }\n }\n }\n else if (!this.isContainerNode) { // a leaf node, but not a container leaf\n return this;\n }\n };\n Node.prototype.computeBBox = function () { return; };\n Node.prototype.computeBBoxCenter = function () {\n var bbox = this.computeBBox && this.computeBBox();\n if (bbox) {\n return [\n bbox.x + bbox.width * 0.5,\n bbox.y + bbox.height * 0.5\n ];\n }\n return [0, 0];\n };\n Node.prototype.computeTransformMatrix = function () {\n // TODO: transforms without center of scaling and rotation correspond directly\n // to `setAttribute('transform', 'translate(tx, ty) rotate(rDeg) scale(sx, sy)')`\n // in SVG. Our use cases will mostly require positioning elements (rects, circles)\n // within a group, rotating groups at right angles (e.g. for axis) and translating\n // groups. We shouldn't even need `scale(1, -1)` (invert vertically), since this\n // can be done using D3-like scales already by inverting the output range.\n // So for now, just assume that centers of scaling and rotation are at the origin.\n // const [bbcx, bbcy] = this.computeBBoxCenter();\n var _a = __read$5([0, 0], 2), bbcx = _a[0], bbcy = _a[1];\n var sx = this.scalingX;\n var sy = this.scalingY;\n var scx;\n var scy;\n if (sx === 1 && sy === 1) {\n scx = 0;\n scy = 0;\n }\n else {\n scx = this.scalingCenterX === null ? bbcx : this.scalingCenterX;\n scy = this.scalingCenterY === null ? bbcy : this.scalingCenterY;\n }\n var r = this.rotation;\n var cos = Math.cos(r);\n var sin = Math.sin(r);\n var rcx;\n var rcy;\n if (r === 0) {\n rcx = 0;\n rcy = 0;\n }\n else {\n rcx = this.rotationCenterX === null ? bbcx : this.rotationCenterX;\n rcy = this.rotationCenterY === null ? bbcy : this.rotationCenterY;\n }\n var tx = this.translationX;\n var ty = this.translationY;\n // The transform matrix `M` is a result of the following transformations:\n // 1) translate the center of scaling to the origin\n // 2) scale\n // 3) translate back\n // 4) translate the center of rotation to the origin\n // 5) rotate\n // 6) translate back\n // 7) translate\n // (7) (6) (5) (4) (3) (2) (1)\n // | 1 0 tx | | 1 0 rcx | | cos -sin 0 | | 1 0 -rcx | | 1 0 scx | | sx 0 0 | | 1 0 -scx |\n // M = | 0 1 ty | * | 0 1 rcy | * | sin cos 0 | * | 0 1 -rcy | * | 0 1 scy | * | 0 sy 0 | * | 0 1 -scy |\n // | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 0 | | 0 0 1 |\n // Translation after steps 1-4 above:\n var tx4 = scx * (1 - sx) - rcx;\n var ty4 = scy * (1 - sy) - rcy;\n this.dirtyTransform = false;\n this.matrix.setElements([\n cos * sx, sin * sx,\n -sin * sy, cos * sy,\n cos * tx4 - sin * ty4 + rcx + tx,\n sin * tx4 + cos * ty4 + rcy + ty\n ]).inverseTo(this.inverseMatrix);\n };\n Object.defineProperty(Node.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (value) {\n // TODO: check if we are already dirty (e.g. if (this._dirty !== value))\n // if we are, then all parents and the scene have been\n // notified already, and we are doing redundant work\n // (but test if this is indeed the case)\n this._dirty = value;\n if (value) {\n if (this.parent) {\n this.parent.dirty = true;\n }\n else if (this.scene) {\n this.scene.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n if (this._visible !== value) {\n this._visible = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; // Number.MAX_SAFE_INTEGER\n return Node;\n}());\n\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Group = /** @class */ (function (_super) {\n __extends$o(Group, _super);\n function Group() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isContainerNode = true;\n _this._opacity = 1;\n return _this;\n }\n Object.defineProperty(Group.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n // We consider a group to be boundless, thus any point belongs to it.\n Group.prototype.containsPoint = function (x, y) {\n return true;\n };\n Group.prototype.computeBBox = function () {\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.children.forEach(function (child) {\n if (!child.visible) {\n return;\n }\n var bbox = child.computeBBox();\n if (!bbox) {\n return;\n }\n if (!(child instanceof Group)) {\n if (child.dirtyTransform) {\n child.computeTransformMatrix();\n }\n var matrix = Matrix.flyweight(child.matrix);\n var parent_1 = child.parent;\n while (parent_1) {\n matrix.preMultiplySelf(parent_1.matrix);\n parent_1 = parent_1.parent;\n }\n matrix.transformBBox(bbox, 0, bbox);\n }\n var x = bbox.x;\n var y = bbox.y;\n if (x < left) {\n left = x;\n }\n if (y < top) {\n top = y;\n }\n if (x + bbox.width > right) {\n right = x + bbox.width;\n }\n if (y + bbox.height > bottom) {\n bottom = y + bbox.height;\n }\n });\n return new BBox(left, top, right - left, bottom - top);\n };\n Group.prototype.render = function (ctx) {\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var children = this.children;\n var n = children.length;\n ctx.globalAlpha *= this.opacity;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.visible) {\n ctx.save();\n child.render(ctx);\n ctx.restore();\n }\n }\n // debug\n // this.computeBBox().render(ctx, {\n // label: this.id,\n // resetTransform: true,\n // fillStyle: 'rgba(0, 0, 0, 0.5)'\n // });\n };\n Group.className = 'Group';\n return Group;\n}(Node));\n\n/**\n * Creates a new object with a `parent` as its prototype\n * and copies properties from the `child` into it.\n * @param parent\n * @param child\n */\nfunction chainObjects(parent, child) {\n var obj = Object.create(parent);\n for (var prop in child) {\n if (child.hasOwnProperty(prop)) {\n obj[prop] = child[prop];\n }\n }\n return obj;\n}\n\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Shape = /** @class */ (function (_super) {\n __extends$n(Shape, _super);\n function Shape() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastInstanceId = 0;\n _this._fillOpacity = 1;\n _this._strokeOpacity = 1;\n _this._fill = Shape.defaultStyles.fill;\n /**\n * Note that `strokeStyle = null` means invisible stroke,\n * while `lineWidth = 0` means no stroke, and sometimes this can mean different things.\n * For example, a rect shape with an invisible stroke may not align to the pixel grid\n * properly because the stroke affects the rules of alignment, and arc shapes forming\n * a pie chart will have a gap between them if they have an invisible stroke, whereas\n * there would be not gap if there was no stroke at all.\n * The preferred way of making the stroke invisible is setting the `lineWidth` to zero,\n * unless specific looks that is achieved by having an invisible stroke is desired.\n */\n _this._stroke = Shape.defaultStyles.stroke;\n _this._strokeWidth = Shape.defaultStyles.strokeWidth;\n _this._lineDash = Shape.defaultStyles.lineDash;\n _this._lineDashOffset = Shape.defaultStyles.lineDashOffset;\n _this._lineCap = Shape.defaultStyles.lineCap;\n _this._lineJoin = Shape.defaultStyles.lineJoin;\n _this._opacity = Shape.defaultStyles.opacity;\n _this.onShadowChange = function () {\n _this.dirty = true;\n };\n _this._fillShadow = Shape.defaultStyles.fillShadow;\n _this._strokeShadow = Shape.defaultStyles.strokeShadow;\n return _this;\n }\n /**\n * Creates a light-weight instance of the given shape (that serves as a template).\n * The created instance only stores the properites set on the instance itself\n * and the rest of the properties come via the prototype chain from the template.\n * This can greatly reduce memory usage in cases where one has many simular shapes,\n * for example, circles of different size, position and color. The exact memory usage\n * reduction will depend on the size of the template and the number of own properties\n * set on its lightweight instances, but will typically be around an order of magnitude\n * or more.\n *\n * Note: template shapes are not supposed to be part of the scene graph (they should not\n * have a parent).\n *\n * @param template\n */\n Shape.createInstance = function (template) {\n var shape = Object.create(template);\n shape._setParent(undefined);\n shape.id = template.id + '-Instance-' + String(++template.lastInstanceId);\n return shape;\n };\n /**\n * Restores the default styles introduced by this subclass.\n */\n Shape.prototype.restoreOwnStyles = function () {\n var styles = this.constructor.defaultStyles;\n var keys = Object.getOwnPropertyNames(styles);\n // getOwnPropertyNames is about 2.5 times faster than\n // for..in with the hasOwnProperty check and in this\n // case, where most properties are inherited, can be\n // more then an order of magnitude faster.\n for (var i = 0, n = keys.length; i < n; i++) {\n var key = keys[i];\n this[key] = styles[key];\n }\n };\n Shape.prototype.restoreAllStyles = function () {\n var styles = this.constructor.defaultStyles;\n for (var property in styles) {\n this[property] = styles[property];\n }\n };\n /**\n * Restores the base class default styles that have been overridden by this subclass.\n */\n Shape.prototype.restoreOverriddenStyles = function () {\n var styles = this.constructor.defaultStyles;\n var protoStyles = Object.getPrototypeOf(styles);\n for (var property in styles) {\n if (styles.hasOwnProperty(property) && protoStyles.hasOwnProperty(property)) {\n this[property] = styles[property];\n }\n }\n };\n Object.defineProperty(Shape.prototype, \"fillOpacity\", {\n get: function () {\n return this._fillOpacity;\n },\n set: function (value) {\n if (this._fillOpacity !== value) {\n this._fillOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeOpacity\", {\n get: function () {\n return this._strokeOpacity;\n },\n set: function (value) {\n if (this._strokeOpacity !== value) {\n this._strokeOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n set: function (value) {\n if (this._fill !== value) {\n this._fill = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"stroke\", {\n get: function () {\n return this._stroke;\n },\n set: function (value) {\n if (this._stroke !== value) {\n this._stroke = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"alignment\", {\n // An offset value to align to the pixel grid.\n get: function () {\n return Math.floor(this.strokeWidth) % 2 / 2;\n },\n enumerable: true,\n configurable: true\n });\n // Returns the aligned `start` or `length` value.\n // For example: `start` could be `y` and `length` could be `height` of a rectangle.\n Shape.prototype.align = function (alignment, start, length) {\n if (length != undefined) {\n return Math.floor(length) + Math.floor(start % 1 + length % 1);\n }\n return Math.floor(start) + alignment;\n };\n Object.defineProperty(Shape.prototype, \"lineDash\", {\n get: function () {\n return this._lineDash;\n },\n set: function (value) {\n var oldValue = this._lineDash;\n if (oldValue !== value) {\n if (oldValue && value && oldValue.length === value.length) {\n var identical = true;\n var n = value.length;\n for (var i = 0; i < n; i++) {\n if (oldValue[i] !== value[i]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return;\n }\n }\n this._lineDash = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineDashOffset\", {\n get: function () {\n return this._lineDashOffset;\n },\n set: function (value) {\n if (this._lineDashOffset !== value) {\n this._lineDashOffset = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineCap\", {\n get: function () {\n return this._lineCap;\n },\n set: function (value) {\n if (this._lineCap !== value) {\n this._lineCap = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineJoin\", {\n get: function () {\n return this._lineJoin;\n },\n set: function (value) {\n if (this._lineJoin !== value) {\n this._lineJoin = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fillShadow\", {\n get: function () {\n return this._fillShadow;\n },\n set: function (value) {\n var oldValue = this._fillShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._fillShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeShadow\", {\n get: function () {\n return this._strokeShadow;\n },\n set: function (value) {\n var oldValue = this._strokeShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._strokeShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Shape.prototype.fillStroke = function (ctx) {\n if (!this.scene) {\n return;\n }\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (this.fill) {\n ctx.fillStyle = this.fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var fillShadow = this.fillShadow;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fill();\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n if (this.stroke && this.strokeWidth) {\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.strokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n var strokeShadow = this.strokeShadow;\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.stroke();\n }\n };\n Shape.prototype.containsPoint = function (x, y) {\n return this.isPointInPath(x, y);\n };\n /**\n * Defaults for style properties. Note that properties that affect the position\n * and shape of the node are not considered style properties, for example:\n * `x`, `y`, `width`, `height`, `radius`, `rotation`, etc.\n * Can be used to reset to the original styling after some custom styling\n * has been applied (using the `restoreOwnStyles` and `restoreAllStyles` methods).\n * These static defaults are meant to be inherited by subclasses.\n */\n Shape.defaultStyles = chainObjects({}, {\n fill: 'black',\n stroke: undefined,\n strokeWidth: 0,\n lineDash: undefined,\n lineDashOffset: 0,\n lineCap: undefined,\n lineJoin: undefined,\n opacity: 1,\n fillShadow: undefined,\n strokeShadow: undefined\n });\n return Shape;\n}(Node));\n\n// @ts-ignore Suppress tsc error: Property 'sign' does not exist on type 'Math'\nvar sign = Math.sign ? Math.sign : function (x) {\n x = +x;\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n};\n/**\n * Finds the roots of a parametric linear equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction linearRoot(a, b) {\n var t = -b / a;\n return (a !== 0 && t >= 0 && t <= 1) ? [t] : [];\n}\n/**\n * Finds the roots of a parametric quadratic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction quadraticRoots(a, b, c) {\n if (a === 0) {\n return linearRoot(b, c);\n }\n var D = b * b - 4 * a * c; // The polynomial's discriminant.\n var roots = [];\n if (D === 0) { // A single real root.\n var t = -b / (2 * a);\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n }\n else if (D > 0) { // A pair of distinct real roots.\n var rD = Math.sqrt(D);\n var t1 = (-b - rD) / (2 * a);\n var t2 = (-b + rD) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n }\n // else -> Complex roots.\n return roots;\n}\n/**\n * Finds the roots of a parametric cubic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n * Returns an array of parametric intersection locations along the cubic,\n * excluding out-of-bounds intersections (before or after the end point\n * or in the imaginary plane).\n * An adaptation of http://www.particleincell.com/blog/2013/cubic-line-intersection/\n */\nfunction cubicRoots(a, b, c, d) {\n if (a === 0) {\n return quadraticRoots(b, c, d);\n }\n var A = b / a;\n var B = c / a;\n var C = d / a;\n var Q = (3 * B - A * A) / 9;\n var R = (9 * A * B - 27 * C - 2 * A * A * A) / 54;\n var D = Q * Q * Q + R * R; // The polynomial's discriminant.\n var third = 1 / 3;\n var roots = [];\n if (D >= 0) { // Complex or duplicate roots.\n var rD = Math.sqrt(D);\n var S = sign(R + rD) * Math.pow(Math.abs(R + rD), third);\n var T = sign(R - rD) * Math.pow(Math.abs(R - rD), third);\n var Im = Math.abs(Math.sqrt(3) * (S - T) / 2); // Complex part of the root pair.\n var t = -third * A + (S + T); // A real root.\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n if (Im === 0) {\n var t_1 = -third * A - (S + T) / 2; // The real part of a complex root.\n if (t_1 >= 0 && t_1 <= 1) {\n roots.push(t_1);\n }\n }\n }\n else { // Distinct real roots.\n var theta = Math.acos(R / Math.sqrt(-Q * Q * Q));\n var thirdA = third * A;\n var twoSqrtQ = 2 * Math.sqrt(-Q);\n var t1 = twoSqrtQ * Math.cos(third * theta) - thirdA;\n var t2 = twoSqrtQ * Math.cos(third * (theta + 2 * Math.PI)) - thirdA;\n var t3 = twoSqrtQ * Math.cos(third * (theta + 4 * Math.PI)) - thirdA;\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n if (t3 >= 0 && t3 <= 1) {\n roots.push(t3);\n }\n }\n return roots;\n}\n\n/**\n * Returns the intersection point for the given pair of line segments, or null,\n * if the segments are parallel or don't intersect.\n * Based on http://paulbourke.net/geometry/pointlineplane/\n */\nfunction segmentIntersection(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2) {\n var d = (ax2 - ax1) * (by2 - by1) - (ay2 - ay1) * (bx2 - bx1);\n if (d === 0) { // The lines are parallel.\n return null;\n }\n var ua = ((bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1)) / d;\n var ub = ((ax2 - ax1) * (ay1 - by1) - (ay2 - ay1) * (ax1 - bx1)) / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return {\n x: ax1 + ua * (ax2 - ax1),\n y: ay1 + ua * (ay2 - ay1)\n };\n }\n return null; // The intersection point is outside either or both segments.\n}\n/**\n * Returns intersection points of the given cubic curve and the line segment.\n * Takes in x/y components of cubic control points and line segment start/end points\n * as parameters.\n */\nfunction cubicSegmentIntersections(px1, py1, px2, py2, px3, py3, px4, py4, x1, y1, x2, y2) {\n var intersections = [];\n // Find line equation coefficients.\n var A = y1 - y2;\n var B = x2 - x1;\n var C = x1 * (y2 - y1) - y1 * (x2 - x1);\n // Find cubic Bezier curve equation coefficients from control points.\n var bx = bezierCoefficients(px1, px2, px3, px4);\n var by = bezierCoefficients(py1, py2, py3, py4);\n var a = A * bx[0] + B * by[0]; // t^3\n var b = A * bx[1] + B * by[1]; // t^2\n var c = A * bx[2] + B * by[2]; // t\n var d = A * bx[3] + B * by[3] + C; // 1\n var roots = cubicRoots(a, b, c, d);\n // Verify that the roots are within bounds of the linear segment.\n for (var i = 0; i < roots.length; i++) {\n var t = roots[i];\n var tt = t * t;\n var ttt = t * tt;\n // Find the cartesian plane coordinates for the parametric root `t`.\n var x = bx[0] * ttt + bx[1] * tt + bx[2] * t + bx[3];\n var y = by[0] * ttt + by[1] * tt + by[2] * t + by[3];\n // The parametric cubic roots we found are intersection points\n // with an infinite line, and so the x/y coordinates above are as well.\n // Make sure the x/y is also within the bounds of the given segment.\n var s = void 0;\n if (x1 !== x2) {\n s = (x - x1) / (x2 - x1);\n }\n else { // the line is vertical\n s = (y - y1) / (y2 - y1);\n }\n if (s >= 0 && s <= 1) {\n intersections.push({ x: x, y: y });\n }\n }\n return intersections;\n}\n/**\n * Returns the given coordinates vector multiplied by the coefficient matrix\n * of the parametric cubic Bézier equation.\n */\nfunction bezierCoefficients(P1, P2, P3, P4) {\n return [\n -P1 + 3 * P2 - 3 * P3 + P4,\n 3 * P1 - 6 * P2 + 3 * P3,\n -3 * P1 + 3 * P2,\n P1 // | 1 0 0 0| |P4|\n ];\n}\n\nvar Path2D = /** @class */ (function () {\n function Path2D() {\n // The methods of this class will likely be called many times per animation frame,\n // and any allocation can trigger a GC cycle during animation, so we attempt\n // to minimize the number of allocations.\n this.commands = [];\n this.params = [];\n this._closedPath = false;\n }\n Path2D.prototype.moveTo = function (x, y) {\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n this.commands.push('M');\n this.params.push(x, y);\n };\n Path2D.prototype.lineTo = function (x, y) {\n if (this.xy) {\n this.commands.push('L');\n this.params.push(x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.moveTo(x, y);\n }\n };\n Path2D.prototype.rect = function (x, y, width, height) {\n this.moveTo(x, y);\n this.lineTo(x + width, y);\n this.lineTo(x + width, y + height);\n this.lineTo(x, y + height);\n this.closePath();\n };\n /**\n * Adds an arc segment to the path definition.\n * https://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands\n * @param rx The major-axis radius.\n * @param ry The minor-axis radius.\n * @param rotation The x-axis rotation, expressed in radians.\n * @param fA The large arc flag. `1` to use angle > π.\n * @param fS The sweep flag. `1` for the arc that goes to `x`/`y` clockwise.\n * @param x2 The x coordinate to arc to.\n * @param y2 The y coordinate to arc to.\n */\n Path2D.prototype.arcTo = function (rx, ry, rotation, fA, fS, x2, y2) {\n // Convert from endpoint to center parametrization:\n // https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes\n var xy = this.xy;\n if (!xy) {\n return;\n }\n if (rx < 0) {\n rx = -rx;\n }\n if (ry < 0) {\n ry = -ry;\n }\n var x1 = xy[0];\n var y1 = xy[1];\n var hdx = (x1 - x2) / 2;\n var hdy = (y1 - y2) / 2;\n var sinPhi = Math.sin(rotation);\n var cosPhi = Math.cos(rotation);\n var xp = cosPhi * hdx + sinPhi * hdy;\n var yp = -sinPhi * hdx + cosPhi * hdy;\n var ratX = xp / rx;\n var ratY = yp / ry;\n var lambda = ratX * ratX + ratY * ratY;\n var cx = (x1 + x2) / 2;\n var cy = (y1 + y2) / 2;\n var cpx = 0;\n var cpy = 0;\n if (lambda >= 1) {\n lambda = Math.sqrt(lambda);\n rx *= lambda;\n ry *= lambda;\n // me gives lambda == cpx == cpy == 0;\n }\n else {\n lambda = Math.sqrt(1 / lambda - 1);\n if (fA === fS) {\n lambda = -lambda;\n }\n cpx = lambda * rx * ratY;\n cpy = -lambda * ry * ratX;\n cx += cosPhi * cpx - sinPhi * cpy;\n cy += sinPhi * cpx + cosPhi * cpy;\n }\n var theta1 = Math.atan2((yp - cpy) / ry, (xp - cpx) / rx);\n var deltaTheta = Math.atan2((-yp - cpy) / ry, (-xp - cpx) / rx) - theta1;\n // if (fS) {\n // if (deltaTheta <= 0) {\n // deltaTheta += Math.PI * 2;\n // }\n // }\n // else {\n // if (deltaTheta >= 0) {\n // deltaTheta -= Math.PI * 2;\n // }\n // }\n this.cubicArc(cx, cy, rx, ry, rotation, theta1, theta1 + deltaTheta, 1 - fS);\n };\n /**\n * Approximates an elliptical arc with up to four cubic Bézier curves.\n * @param commands The string array to write SVG command letters to.\n * @param params The number array to write SVG command parameters (cubic control points) to.\n * @param cx The x-axis coordinate for the ellipse's center.\n * @param cy The y-axis coordinate for the ellipse's center.\n * @param rx The ellipse's major-axis radius.\n * @param ry The ellipse's minor-axis radius.\n * @param phi The rotation for this ellipse, expressed in radians.\n * @param theta1 The starting angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param theta2 The ending angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param anticlockwise The arc control points are always placed clockwise from `theta1` to `theta2`,\n * even when `theta1 > theta2`, unless this flag is set to `1`.\n */\n Path2D.cubicArc = function (commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n if (anticlockwise) {\n var temp = theta1;\n theta1 = theta2;\n theta2 = temp;\n }\n var start = params.length;\n // See https://pomax.github.io/bezierinfo/#circles_cubic\n // Arc of unit circle (start angle = 0, end angle <= π/2) in cubic Bézier coordinates:\n // S = [1, 0]\n // C1 = [1, f]\n // C2 = [cos(θ) + f * sin(θ), sin(θ) - f * cos(θ)]\n // E = [cos(θ), sin(θ)]\n // f = 4/3 * tan(θ/4)\n var f90 = 0.5522847498307935; // f for θ = π/2 is 4/3 * (Math.sqrt(2) - 1)\n var sinTheta1 = Math.sin(theta1);\n var cosTheta1 = Math.cos(theta1);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var rightAngle = Math.PI / 2;\n // Since we know how to draw an arc of a unit circle with a cubic Bézier,\n // to draw an elliptical arc with arbitrary rotation and radii we:\n // 1) rotate the Bézier coordinates that represent a circular arc by θ\n // 2) scale the circular arc separately along the x/y axes, making it elliptical\n // 3) rotate elliptical arc by φ\n // |cos(φ) -sin(φ)| |sx 0| |cos(θ) -sin(θ)| -> |xx xy|\n // |sin(φ) cos(φ)| | 0 sy| |sin(θ) cos(θ)| -> |yx yy|\n var xx = cosPhi * cosTheta1 * rx - sinPhi * sinTheta1 * ry;\n var yx = sinPhi * cosTheta1 * rx + cosPhi * sinTheta1 * ry;\n var xy = -cosPhi * sinTheta1 * rx - sinPhi * cosTheta1 * ry;\n var yy = -sinPhi * sinTheta1 * rx + cosPhi * cosTheta1 * ry;\n // TODO: what if delta between θ1 and θ2 is greater than 2π?\n // Always draw clockwise from θ1 to θ2.\n theta2 -= theta1;\n if (theta2 < 0) {\n theta2 += Math.PI * 2;\n }\n // Multiplying each point [x, y] by:\n // |xx xy cx| |x|\n // |yx yy cy| |y|\n // | 0 0 1| |1|\n // TODO: This move command may be redundant, if we are already at this point.\n // The coordinates of the point calculated here may differ ever so slightly\n // because of precision error.\n commands.push('M');\n params.push(xx + cx, yx + cy);\n while (theta2 >= rightAngle) {\n theta2 -= rightAngle;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xy + cx;\n params.push(xx + xy * f90 + cx, yx + yy * f90 + cy, xx * f90 + xy + cx, yx * f90 + yy + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yy + cy);\n // Prepend π/2 rotation matrix.\n // |xx xy| | 0 1| -> | xy -xx|\n // |yx yy| |-1 0| -> | yy -yx|\n // [xx, yx, xy, yy] = [xy, yy, -xx, -yx];\n // Compared to swapping with a temp variable, destructuring is:\n // - 10% faster in Chrome 70\n // - 99% slower in Firefox 63\n // Temp variable solution is 45% faster in FF than Chrome.\n // https://jsperf.com/multi-swap\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1165569\n var temp = xx;\n xx = xy;\n xy = -temp;\n temp = yx;\n yx = yy;\n yy = -temp;\n }\n if (theta2) {\n var f = 4 / 3 * Math.tan(theta2 / 4);\n var sinPhi2 = Math.sin(theta2);\n var cosPhi2 = Math.cos(theta2);\n var C2x = cosPhi2 + f * sinPhi2;\n var C2y = sinPhi2 - f * cosPhi2;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xx * cosPhi2 + xy * sinPhi2 + cx;\n params.push(xx + xy * f + cx, yx + yy * f + cy, xx * C2x + xy * C2y + cx, yx * C2x + yy * C2y + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yx * cosPhi2 + yy * sinPhi2 + cy);\n }\n if (anticlockwise) {\n for (var i = start, j = params.length - 2; i < j; i += 2, j -= 2) {\n var temp = params[i];\n params[i] = params[j];\n params[j] = temp;\n temp = params[i + 1];\n params[i + 1] = params[j + 1];\n params[j + 1] = temp;\n }\n }\n };\n Path2D.prototype.cubicArc = function (cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n var commands = this.commands;\n var params = this.params;\n var start = commands.length;\n Path2D.cubicArc(commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise);\n var x = params[params.length - 2];\n var y = params[params.length - 1];\n if (this.xy) {\n commands[start] = 'L';\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n };\n /**\n * Returns the `[x, y]` coordinates of the curve at `t`.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param t\n */\n Path2D.prototype.deCasteljau = function (points, t) {\n var n = points.length;\n if (n < 2 || n % 2 === 1) {\n throw new Error('Fewer than two points or not an even count.');\n }\n else if (n === 2 || t === 0) {\n return points.slice(0, 2);\n }\n else if (t === 1) {\n return points.slice(-2);\n }\n else {\n var newPoints = [];\n var last = n - 2;\n for (var i = 0; i < last; i += 2) {\n newPoints.push((1 - t) * points[i] + t * points[i + 2], // x\n (1 - t) * points[i + 1] + t * points[i + 3] // y\n );\n }\n return this.deCasteljau(newPoints, t);\n }\n };\n /**\n * Approximates the given curve using `n` line segments.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param n\n */\n Path2D.prototype.approximateCurve = function (points, n) {\n var xy = this.deCasteljau(points, 0);\n this.moveTo(xy[0], xy[1]);\n var step = 1 / n;\n for (var t = step; t <= 1; t += step) {\n var xy_1 = this.deCasteljau(points, t);\n this.lineTo(xy_1[0], xy_1[1]);\n }\n };\n /**\n * Adds a quadratic curve segment to the path definition.\n * Note: the given quadratic segment is converted and stored as a cubic one.\n * @param cx x-component of the curve's control point\n * @param cy y-component of the curve's control point\n * @param x x-component of the end point\n * @param y y-component of the end point\n */\n Path2D.prototype.quadraticCurveTo = function (cx, cy, x, y) {\n if (!this.xy) {\n this.moveTo(cx, cy);\n }\n // See https://pomax.github.io/bezierinfo/#reordering\n this.cubicCurveTo((this.xy[0] + 2 * cx) / 3, (this.xy[1] + 2 * cy) / 3, // 1/3 start + 2/3 control\n (2 * cx + x) / 3, (2 * cy + y) / 3, // 2/3 control + 1/3 end\n x, y);\n };\n Path2D.prototype.cubicCurveTo = function (cx1, cy1, cx2, cy2, x, y) {\n if (!this.xy) {\n this.moveTo(cx1, cy1);\n }\n this.commands.push('C');\n this.params.push(cx1, cy1, cx2, cy2, x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n };\n Object.defineProperty(Path2D.prototype, \"closedPath\", {\n get: function () {\n return this._closedPath;\n },\n enumerable: true,\n configurable: true\n });\n Path2D.prototype.closePath = function () {\n if (this.xy) {\n this.xy = undefined;\n this.commands.push('Z');\n this._closedPath = true;\n }\n };\n Path2D.prototype.clear = function () {\n this.commands.length = 0;\n this.params.length = 0;\n this.xy = undefined;\n this._closedPath = false;\n };\n Path2D.prototype.isPointInPath = function (x, y) {\n var commands = this.commands;\n var params = this.params;\n var cn = commands.length;\n // Hit testing using ray casting method, where the ray's origin is some point\n // outside the path. In this case, an offscreen point that is remote enough, so that\n // even if the path itself is large and is partially offscreen, the ray's origin\n // will likely be outside the path anyway. To test if the given point is inside the\n // path or not, we cast a ray from the origin to the given point and check the number\n // of intersections of this segment with the path. If the number of intersections is\n // even, then the ray both entered and exited the path an equal number of times,\n // therefore the point is outside the path, and inside the path, if the number of\n // intersections is odd. Since the path is compound, we check if the ray segment\n // intersects with each of the path's segments, which can be either a line segment\n // (one or no intersection points) or a Bézier curve segment (up to 3 intersection\n // points).\n var ox = -10000;\n var oy = -10000;\n // the starting point of the current path\n var sx = NaN;\n var sy = NaN;\n // the previous point of the current path\n var px = 0;\n var py = 0;\n var intersectionCount = 0;\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (commands[ci]) {\n case 'M':\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n sx = px = params[pi++];\n sy = py = params[pi++];\n break;\n case 'L':\n if (segmentIntersection(px, py, px = params[pi++], py = params[pi++], ox, oy, x, y)) {\n intersectionCount++;\n }\n break;\n case 'C':\n intersectionCount += cubicSegmentIntersections(px, py, params[pi++], params[pi++], params[pi++], params[pi++], px = params[pi++], py = params[pi++], ox, oy, x, y).length;\n break;\n case 'Z':\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n break;\n }\n }\n return intersectionCount % 2 === 1;\n };\n Path2D.fromString = function (value) {\n var path = new Path2D();\n path.setFromString(value);\n return path;\n };\n /**\n * Split the SVG path at command letters,\n * then extract the command letter and parameters from each substring.\n * @param value\n */\n Path2D.parseSvgPath = function (value) {\n return value.trim().split(Path2D.splitCommandsRe).map(function (part) {\n var strParams = part.match(Path2D.matchParamsRe);\n return {\n command: part.substr(0, 1),\n params: strParams ? strParams.map(parseFloat) : []\n };\n });\n };\n Path2D.prettifySvgPath = function (value) {\n return Path2D.parseSvgPath(value).map(function (d) { return d.command + d.params.join(','); }).join('\\n');\n };\n /**\n * See https://www.w3.org/TR/SVG11/paths.html\n * @param value\n */\n Path2D.prototype.setFromString = function (value) {\n var _this = this;\n this.clear();\n var parts = Path2D.parseSvgPath(value);\n // Current point.\n var x;\n var y;\n // Last control point. Used to calculate the reflection point\n // for `S`, `s`, `T`, `t` commands.\n var cpx;\n var cpy;\n var lastCommand;\n function checkQuadraticCP() {\n if (!lastCommand.match(Path2D.quadraticCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n function checkCubicCP() {\n if (!lastCommand.match(Path2D.cubicCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n // But that will make compiler complain about x/y, cpx/cpy\n // being used without being set first.\n parts.forEach(function (part) {\n var p = part.params;\n var n = p.length;\n var i = 0;\n switch (part.command) {\n case 'M':\n _this.moveTo(x = p[i++], y = p[i++]);\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'm':\n _this.moveTo(x += p[i++], y += p[i++]);\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'L':\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'l':\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'C':\n while (i < n) {\n _this.cubicCurveTo(p[i++], p[i++], cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'c':\n while (i < n) {\n _this.cubicCurveTo(x + p[i++], y + p[i++], cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'S':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 's':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'T':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x = p[i++], y = p[i++]);\n }\n break;\n case 't':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x += p[i++], y += p[i++]);\n }\n break;\n case 'A':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'a':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Z':\n case 'z':\n _this.closePath();\n break;\n case 'H':\n while (i < n) {\n _this.lineTo(x = p[i++], y);\n }\n break;\n case 'h':\n while (i < n) {\n _this.lineTo(x += p[i++], y);\n }\n break;\n case 'V':\n while (i < n) {\n _this.lineTo(x, y = p[i++]);\n }\n break;\n case 'v':\n while (i < n) {\n _this.lineTo(x, y += p[i++]);\n }\n break;\n }\n lastCommand = part.command;\n });\n };\n Path2D.prototype.toString = function () {\n var c = this.commands;\n var p = this.params;\n var cn = c.length;\n var out = [];\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (c[ci]) {\n case 'M':\n out.push('M' + p[pi++] + ',' + p[pi++]);\n break;\n case 'L':\n out.push('L' + p[pi++] + ',' + p[pi++]);\n break;\n case 'C':\n out.push('C' + p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++]);\n break;\n case 'Z':\n out.push('Z');\n break;\n }\n }\n return out.join('');\n };\n Path2D.prototype.toPrettyString = function () {\n return Path2D.prettifySvgPath(this.toString());\n };\n Path2D.prototype.toSvg = function () {\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n Path2D.prototype.toDebugSvg = function () {\n var d = Path2D.prettifySvgPath(this.toString());\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n /**\n * Returns an array of sub-paths of this Path,\n * where each sub-path is represented exclusively by cubic segments.\n */\n Path2D.prototype.toCubicPaths = function () {\n // Each sub-path is an array of `(n * 3 + 1) * 2` numbers,\n // where `n` is the number of segments.\n var paths = [];\n var params = this.params;\n // current path\n var path;\n // the starting point of the current path\n var sx;\n var sy;\n // the previous point of the current path\n var px;\n var py;\n var i = 0; // current parameter\n this.commands.forEach(function (command) {\n switch (command) {\n case 'M':\n path = [\n sx = px = params[i++],\n sy = py = params[i++]\n ];\n paths.push(path);\n break;\n case 'L':\n var x = params[i++];\n var y = params[i++];\n // Place control points along the line `a + (b - a) * t`\n // at t = 1/3 and 2/3:\n path.push((px + px + x) / 3, (py + py + y) / 3, (px + x + x) / 3, (py + y + y) / 3, px = x, py = y);\n break;\n case 'C':\n path.push(params[i++], params[i++], params[i++], params[i++], px = params[i++], py = params[i++]);\n break;\n case 'Z':\n path.push((px + px + sx) / 3, (py + py + sy) / 3, (px + sx + sx) / 3, (py + sy + sy) / 3, px = sx, py = sy);\n break;\n }\n });\n return paths;\n };\n Path2D.cubicPathToString = function (path) {\n var n = path.length;\n if (!(n % 2 === 0 && (n / 2 - 1) / 2 >= 1)) {\n throw new Error('Invalid path.');\n }\n return 'M' + path.slice(0, 2).join(',') + 'C' + path.slice(2).join(',');\n };\n Path2D.splitCommandsRe = /(?=[AaCcHhLlMmQqSsTtVvZz])/g;\n Path2D.matchParamsRe = /-?[0-9]*\\.?\\d+/g;\n Path2D.quadraticCommandRe = /[QqTt]/;\n Path2D.cubicCommandRe = /[CcSs]/;\n Path2D.xmlDeclaration = '';\n Path2D.xmlns = 'http://www.w3.org/2000/svg';\n return Path2D;\n}());\n\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Path = /** @class */ (function (_super) {\n __extends$m(Path, _super);\n function Path() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Declare a path to retain for later rendering and hit testing\n * using custom Path2D class. Think of it as a TypeScript version\n * of the native Path2D (with some differences) that works in all browsers.\n */\n _this.path = new Path2D();\n /**\n * The path only has to be updated when certain attributes change.\n * For example, if transform attributes (such as `translationX`)\n * are changed, we don't have to update the path. The `dirtyPath` flag\n * is how we keep track if the path has to be updated or not.\n */\n _this._dirtyPath = true;\n /**\n * Path definition in SVG path syntax:\n * https://www.w3.org/TR/SVG11/paths.html#DAttribute\n */\n _this._svgPath = '';\n return _this;\n }\n Object.defineProperty(Path.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Path.prototype, \"svgPath\", {\n get: function () {\n return this._svgPath;\n },\n set: function (value) {\n if (this._svgPath !== value) {\n this._svgPath = value;\n this.path.setFromString(value);\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Path.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n return this.path.closedPath && this.path.isPointInPath(point.x, point.y);\n };\n Path.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Path.prototype.updatePath = function () { };\n Path.prototype.render = function (ctx) {\n var scene = this.scene;\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // if (scene.debug.renderBoundingBoxes) {\n // const bbox = this.computeBBox();\n // if (bbox) {\n // this.matrix.transformBBox(bbox).render(ctx);\n // }\n // }\n this.matrix.toContext(ctx);\n if (this.dirtyPath) {\n this.updatePath();\n this.dirtyPath = false;\n }\n scene.appendPath(this.path);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Path.className = 'Path';\n return Path;\n}(Shape));\n\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Line = /** @class */ (function (_super) {\n __extends$l(Line, _super);\n function Line() {\n var _this = _super.call(this) || this;\n _this._x1 = 0;\n _this._y1 = 0;\n _this._x2 = 0;\n _this._y2 = 0;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Line.prototype, \"x1\", {\n get: function () {\n // TODO: Investigate getter performance further in the context\n // of the scene graph.\n // In isolated benchmarks using a getter has the same\n // performance as a direct property access in Firefox 64.\n // But in Chrome 71 the getter is 60% slower than direct access.\n // Direct read is 4.5+ times slower in Chrome than it is in Firefox.\n // Property access and direct read have the same performance\n // in Safari 12, which is 2+ times faster than Firefox at this.\n // https://jsperf.com/es5-getters-setters-versus-getter-setter-methods/18\n // This is a know Chrome issue. They say it's not a regression, since\n // the behavior is observed since M60, but jsperf.com history shows the\n // 10x slowdown happened between Chrome 48 and Chrome 57.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=908743\n return this._x1;\n },\n set: function (value) {\n if (this._x1 !== value) {\n this._x1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (value) {\n if (this._y1 !== value) {\n this._y1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (value) {\n if (this._x2 !== value) {\n this._x2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (value) {\n if (this._y2 !== value) {\n this._y2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Line.prototype.computeBBox = function () {\n return new BBox(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Line.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Line.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Line.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var x1 = this.x1;\n var y1 = this.y1;\n var x2 = this.x2;\n var y2 = this.y2;\n // Align to the pixel grid if the line is strictly vertical\n // or horizontal (but not both, i.e. a dot).\n if (x1 === x2) {\n var x = Math.round(x1) + Math.floor(this.strokeWidth) % 2 / 2;\n x1 = x;\n x2 = x;\n }\n else if (y1 === y2) {\n var y = Math.round(y1) + Math.floor(this.strokeWidth) % 2 / 2;\n y1 = y;\n y2 = y;\n }\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Line.className = 'Line';\n Line.defaultStyles = chainObjects(Shape.defaultStyles, {\n fill: undefined,\n strokeWidth: 1\n });\n return Line;\n}(Shape));\n\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps a discrete domain to a continuous numeric range.\n * See https://github.com/d3/d3-scale#band-scales for more info.\n */\nvar BandScale = /** @class */ (function () {\n function BandScale() {\n this.type = 'band';\n /**\n * Maps datum to its index in the {@link domain} array.\n * Used to check for duplicate datums (not allowed).\n */\n this.index = new Map();\n /**\n * The output range values for datum at each index.\n */\n this.ordinalRange = [];\n /**\n * Contains unique datums only. Since `{}` is used in place of `Map`\n * for IE11 compatibility, the datums are converted `toString` before\n * the uniqueness check.\n */\n this._domain = [];\n this._range = [0, 1];\n this._bandwidth = 1;\n /**\n * The ratio of the range that is reserved for space between bands.\n */\n this._paddingInner = 0;\n /**\n * The ratio of the range that is reserved for space before the first\n * and after the last band.\n */\n this._paddingOuter = 0;\n this._round = false;\n /**\n * How the leftover range is distributed.\n * `0.5` - equal distribution of space before the first and after the last band,\n * with bands effectively centered within the range.\n */\n this._align = 0.5;\n }\n Object.defineProperty(BandScale.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n set: function (values) {\n var domain = this._domain;\n domain.length = 0;\n this.index = new Map();\n var index = this.index;\n // In case one wants to have duplicate domain values, for example, two 'Italy' categories,\n // one should use objects rather than strings for domain values like so:\n // { toString: () => 'Italy' }\n // { toString: () => 'Italy' }\n values.forEach(function (value) {\n if (index.get(value) === undefined) {\n index.set(value, domain.push(value) - 1);\n }\n });\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"range\", {\n get: function () {\n return this._range;\n },\n set: function (values) {\n this._range[0] = values[0];\n this._range[1] = values[1];\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.ticks = function () {\n return this._domain;\n };\n BandScale.prototype.convert = function (d) {\n var i = this.index.get(d);\n if (i === undefined) {\n return NaN;\n }\n var r = this.ordinalRange[i];\n if (r === undefined) {\n return NaN;\n }\n return r;\n };\n Object.defineProperty(BandScale.prototype, \"bandwidth\", {\n get: function () {\n return this._bandwidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"padding\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n value = Math.max(0, Math.min(1, value));\n this._paddingInner = value;\n this._paddingOuter = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingInner\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n this._paddingInner = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingOuter\", {\n get: function () {\n return this._paddingOuter;\n },\n set: function (value) {\n this._paddingOuter = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"round\", {\n get: function () {\n return this._round;\n },\n set: function (value) {\n this._round = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"align\", {\n get: function () {\n return this._align;\n },\n set: function (value) {\n this._align = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.rescale = function () {\n var _a;\n var n = this._domain.length;\n if (!n) {\n return;\n }\n var _b = __read$4(this._range, 2), a = _b[0], b = _b[1];\n var reversed = b < a;\n if (reversed) {\n _a = __read$4([b, a], 2), a = _a[0], b = _a[1];\n }\n var step = (b - a) / Math.max(1, n - this._paddingInner + this._paddingOuter * 2);\n if (this._round) {\n step = Math.floor(step);\n }\n a += (b - a - step * (n - this._paddingInner)) * this._align;\n this._bandwidth = step * (1 - this._paddingInner);\n if (this._round) {\n a = Math.round(a);\n this._bandwidth = Math.round(this._bandwidth);\n }\n var values = [];\n for (var i = 0; i < n; i++) {\n values.push(a + step * i);\n }\n this.ordinalRange = reversed ? values.reverse() : values;\n };\n return BandScale;\n}());\n\nvar EnterNode = /** @class */ (function () {\n function EnterNode(parent, datum) {\n this.next = null;\n this.scene = parent.scene;\n this.parent = parent;\n this.datum = datum;\n }\n EnterNode.prototype.appendChild = function (node) {\n // This doesn't work without the `strict: true` in the `tsconfig.json`,\n // so we must have two `if` checks below, instead of this single one.\n // if (this.next && !Node.isNode(this.next)) {\n // throw new Error(`${this.next} is not a Node.`);\n // }\n if (this.next === null) {\n return this.parent.insertBefore(node, null);\n }\n if (!Node.isNode(this.next)) {\n throw new Error(this.next + \" is not a Node.\");\n }\n return this.parent.insertBefore(node, this.next);\n };\n EnterNode.prototype.insertBefore = function (node, nextNode) {\n return this.parent.insertBefore(node, nextNode);\n };\n return EnterNode;\n}());\n/**\n * G - type of the selected node(s).\n * GDatum - type of the datum of the selected node(s).\n * P - type of the parent node(s).\n * PDatum - type of the datum of the parent node(s).\n */\nvar Selection = /** @class */ (function () {\n function Selection(groups, parents) {\n this.groups = groups;\n this.parents = parents;\n }\n Selection.select = function (node) {\n return new Selection([[typeof node === 'function' ? node() : node]], [undefined]);\n };\n Selection.selectAll = function (nodes) {\n return new Selection([nodes == null ? [] : nodes], [undefined]);\n };\n /**\n * Creates new nodes, appends them to the nodes of this selection and returns them\n * as a new selection. The created nodes inherit the datums and the parents of the nodes\n * they replace.\n * @param Class The constructor function to use to create the new nodes.\n */\n Selection.prototype.append = function (Class) {\n return this.select(function (node) {\n return node.appendChild(new Class());\n });\n };\n /**\n * Same as the {@link append}, but accepts a custom creator function with the\n * {@link NodeSelector} signature rather than a constructor function.\n * @param creator\n */\n Selection.prototype.appendFn = function (creator) {\n return this.select(function (node, data, index, group) {\n return node.appendChild(creator(node, data, index, group));\n });\n };\n /**\n * Runs the given selector that returns a single node for every node in each group.\n * The original nodes are then replaced by the nodes returned by the selector\n * and returned as a new selection.\n * The selected nodes inherit the datums and the parents of the original nodes.\n */\n Selection.prototype.select = function (selector) {\n var groups = this.groups;\n var numGroups = groups.length;\n var subgroups = [];\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n var subgroup = subgroups[j] = new Array(groupSize);\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var subnode = selector(node, node.datum, i, group);\n if (subnode) {\n subnode.datum = node.datum;\n }\n subgroup[i] = subnode;\n }\n // else this can be a group of the `enter` selection,\n // for example, with no nodes at the i-th position,\n // only nodes at the end of the group\n }\n }\n return new Selection(subgroups, this.parents);\n };\n /**\n * Same as {@link select}, but uses the given {@param Class} (constructor) as a selector.\n * @param Class The constructor function to use to find matching nodes.\n */\n Selection.prototype.selectByClass = function (Class) {\n return this.select(function (node) {\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectByTag = function (tag) {\n return this.select(function (node) {\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectAllByClass = function (Class) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectAllByTag = function (tag) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectNone = function () {\n return [];\n };\n /**\n * Runs the given selector that returns a group of nodes for every node in each group.\n * The original nodes are then replaced by the groups of nodes returned by the selector\n * and returned as a new selection. The original nodes become the parent nodes for each\n * group in the new selection. The selected nodes do not inherit the datums of the original nodes.\n * If called without any parameters, creates a new selection with an empty group for each\n * node in this selection.\n */\n Selection.prototype.selectAll = function (selectorAll) {\n if (!selectorAll) {\n selectorAll = this.selectNone;\n }\n // Each subgroup is populated with the selector (run on each group node) results.\n var subgroups = [];\n // In the new selection that we return, subgroups become groups,\n // and group nodes become parents.\n var parents = [];\n var groups = this.groups;\n var groupCount = groups.length;\n for (var j = 0; j < groupCount; j++) {\n var group = groups[j];\n var groupLength = group.length;\n for (var i = 0; i < groupLength; i++) {\n var node = group[i];\n if (node) {\n subgroups.push(selectorAll(node, node.datum, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n };\n /**\n * Runs the given callback for every node in this selection and returns this selection.\n * @param cb\n */\n Selection.prototype.each = function (cb) {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n cb(node, node.datum, i, group);\n }\n }\n }\n return this;\n };\n Selection.prototype.remove = function () {\n return this.each(function (node) {\n if (Node.isNode(node)) {\n var parent_1 = node.parent;\n if (parent_1) {\n parent_1.removeChild(node);\n }\n }\n });\n };\n Selection.prototype.merge = function (other) {\n var groups0 = this.groups;\n var groups1 = other.groups;\n var m0 = groups0.length;\n var m1 = groups1.length;\n var m = Math.min(m0, m1);\n var merges = new Array(m0);\n var j = 0;\n for (; j < m; j++) {\n var group0 = groups0[j];\n var group1 = groups1[j];\n var n = group0.length;\n var merge = merges[j] = new Array(n);\n for (var i = 0; i < n; i++) {\n var node = group0[i] || group1[i];\n merge[i] = node || undefined;\n }\n }\n for (; j < m0; j++) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this.parents);\n };\n /**\n * Return the first non-null element in this selection.\n * If the selection is empty, returns null.\n */\n Selection.prototype.node = function () {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n return node;\n }\n }\n }\n return null;\n };\n Selection.prototype.attr = function (name, value) {\n this.each(function (node) {\n node[name] = value;\n });\n return this;\n };\n Selection.prototype.attrFn = function (name, value) {\n this.each(function (node, datum, index, group) {\n node[name] = value(node, datum, index, group);\n });\n return this;\n };\n /**\n * Invokes the given function once, passing in this selection.\n * Returns this selection. Facilitates method chaining.\n * @param cb\n */\n Selection.prototype.call = function (cb) {\n cb(this);\n return this;\n };\n Object.defineProperty(Selection.prototype, \"size\", {\n /**\n * Returns the total number of nodes in this selection.\n */\n get: function () {\n var size = 0;\n this.each(function () { return size++; });\n return size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"data\", {\n /**\n * Returns the array of data for the selected elements.\n */\n get: function () {\n var data = [];\n this.each(function (_, datum) { return data.push(datum); });\n return data;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"enter\", {\n get: function () {\n return new Selection(this.enterGroups ? this.enterGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"exit\", {\n get: function () {\n return new Selection(this.exitGroups ? this.exitGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the given value to each selected node and returns this selection\n * with its {@link GDatum} type changed to the type of the given value.\n * This method doesn't compute a join and doesn't affect indexes or the enter and exit selections.\n * This method can also be used to clear bound data.\n * @param value\n */\n Selection.prototype.setDatum = function (value) {\n return this.each(function (node) {\n node.datum = value;\n });\n };\n Object.defineProperty(Selection.prototype, \"datum\", {\n /**\n * Returns the bound datum for the first non-null element in the selection.\n * This is generally useful only if you know the selection contains exactly one element.\n */\n get: function () {\n var node = this.node();\n return node ? node.datum : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the specified array of values with the selected nodes, returning a new selection\n * that represents the _update_ selection: the nodes successfully bound to the values.\n * Also defines the {@link enter} and {@link exit} selections on the returned selection,\n * which can be used to add or remove the nodes to correspond to the new data.\n * The `values` is an array of values of a particular type, or a function that returns\n * an array of values for each group.\n * When values are assigned to the nodes, they are stored in the {@link Node.datum} property.\n * @param values\n * @param key\n */\n Selection.prototype.setData = function (values, key) {\n if (typeof values !== 'function') {\n var data_1 = values;\n values = function () { return data_1; };\n }\n var groups = this.groups;\n var parents = this.parents;\n var numGroups = groups.length;\n var updateGroups = new Array(numGroups);\n var enterGroups = new Array(numGroups);\n var exitGroups = new Array(numGroups);\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var parent_2 = parents[j];\n if (!parent_2) {\n throw new Error(\"Group #\" + j + \" has no parent: \" + group);\n }\n var groupSize = group.length;\n var data = values(parent_2, parent_2.datum, j, parents);\n var dataSize = data.length;\n var enterGroup = enterGroups[j] = new Array(dataSize);\n var updateGroup = updateGroups[j] = new Array(dataSize);\n var exitGroup = exitGroups[j] = new Array(groupSize);\n if (key) {\n this.bindKey(parent_2, group, enterGroup, updateGroup, exitGroup, data, key);\n }\n else {\n this.bindIndex(parent_2, group, enterGroup, updateGroup, exitGroup, data);\n }\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0; i0 < dataSize; i0++) {\n var previous = enterGroup[i0];\n if (previous) {\n if (i0 >= i1) {\n i1 = i0 + 1;\n }\n var next = void 0;\n while (!(next = updateGroup[i1]) && i1 < dataSize) {\n i1++;\n }\n previous.next = next || null;\n }\n }\n }\n var result = new Selection(updateGroups, parents);\n result.enterGroups = enterGroups;\n result.exitGroups = exitGroups;\n return result;\n };\n Selection.prototype.bindIndex = function (parent, group, enter, update, exit, data) {\n var groupSize = group.length;\n var dataSize = data.length;\n var i = 0;\n for (; i < dataSize; i++) {\n var node = group[i];\n if (node) {\n node.datum = data[i];\n update[i] = node;\n }\n else { // more datums than group nodes\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n // more group nodes than datums\n for (; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n exit[i] = node;\n }\n }\n };\n Selection.prototype.bindKey = function (parent, group, enter, update, exit, data, key) {\n var groupSize = group.length;\n var dataSize = data.length;\n var keyValues = new Array(groupSize);\n var nodeByKeyValue = {};\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var keyValue = keyValues[i] = Selection.keyPrefix + key(node, node.datum, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n }\n else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n // Compute the key for each datum.\n // If there is a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (var i = 0; i < dataSize; i++) {\n var keyValue = Selection.keyPrefix + key(parent, data[i], i, data);\n var node = nodeByKeyValue[keyValue];\n if (node) {\n update[i] = node;\n node.datum = data[i];\n nodeByKeyValue[keyValue] = undefined;\n }\n else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n // Add any remaining nodes that were not bound to data to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n };\n Selection.keyPrefix = '$'; // Protect against keys like '__proto__'.\n return Selection;\n}());\n\n/**\n * Wraps the native Canvas element and overrides its CanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiCanvas = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiCanvas(document, width, height) {\n if (document === void 0) { document = window.document; }\n if (width === void 0) { width = 600; }\n if (height === void 0) { height = 300; }\n this._container = undefined;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 100;\n this._height = 100;\n this.document = document;\n this.element = document.createElement('canvas');\n this.context = this.element.getContext('2d');\n this.element.style.userSelect = 'none';\n this.element.style.display = 'block';\n this.setPixelRatio();\n this.resize(width, height);\n }\n Object.defineProperty(HdpiCanvas.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n this.remove();\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.remove = function () {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n };\n HdpiCanvas.prototype.destroy = function () {\n this.element.remove();\n this._canvas = undefined;\n Object.freeze(this);\n };\n HdpiCanvas.prototype.clear = function () {\n this.context.save();\n this.context.setTransform(1, 0, 0, 1, 0, 0);\n this.context.clearRect(0, 0, this.element.width, this.element.height);\n this.context.restore();\n };\n HdpiCanvas.prototype.toImage = function () {\n var img = this.document.createElement('img');\n img.src = this.getDataURL();\n return img;\n };\n HdpiCanvas.prototype.getDataURL = function (type) {\n return this.element.toDataURL(type);\n };\n /**\n * @param fileName The name of the file upon save. The `.png` extension is going to be added automatically.\n */\n HdpiCanvas.prototype.download = function (fileName) {\n fileName = ((fileName || '').trim() || 'image') + '.png';\n // Chart images saved as JPEG are a few times larger at 50% quality than PNG images,\n // so we don't support saving to JPEG.\n var type = 'image/png';\n var dataUrl = this.getDataURL(type);\n var document = this.document;\n var a = document.createElement('a');\n a.href = dataUrl;\n a.download = fileName;\n a.style.display = 'none';\n document.body.appendChild(a); // required for the `click` to work in Firefox\n a.click();\n document.body.removeChild(a);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio || window.devicePixelRatio;\n if (pixelRatio === this.pixelRatio) {\n return;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n this.resize(this.width, this.height);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelated\", {\n get: function () {\n return this.element.style.imageRendering === 'pixelated';\n },\n set: function (value) {\n this.element.style.imageRendering = value ? 'pixelated' : 'auto';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, element = _a.element, context = _a.context, pixelRatio = _a.pixelRatio;\n element.width = Math.round(width * pixelRatio);\n element.height = Math.round(height * pixelRatio);\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n Object.defineProperty(HdpiCanvas, \"textMeasuringContext\", {\n get: function () {\n if (this._textMeasuringContext) {\n return this._textMeasuringContext;\n }\n var canvas = document.createElement('canvas');\n this._textMeasuringContext = canvas.getContext('2d');\n return this._textMeasuringContext;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"svgText\", {\n get: function () {\n if (this._svgText) {\n return this._svgText;\n }\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n svg.setAttribute('width', '100');\n svg.setAttribute('height', '100');\n // Add a descriptive class name in case someone sees this SVG element\n // in devtools and wonders about its purpose:\n if (svg.classList) {\n svg.classList.add('text-measuring-svg');\n }\n else {\n svg.setAttribute('class', 'text-measuring-svg');\n }\n svg.style.position = 'absolute';\n svg.style.top = '-1000px';\n svg.style.visibility = 'hidden';\n var svgText = document.createElementNS(xmlns, 'text');\n svgText.setAttribute('x', '0');\n svgText.setAttribute('y', '30');\n svgText.setAttribute('text', 'black');\n svg.appendChild(svgText);\n document.body.appendChild(svg);\n this._svgText = svgText;\n return svgText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"has\", {\n get: function () {\n if (this._has) {\n return this._has;\n }\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isSafari = !isChrome && navigator.userAgent.indexOf('Safari') > -1;\n this._has = Object.freeze({\n textMetrics: this.textMeasuringContext.measureText('test').actualBoundingBoxDescent !== undefined\n // Firefox implemented advanced TextMetrics object in v74:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1102584\n // but it's buggy, so we'll keed using the SVG for text measurement in Firefox for now.\n && !isFirefox && !isSafari,\n getTransform: this.textMeasuringContext.getTransform !== undefined\n });\n return this._has;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.measureText = function (text, font, textBaseline, textAlign) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n ctx.textBaseline = textBaseline;\n ctx.textAlign = textAlign;\n return ctx.measureText(text);\n };\n /**\n * Returns the width and height of the measured text.\n * @param text The single-line text to measure.\n * @param font The font shorthand string.\n */\n HdpiCanvas.getTextSize = function (text, font) {\n if (this.has.textMetrics) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n var metrics = ctx.measureText(text);\n return {\n width: metrics.width,\n height: metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent\n };\n }\n else {\n return this.measureSvgText(text, font);\n }\n };\n HdpiCanvas.measureSvgText = function (text, font) {\n var cache = this.textSizeCache;\n var fontCache = cache[font];\n // Note: consider not caching the size of numeric strings.\n // For example: if (isNaN(+text)) { // skip\n if (fontCache) {\n var size_1 = fontCache[text];\n if (size_1) {\n return size_1;\n }\n }\n else {\n cache[font] = {};\n }\n var svgText = this.svgText;\n svgText.style.font = font;\n svgText.textContent = text;\n // `getBBox` returns an instance of `SVGRect` with the same `width` and `height`\n // measurements as `DOMRect` instance returned by the `getBoundingClientRect`.\n // But the `SVGRect` instance has half the properties of the `DOMRect`,\n // so we use the `getBBox` method.\n var bbox = svgText.getBBox();\n var size = {\n width: bbox.width,\n height: bbox.height\n };\n cache[font][text] = size;\n return size;\n };\n HdpiCanvas.overrideScale = function (ctx, scale) {\n var depth = 0;\n var overrides = {\n save: function () {\n this.$save();\n depth++;\n },\n restore: function () {\n if (depth > 0) {\n this.$restore();\n depth--;\n }\n },\n setTransform: function (a, b, c, d, e, f) {\n this.$setTransform(a * scale, b * scale, c * scale, d * scale, e * scale, f * scale);\n },\n resetTransform: function () {\n // As of Jan 8, 2019, `resetTransform` is still an \"experimental technology\",\n // and doesn't work in IE11 and Edge 44.\n this.$setTransform(scale, 0, 0, scale, 0, 0);\n this.save();\n depth = 0;\n // The scale above will be impossible to restore,\n // because we override the `ctx.restore` above and\n // check `depth` there.\n }\n };\n for (var name_1 in overrides) {\n if (overrides.hasOwnProperty(name_1)) {\n // Save native methods under prefixed names,\n // if this hasn't been done by the previous overrides already.\n if (!ctx['$' + name_1]) {\n ctx['$' + name_1] = ctx[name_1];\n }\n // Replace native methods with overrides,\n // or previous overrides with the new ones.\n ctx[name_1] = overrides[name_1];\n }\n }\n };\n HdpiCanvas.textSizeCache = {};\n return HdpiCanvas;\n}());\n\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$3(arguments[i]));\n return ar;\n};\nvar Scene = /** @class */ (function () {\n // As a rule of thumb, constructors with no parameters are preferred.\n // A few exceptions are:\n // - we absolutely need to know something at construction time (document)\n // - knowing something at construction time meaningfully improves performance (width, height)\n function Scene(document, width, height) {\n var _this = this;\n if (document === void 0) { document = window.document; }\n this.id = createId(this);\n this._dirty = false;\n this.animationFrameId = 0;\n this._root = null;\n this.debug = {\n renderFrameIndex: false,\n renderBoundingBoxes: false\n };\n this._frameIndex = 0;\n this.render = function () {\n var _a;\n var _b = _this, canvas = _b.canvas, ctx = _b.ctx, root = _b.root, pendingSize = _b.pendingSize;\n _this.animationFrameId = 0;\n if (pendingSize) {\n (_a = _this.canvas).resize.apply(_a, __spread(pendingSize));\n _this.pendingSize = undefined;\n }\n if (root && !root.visible) {\n _this.dirty = false;\n return;\n }\n // start with a blank canvas, clear previous drawing\n canvas.clear();\n if (root) {\n ctx.save();\n if (root.visible) {\n root.render(ctx);\n }\n ctx.restore();\n }\n _this._frameIndex++;\n if (_this.debug.renderFrameIndex) {\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, 40, 15);\n ctx.fillStyle = 'black';\n ctx.fillText(_this.frameIndex.toString(), 2, 10);\n }\n _this.dirty = false;\n };\n this.canvas = new HdpiCanvas(document, width, height);\n this.ctx = this.canvas.context;\n }\n Object.defineProperty(Scene.prototype, \"container\", {\n get: function () {\n return this.canvas.container;\n },\n set: function (value) {\n this.canvas.container = value;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.download = function (fileName) {\n this.canvas.download(fileName);\n };\n Scene.prototype.getDataURL = function (type) {\n return this.canvas.getDataURL(type);\n };\n Object.defineProperty(Scene.prototype, \"width\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[0] : this.canvas.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"height\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[1] : this.canvas.height;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.resize = function (width, height) {\n width = Math.round(width);\n height = Math.round(height);\n if (width === this.width && height === this.height) {\n return;\n }\n this.pendingSize = [width, height];\n this.dirty = true;\n };\n Object.defineProperty(Scene.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (dirty) {\n if (dirty && !this._dirty) {\n this.animationFrameId = requestAnimationFrame(this.render);\n }\n this._dirty = dirty;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.cancelRender = function () {\n if (this.animationFrameId) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = 0;\n this._dirty = false;\n }\n };\n Object.defineProperty(Scene.prototype, \"root\", {\n get: function () {\n return this._root;\n },\n set: function (node) {\n if (node === this._root) {\n return;\n }\n if (this._root) {\n this._root._setScene();\n }\n this._root = node;\n if (node) {\n // If `node` is the root node of another scene ...\n if (node.parent === null && node.scene && node.scene !== this) {\n node.scene.root = null;\n }\n node._setScene(this);\n }\n this.dirty = true;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.appendPath = function (path) {\n var ctx = this.ctx;\n var commands = path.commands;\n var params = path.params;\n var n = commands.length;\n var j = 0;\n ctx.beginPath();\n for (var i = 0; i < n; i++) {\n switch (commands[i]) {\n case 'M':\n ctx.moveTo(params[j++], params[j++]);\n break;\n case 'L':\n ctx.lineTo(params[j++], params[j++]);\n break;\n case 'C':\n ctx.bezierCurveTo(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++]);\n break;\n case 'Z':\n ctx.closePath();\n break;\n }\n }\n };\n Object.defineProperty(Scene.prototype, \"frameIndex\", {\n get: function () {\n return this._frameIndex;\n },\n enumerable: true,\n configurable: true\n });\n Scene.className = 'Scene';\n return Scene;\n}());\n\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar Observable = /** @class */ (function () {\n function Observable() {\n // Note that these maps can't be specified generically, so they are kept untyped.\n // Some methods in this class only need generics in their signatures, the generics inside the methods\n // are just for clarity. The generics in signatures allow for static type checking of user provided\n // listeners and for type inference, so that the users wouldn't have to specify the type of parameters\n // of their inline lambdas.\n this.allPropertyListeners = new Map(); // property name => property change listener => scopes\n this.allEventListeners = new Map(); // event type => event listener => scopes\n }\n Observable.prototype.addPropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (!propertyListeners) {\n propertyListeners = new Map();\n allPropertyListeners.set(name, propertyListeners);\n }\n if (!propertyListeners.has(listener)) {\n var scopes_1 = new Set();\n propertyListeners.set(listener, scopes_1);\n }\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removePropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n if (listener) {\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n propertyListeners.delete(listener);\n }\n }\n }\n else {\n propertyListeners.clear();\n }\n }\n };\n Observable.prototype.notifyPropertyListeners = function (name, oldValue, value) {\n var _this = this;\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n propertyListeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: name, source: _this, value: value, oldValue: oldValue }); });\n });\n }\n };\n Observable.prototype.addEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n eventListeners = new Map();\n allEventListeners.set(type, eventListeners);\n }\n if (!eventListeners.has(listener)) {\n var scopes_2 = new Set();\n eventListeners.set(listener, scopes_2);\n }\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removeEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (eventListeners) {\n if (listener) {\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n eventListeners.delete(listener);\n }\n }\n }\n else {\n eventListeners.clear();\n }\n }\n };\n Observable.prototype.notifyEventListeners = function (types) {\n var _this = this;\n var allEventListeners = this.allEventListeners;\n types.forEach(function (type) {\n var listeners = allEventListeners.get(type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: type, source: _this }); });\n });\n }\n });\n };\n // 'source' is added automatically and is always the object this method belongs to.\n Observable.prototype.fireEvent = function (event) {\n var _this = this;\n var listeners = this.allEventListeners.get(event.type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, __assign$1(__assign$1({}, event), { source: _this })); });\n });\n }\n };\n Observable.privateKeyPrefix = '_';\n return Observable;\n}());\nfunction reactive() {\n var events = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n events[_i] = arguments[_i];\n }\n var debug = events.indexOf('debugger') >= 0;\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = Observable.privateKeyPrefix + key;\n var privateKeyEvents = privateKey + 'Events';\n if (!target[key]) {\n if (events) {\n target[privateKeyEvents] = events;\n }\n Object.defineProperty(target, key, {\n set: function (value) {\n var oldValue = this[privateKey];\n // This is a way to stop inside the setter by adding the special\n // 'debugger' event to a reactive property, for example:\n // @reactive('layoutChange', 'debugger') title?: Caption;\n if (debug) { // DO NOT REMOVE\n debugger;\n }\n if (value !== oldValue || (typeof value === 'object' && value !== null)) {\n this[privateKey] = value;\n this.notifyPropertyListeners(key, oldValue, value);\n var events_1 = this[privateKeyEvents];\n if (events_1) {\n this.notifyEventListeners(events_1);\n }\n }\n },\n get: function () {\n return this[privateKey];\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n}\n\nvar Padding = /** @class */ (function () {\n function Padding(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = top; }\n if (bottom === void 0) { bottom = top; }\n if (left === void 0) { left = right; }\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n Padding.prototype.clear = function () {\n this.top = this.right = this.bottom = this.left = 0;\n };\n return Padding;\n}());\n\nvar defaultTooltipCss = \"\\n.ag-sparkline-tooltip-wrapper {\\n position: absolute;\\n user-select: none;\\n pointer-events: none;\\n}\\n\\n.ag-sparkline-tooltip {\\n position: relative;\\n font: 12px arial,sans-serif;\\n border-radius: 2px;\\n box-shadow: 0 1px 3px rgb(0 0 0 / 20%), 0 1px 1px rgb(0 0 0 / 14%);\\n line-height: 1.7em;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 99999;\\n background-color: rgb(255, 255, 255);\\n color: rgba(0,0,0, 0.67);\\n}\\n\\n.ag-sparkline-tooltip-content {\\n padding: 0 7px;\\n}\\n\\n.ag-sparkline-tooltip-title {\\n padding-left: 7px;\\n}\\n\\n.ag-sparkline-tooltip-wrapper-hidden {\\n top: -10000px !important;\\n}\\n\\n.ag-sparkline-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\n\n// Simplified version of https://github.com/plotly/fast-isnumeric\n// that doesn't treat number strings with leading/trailing whitespace as numbers.\nfunction isNumber(value) {\n if (typeof value !== 'number') {\n return false;\n }\n return Number.isFinite(value);\n}\nfunction isNumberObject(value) {\n return !!value && value.hasOwnProperty('valueOf') && isNumber(value.valueOf());\n}\nfunction isNumeric(value) {\n return isNumber(value) || isNumberObject(value);\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isStringObject(value) {\n return !!value && value.hasOwnProperty('toString') && isString(value.toString());\n}\nfunction isContinuous(value) {\n return isNumeric(value) || isDate(value);\n}\n\nvar constant$1 = (function (x) { return function () { return x; }; });\n\nfunction interpolateNumber (a, b) {\n a = +a;\n b = +b;\n return function (t) { return a * (1 - t) + b * t; };\n}\n\nfunction date (a, b) {\n var date = new Date;\n var msA = +a;\n var msB = +b;\n return function (t) {\n date.setTime(msA * (1 - t) + msB * t);\n return date;\n };\n}\n\nfunction array (a, b) {\n var nb = b ? b.length : 0;\n var na = a ? Math.min(nb, a.length) : 0;\n var x = new Array(na);\n var c = new Array(nb);\n var i;\n for (i = 0; i < na; ++i) {\n x[i] = interpolateValue(a[i], b[i]);\n }\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n return c;\n };\n}\n\nfunction object (a, b) {\n var i = {};\n var c = {};\n var k;\n if (a === null || typeof a !== 'object') {\n a = {};\n }\n if (b === null || typeof b !== 'object') {\n b = {};\n }\n for (k in b) {\n if (k in a) {\n i[k] = interpolateValue(a[k], b[k]);\n }\n else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n return c;\n };\n}\n\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input.split('').map(function (p) { return parseInt(p, 16); }).map(function (p) { return p + p * 16; });\n break;\n }\n if (parts.length >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$2(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$2([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) { // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) { // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else { // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\nfunction color (a, b) {\n if (typeof a === 'string') {\n try {\n a = Color.fromString(a);\n }\n catch (e) {\n a = Color.fromArray([0, 0, 0]);\n }\n }\n if (typeof b === 'string') {\n try {\n b = Color.fromString(b);\n }\n catch (e) {\n b = Color.fromArray([0, 0, 0]);\n }\n }\n var red = interpolateNumber(a.r, b.r);\n var green = interpolateNumber(a.g, b.g);\n var blue = interpolateNumber(a.b, b.b);\n var alpha = interpolateNumber(a.a, b.a);\n return function (t) {\n return Color.fromArray([red(t), green(t), blue(t), alpha(t)]).toRgbaString();\n };\n}\n\nfunction interpolateValue (a, b) {\n var t = typeof b;\n var c;\n if (b == null || t === 'boolean') {\n return constant$1(b);\n }\n if (t === 'number') {\n return interpolateNumber(a, b);\n }\n if (t === 'string') {\n try {\n c = Color.fromString(b);\n b = c;\n return color(a, b);\n }\n catch (e) {\n // return string(a, b);\n }\n }\n if (b instanceof Color) {\n return color(a, b);\n }\n if (b instanceof Date) {\n return date(a, b);\n }\n if (Array.isArray(b)) {\n return array(a, b);\n }\n if (typeof b.valueOf !== 'function' && typeof b.toString !== 'function' || isNaN(b)) {\n return object(a, b);\n }\n return interpolateNumber(a, b);\n}\n\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar constant = function (x) { return function () { return x; }; };\nvar identity$2 = function (x) { return x; };\nfunction clamper(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$1([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return Math.max(a, Math.min(b, x)); };\n}\nvar ContinuousScale = /** @class */ (function () {\n function ContinuousScale() {\n /**\n * The output value of the scale for `undefined` or `NaN` input values.\n */\n this.unknown = undefined;\n this._clamp = identity$2;\n this._domain = [0, 1];\n this._range = [0, 1];\n this.transform = identity$2; // transforms domain value\n this.untransform = identity$2; // untransforms domain value\n this._interpolate = interpolateValue;\n this.rescale();\n }\n Object.defineProperty(ContinuousScale.prototype, \"clamp\", {\n get: function () {\n return this._clamp !== identity$2;\n },\n set: function (value) {\n this._clamp = value ? clamper(this.domain) : identity$2;\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.setDomain = function (values) {\n this._domain = Array.prototype.map.call(values, function (v) { return +v; });\n if (this._clamp !== identity$2) {\n this._clamp = clamper(this.domain);\n }\n this.rescale();\n };\n ContinuousScale.prototype.getDomain = function () {\n return this._domain.slice();\n };\n Object.defineProperty(ContinuousScale.prototype, \"domain\", {\n get: function () {\n return this.getDomain();\n },\n set: function (values) {\n this.setDomain(values);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"range\", {\n get: function () {\n return this._range.slice();\n },\n set: function (values) {\n this._range = Array.prototype.slice.call(values);\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"interpolate\", {\n get: function () {\n return this._interpolate;\n },\n set: function (value) {\n this._interpolate = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.rescale = function () {\n this.piecewise = this.bimap;\n this.output = undefined;\n this.input = undefined;\n };\n /**\n * Returns a function that converts `x` in `[a, b]` to `t` in `[0, 1]`. Non-clamping.\n * @param a\n * @param b\n */\n ContinuousScale.prototype.normalize = function (a, b) {\n return (b -= (a = +a))\n ? function (x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n };\n ContinuousScale.prototype.bimap = function (domain, range, interpolate) {\n var x0 = domain[0];\n var x1 = domain[1];\n var y0 = range[0];\n var y1 = range[1];\n var xt;\n var ty;\n if (x1 < x0) {\n xt = this.normalize(x1, x0);\n ty = interpolate(y1, y0);\n }\n else {\n xt = this.normalize(x0, x1);\n ty = interpolate(y0, y1);\n }\n return function (x) { return ty(xt(x)); }; // domain value x --> t in [0, 1] --> range value y\n };\n ContinuousScale.prototype.convert = function (x) {\n x = +x;\n if (isNaN(x)) {\n return this.unknown;\n }\n else {\n if (!this.output) {\n this.output = this.piecewise(this.domain.map(this.transform), this.range, this.interpolate);\n }\n return this.output(this.transform(this._clamp(x)));\n }\n };\n ContinuousScale.prototype.invert = function (y) {\n if (!this.input) {\n this.input = this.piecewise(this.range, this.domain.map(this.transform), interpolateNumber);\n }\n return this._clamp(this.untransform(this.input(y)));\n };\n return ContinuousScale;\n}());\n\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction ticks (a, b, count) {\n var step = tickStep(a, b, count);\n a = Math.ceil(a / step) * step;\n b = Math.floor(b / step) * step + step / 2;\n // Add half a step here so that the array returned by `range` includes the last tick.\n return range(a, b, step);\n}\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\nfunction tickStep(a, b, count) {\n var rawStep = Math.abs(b - a) / Math.max(0, count);\n var step = Math.pow(10, Math.floor(Math.log(rawStep) / Math.LN10)); // = Math.log10(rawStep)\n var error = rawStep / step;\n if (error >= e10) {\n step *= 10;\n }\n else if (error >= e5) {\n step *= 5;\n }\n else if (error >= e2) {\n step *= 2;\n }\n return b < a ? -step : step;\n}\nfunction tickIncrement(a, b, count) {\n var rawStep = (b - a) / Math.max(0, count);\n var power = Math.floor(Math.log(rawStep) / Math.LN10);\n var error = rawStep / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nvar NumericTicks = /** @class */ (function (_super) {\n __extends$k(NumericTicks, _super);\n function NumericTicks(fractionDigits, elements) {\n var _this = _super.call(this) || this;\n if (elements) {\n for (var i = 0, n = elements.length; i < n; i++) {\n _this[i] = elements[i];\n }\n }\n _this.fractionDigits = fractionDigits;\n return _this;\n }\n return NumericTicks;\n}(Array));\nfunction range(a, b, step) {\n if (step === void 0) { step = 1; }\n var absStep = Math.abs(step);\n var fractionDigits = (absStep > 0 && absStep < 1)\n ? Math.abs(Math.floor(Math.log(absStep) / Math.LN10))\n : 0;\n var f = Math.pow(10, fractionDigits);\n var n = Math.max(0, Math.ceil((b - a) / step)) || 0;\n var values = new NumericTicks(fractionDigits);\n for (var i = 0; i < n; i++) {\n var value = a + step * i;\n values[i] = Math.round(value * f) / f;\n }\n return values;\n}\n\nfunction formatDefault(x, p) {\n var xs = x.toPrecision(p);\n out: for (var n = xs.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (xs[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0) {\n i0 = i;\n }\n i1 = i;\n break;\n case 'e': break out;\n default:\n if (i0 > 0) {\n i0 = 0;\n }\n break;\n }\n }\n return i0 > 0 ? xs.slice(0, i0) + xs.slice(i1 + 1) : xs;\n}\nvar formatTypes = {\n '': formatDefault,\n // Multiply by 100, and then decimal notation with a percent sign.\n '%': function (x, p) { return (x * 100).toFixed(p); },\n // Binary notation, rounded to integer.\n 'b': function (x) { return Math.round(x).toString(2); },\n // Converts the integer to the corresponding unicode character before printing.\n 'c': function (x) { return String(x); },\n // Decimal notation, rounded to integer.\n 'd': formatDecimal,\n // Exponent notation.\n 'e': function (x, p) { return x.toExponential(p); },\n // Fixed point notation.\n 'f': function (x, p) { return x.toFixed(p); },\n // Either decimal or exponent notation, rounded to significant digits.\n 'g': function (x, p) { return x.toPrecision(p); },\n // Octal notation, rounded to integer.\n 'o': function (x) { return Math.round(x).toString(8); },\n // Multiply by 100, round to significant digits, and then decimal notation with a percent sign.\n 'p': function (x, p) { return formatRounded(x * 100, p); },\n // Decimal notation, rounded to significant digits.\n 'r': formatRounded,\n // Decimal notation with a SI prefix, rounded to significant digits.\n 's': formatPrefixAuto,\n // Hexadecimal notation, using upper-case letters, rounded to integer.\n 'X': function (x) { return Math.round(x).toString(16).toUpperCase(); },\n // Hexadecimal notation, using lower-case letters, rounded to integer.\n 'x': function (x) { return Math.round(x).toString(16); }\n};\nvar prefixes = ['y', 'z', 'a', 'f', 'p', 'n', '\\xB5', 'm', '', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n/**\n * [[fill]align][sign][#][0][width][grouping_option][.precision][type]\n */\nvar FormatSpecifier = /** @class */ (function () {\n function FormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n this.fill = specifier.fill;\n this.align = specifier.align;\n this.sign = specifier.sign;\n this.symbol = specifier.symbol;\n this.zero = specifier.zero;\n this.width = specifier.width;\n this.comma = specifier.comma;\n this.precision = specifier.precision;\n this.trim = specifier.trim;\n this.type = specifier.type;\n this.string = specifier.string;\n }\n else {\n this.fill = specifier.fill === undefined ? ' ' : String(specifier.fill);\n this.align = specifier.align === undefined ? '>' : String(specifier.align);\n this.sign = specifier.sign === undefined ? '-' : String(specifier.sign);\n this.symbol = specifier.symbol === undefined ? '' : String(specifier.symbol);\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? '' : String(specifier.type);\n this.string = specifier.string;\n }\n }\n return FormatSpecifier;\n}());\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar formatRegEx = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nvar interpolateRegEx = /(#\\{(.*?)\\})/g;\nfunction makeFormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n return new FormatSpecifier(specifier);\n }\n var found = false;\n var string = specifier.replace(interpolateRegEx, function () {\n if (!found) {\n specifier = arguments[2];\n found = true;\n }\n return '#{}';\n });\n var match = formatRegEx.exec(specifier);\n if (!match) {\n throw new Error(\"Invalid format: \" + specifier);\n }\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10],\n string: found ? string : undefined\n });\n}\nfunction tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count);\n var formatSpecifier = makeFormatSpecifier(specifier == undefined ? ',f' : specifier);\n var precision;\n switch (formatSpecifier.type) {\n case 's': {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (formatSpecifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) {\n formatSpecifier.precision = precision;\n }\n return formatPrefix(formatSpecifier, value);\n }\n case '':\n case 'e':\n case 'g':\n case 'p':\n case 'r': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === 'e');\n }\n break;\n }\n case 'f':\n case '%': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionFixed(step))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === '%') * 2;\n }\n break;\n }\n }\n return format(formatSpecifier);\n}\nvar prefixExponent;\nfunction formatPrefixAuto(x, p) {\n if (p === void 0) { p = 0; }\n var d = formatDecimalParts(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3;\n var i = exponent - prefixExponent + 1;\n var n = coefficient.length;\n if (i === n) {\n return coefficient;\n }\n else {\n if (i > n) {\n return coefficient + new Array(i - n + 1).join('0');\n }\n if (i > 0) {\n return coefficient.slice(0, i) + '.' + coefficient.slice(i);\n }\n else {\n var parts = formatDecimalParts(x, Math.max(0, p + i - 1));\n return '0.' + new Array(1 - i).join('0') + parts[0]; // less than 1y!\n }\n }\n}\nfunction formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString('en').replace(/,/g, '')\n : x.toString(10);\n}\nfunction formatGroup(grouping, thousands) {\n return function (value, width) {\n var t = [];\n var i = value.length;\n var j = 0;\n var g = grouping[0];\n var length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) {\n g = Math.max(1, width - length);\n }\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) {\n break;\n }\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n}\nfunction formatNumerals(numerals) {\n return function (value) { return value.replace(/[0-9]/g, function (i) { return numerals[+i]; }); };\n}\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (s[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0) {\n i0 = i;\n }\n i1 = i;\n break;\n default:\n if (!+s[i]) {\n break out;\n }\n if (i0 > 0) {\n i0 = 0;\n }\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\nfunction formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n if (exponent < 0) {\n return '0.' + new Array(-exponent).join('0') + coefficient;\n }\n else {\n if (coefficient.length > exponent + 1) {\n return coefficient.slice(0, exponent + 1) + '.' + coefficient.slice(exponent + 1);\n }\n else {\n return coefficient + new Array(exponent - coefficient.length + 2).join('0');\n }\n }\n}\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns ['123', 0].\nfunction formatDecimalParts(x, p) {\n var sx = p ? x.toExponential(p - 1) : x.toExponential();\n var i = sx.indexOf('e');\n if (i < 0) { // NaN, ±Infinity\n return undefined;\n }\n var coefficient = sx.slice(0, i);\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +sx.slice(i + 1)\n ];\n}\nfunction identity$1(x) {\n return x;\n}\nvar formatDefaultLocale;\nvar format;\nvar formatPrefix;\ndefaultLocale({\n thousands: ',',\n grouping: [3],\n currency: ['$', '']\n});\nfunction defaultLocale(definition) {\n formatDefaultLocale = formatLocale$1(definition);\n format = formatDefaultLocale.format;\n formatPrefix = formatDefaultLocale.formatPrefix;\n}\nfunction exponent(x) {\n var parts = formatDecimalParts(Math.abs(x));\n if (parts) {\n return parts[1];\n }\n return NaN;\n}\nfunction precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\nfunction precisionPrefix(step, value) {\n var x = Math.floor(exponent(value) / 3);\n x = Math.min(8, x);\n x = Math.max(-8, x);\n return Math.max(0, x * 3 - exponent(Math.abs(step)));\n}\nfunction precisionRound(step, max) {\n step = Math.abs(step);\n max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\nfunction formatLocale$1(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined\n ? identity$1\n : formatGroup(Array.prototype.map.call(locale.grouping, Number), String(locale.thousands));\n var currencyPrefix = locale.currency === undefined ? '' : String(locale.currency[0]);\n var currencySuffix = locale.currency === undefined ? '' : String(locale.currency[1]);\n var decimal = locale.decimal === undefined ? '.' : String(locale.decimal);\n var numerals = locale.numerals === undefined\n ? identity$1\n : formatNumerals(Array.prototype.map.call(locale.numerals, String));\n var percent = locale.percent === undefined ? '%' : String(locale.percent);\n var minus = locale.minus === undefined ? '\\u2212' : String(locale.minus);\n var nan = locale.nan === undefined ? 'NaN' : String(locale.nan);\n function newFormat(specifier) {\n var formatSpecifier = makeFormatSpecifier(specifier);\n var fill = formatSpecifier.fill;\n var align = formatSpecifier.align;\n var sign = formatSpecifier.sign;\n var symbol = formatSpecifier.symbol;\n var zero = formatSpecifier.zero;\n var width = formatSpecifier.width;\n var comma = formatSpecifier.comma;\n var precision = formatSpecifier.precision;\n var trim = formatSpecifier.trim;\n var type = formatSpecifier.type;\n // The 'n' type is an alias for ',g'.\n if (type === 'n') {\n comma = true;\n type = 'g';\n }\n else if (!formatTypes[type]) { // The '' type, and any invalid type, is an alias for '.12~g'.\n if (precision === undefined) {\n precision = 12;\n }\n trim = true;\n type = 'g';\n }\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === '0' && align === '=')) {\n zero = true;\n fill = '0';\n align = '=';\n }\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === '$' ? currencyPrefix : symbol === '#' && /[boxX]/.test(type) ? '0' + type.toLowerCase() : '';\n var suffix = symbol === '$' ? currencySuffix : /[%p]/.test(type) ? percent : '';\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type];\n var maybeSuffix = /[defgprs%]/.test(type);\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n if (precision === undefined) {\n precision = 6;\n }\n else if (/[gprs]/.test(type)) {\n precision = Math.max(1, Math.min(21, precision));\n }\n else {\n precision = Math.max(0, Math.min(20, precision));\n }\n function format(x) {\n var valuePrefix = prefix;\n var valueSuffix = suffix;\n var value;\n if (type === 'c') {\n valueSuffix = formatType(+x) + valueSuffix;\n value = '';\n }\n else {\n var nx = +x;\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = x < 0 || 1 / nx < 0;\n // Perform the initial formatting.\n value = isNaN(nx) ? nan : formatType(Math.abs(nx), precision);\n // Trim insignificant zeros.\n if (trim) {\n value = formatTrim(value);\n }\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== '+') {\n valueNegative = false;\n }\n // Compute the prefix and suffix.\n var signPrefix = valueNegative\n ? (sign === '(' ? sign : minus)\n : (sign === '-' || sign === '(' ? '' : sign);\n var signSuffix = valueNegative && sign === '(' ? ')' : '';\n valuePrefix = signPrefix + valuePrefix;\n valueSuffix = (type === 's' ? prefixes[8 + prefixExponent / 3] : '') + valueSuffix + signSuffix;\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n for (var i = 0, n = value.length; i < n; i++) {\n var c = value.charCodeAt(i);\n if (48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n // If the fill character is not '0', grouping is applied before padding.\n if (comma && !zero) {\n value = group(value, Infinity);\n }\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length;\n var padding = length < width ? new Array(width - length + 1).join(fill) : '';\n // If the fill character is '0', grouping is applied after padding.\n if (comma && zero) {\n value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity);\n padding = '';\n }\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case '<':\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case '=':\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case '^':\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n var string = formatSpecifier.string;\n if (string) {\n return string.replace(interpolateRegEx, function () { return numerals(value); });\n }\n return numerals(value);\n }\n return format;\n }\n function formatPrefix(specifier, value) {\n var formatSpecifier = makeFormatSpecifier(specifier);\n formatSpecifier.type = 'f';\n var f = newFormat(formatSpecifier);\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3;\n var k = Math.pow(10, -e);\n var prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * +value) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Maps continuous domain to a continuous range.\n */\nvar LinearScale = /** @class */ (function (_super) {\n __extends$j(LinearScale, _super);\n function LinearScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'linear';\n return _this;\n }\n LinearScale.prototype.ticks = function (count) {\n if (count === void 0) { count = 10; }\n var d = this._domain;\n return ticks(d[0], d[d.length - 1], count);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * @param count Tick count.\n */\n LinearScale.prototype.nice = function (count) {\n if (count === void 0) { count = 10; }\n var d = this.domain;\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var step;\n if (stop < start) {\n step = start;\n start = stop;\n stop = step;\n step = i0;\n i0 = i1;\n i1 = step;\n }\n step = tickIncrement(start, stop, count);\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n }\n else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n this.domain = d;\n }\n else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n this.domain = d;\n }\n };\n LinearScale.prototype.tickFormat = function (count, specifier) {\n var d = this.domain;\n return tickFormat(d[0], d[d.length - 1], count == undefined ? 10 : count, specifier);\n };\n return LinearScale;\n}(ContinuousScale));\n\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar t0 = new Date;\nvar t1 = new Date;\n/**\n * The interval methods don't mutate Date parameters.\n */\nvar TimeInterval = /** @class */ (function () {\n function TimeInterval(floor, offset) {\n this._floor = floor;\n this._offset = offset;\n }\n /**\n * Returns a new date representing the latest interval boundary date before or equal to date.\n * For example, `day.floor(date)` typically returns 12:00 AM local time on the given date.\n * @param date\n */\n TimeInterval.prototype.floor = function (date) {\n date = new Date(+date);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the earliest interval boundary date after or equal to date.\n * @param date\n */\n TimeInterval.prototype.ceil = function (date) {\n date = new Date(+date - 1);\n this._floor(date);\n this._offset(date, 1);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the closest interval boundary date to date.\n * @param date\n */\n TimeInterval.prototype.round = function (date) {\n var d0 = this.floor(date);\n var d1 = this.ceil(date);\n var ms = +date;\n return ms - d0.getTime() < d1.getTime() - ms ? d0 : d1;\n };\n /**\n * Returns a new date equal to date plus step intervals.\n * @param date\n * @param step\n */\n TimeInterval.prototype.offset = function (date, step) {\n if (step === void 0) { step = 1; }\n date = new Date(+date);\n this._offset(date, Math.floor(step));\n return date;\n };\n /**\n * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).\n * @param start\n * @param stop\n * @param step\n */\n TimeInterval.prototype.range = function (start, stop, step) {\n if (step === void 0) { step = 1; }\n var range = [];\n start = this.ceil(start);\n step = Math.floor(step);\n if (start > stop || step <= 0) {\n return range;\n }\n var previous;\n do {\n previous = new Date(+start);\n range.push(previous);\n this._offset(start, step);\n this._floor(start);\n } while (previous < start && start < stop);\n return range;\n };\n // Returns an interval that is a subset of this interval.\n // For example, to create an interval that return 1st, 11th, 21st and 31st of each month:\n // day.filter(date => (date.getDate() - 1) % 10 === 0)\n TimeInterval.prototype.filter = function (test) {\n var _this = this;\n var floor = function (date) {\n if (date instanceof Date) {\n _this._floor(date);\n while (!test(date)) {\n date.setTime(date.getTime() - 1);\n _this._floor(date);\n }\n }\n return date;\n };\n var offset = function (date, step) {\n if (date instanceof Date) {\n if (step < 0) {\n while (++step <= 0) {\n do {\n _this._offset(date, -1);\n } while (!test(date));\n }\n }\n else {\n while (--step >= 0) {\n do {\n _this._offset(date, 1);\n } while (!test(date));\n }\n }\n }\n return date;\n };\n return new TimeInterval(floor, offset);\n };\n return TimeInterval;\n}());\nvar CountableTimeInterval = /** @class */ (function (_super) {\n __extends$i(CountableTimeInterval, _super);\n function CountableTimeInterval(floor, offset, count, field) {\n var _this = _super.call(this, floor, offset) || this;\n _this._count = count;\n _this._field = field;\n return _this;\n }\n /**\n * Returns the number of interval boundaries after start (exclusive) and before or equal to end (inclusive).\n * @param start\n * @param end\n */\n CountableTimeInterval.prototype.count = function (start, end) {\n t0.setTime(+start);\n t1.setTime(+end);\n this._floor(t0);\n this._floor(t1);\n return Math.floor(this._count(t0, t1));\n };\n /**\n * Returns a filtered view of this interval representing every step'th date.\n * The meaning of step is dependent on this interval’s parent interval as defined by the `field` function.\n * @param step\n */\n CountableTimeInterval.prototype.every = function (step) {\n var _this = this;\n var result;\n step = Math.floor(step);\n if (isFinite(step) && step > 0) {\n if (step > 1) {\n var field_1 = this._field;\n if (field_1) {\n result = this.filter(function (d) { return field_1(d) % step === 0; });\n }\n else {\n result = this.filter(function (d) { return _this.count(0, d) % step === 0; });\n }\n }\n else {\n result = this;\n }\n }\n return result;\n };\n return CountableTimeInterval;\n}(TimeInterval));\n\nfunction floor$8(date) {\n return date;\n}\nfunction offset$8(date, milliseconds) {\n date.setTime(date.getTime() + milliseconds);\n}\nfunction count$8(start, end) {\n return end.getTime() - start.getTime();\n}\nvar millisecond = new CountableTimeInterval(floor$8, offset$8, count$8);\n\n// Common time unit sizes in milliseconds.\nvar durationSecond = 1000;\nvar durationMinute = durationSecond * 60;\nvar durationHour = durationMinute * 60;\nvar durationDay = durationHour * 24;\nvar durationWeek = durationDay * 7;\nvar durationMonth = durationDay * 30;\nvar durationYear = durationDay * 365;\n\nfunction floor$7(date) {\n date.setTime(date.getTime() - date.getMilliseconds());\n}\nfunction offset$7(date, seconds) {\n date.setTime(date.getTime() + seconds * durationSecond);\n}\nfunction count$7(start, end) {\n return (end.getTime() - start.getTime()) / durationSecond;\n}\nvar second = new CountableTimeInterval(floor$7, offset$7, count$7);\n\nfunction floor$6(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}\nfunction offset$6(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute);\n}\nfunction count$6(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute;\n}\nfunction field$6(date) {\n return date.getMinutes();\n}\nvar minute = new CountableTimeInterval(floor$6, offset$6, count$6, field$6);\n\nfunction floor$5(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}\nfunction offset$5(date, hours) {\n date.setTime(date.getTime() + hours * durationHour);\n}\nfunction count$5(start, end) {\n return (end.getTime() - start.getTime()) / durationHour;\n}\nfunction field$5(date) {\n return date.getHours();\n}\nvar hour = new CountableTimeInterval(floor$5, offset$5, count$5, field$5);\n\nfunction floor$4(date) {\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$4(date, days) {\n date.setDate(date.getDate() + days);\n}\nfunction count$4(start, end) {\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (end.getTime() - start.getTime() - tzMinuteDelta * durationMinute) / durationDay;\n}\nfunction field$4(date) {\n return date.getDate() - 1;\n}\nvar day = new CountableTimeInterval(floor$4, offset$4, count$4, field$4);\n\n// Set date to n-th day of the week.\nfunction weekday$1(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n // 1..31 1..7\n date.setDate(date.getDate() - (date.getDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setDate(date.getDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n var msDelta = end.getTime() - start.getTime();\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (msDelta - tzMinuteDelta * durationMinute) / durationWeek;\n }\n return new CountableTimeInterval(floor, offset, count);\n}\nvar sunday = weekday$1(0);\nvar monday = weekday$1(1);\nweekday$1(2);\nweekday$1(3);\nvar thursday = weekday$1(4);\nweekday$1(5);\nweekday$1(6);\n\nfunction floor$3(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$3(date, months) {\n date.setMonth(date.getMonth() + months);\n}\nfunction count$3(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}\nfunction field$3(date) {\n return date.getMonth();\n}\nvar month = new CountableTimeInterval(floor$3, offset$3, count$3, field$3);\n\nfunction floor$2(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$2(date, years) {\n date.setFullYear(date.getFullYear() + years);\n}\nfunction count$2(start, end) {\n return end.getFullYear() - start.getFullYear();\n}\nfunction field$2(date) {\n return date.getFullYear();\n}\nvar year = new CountableTimeInterval(floor$2, offset$2, count$2, field$2);\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction complexBisectRight(list, x, map, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n var comparator = ascendingComparator(map);\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) < 0) {\n lo = mid + 1;\n }\n else {\n hi = mid;\n }\n }\n return lo;\n}\nfunction ascendingComparator(map) {\n return function (item, x) {\n return ascending(map(item), x);\n };\n}\n\nfunction floor$1(date) {\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$1(date, days) {\n date.setUTCDate(date.getUTCDate() + days);\n}\nfunction count$1(start, end) {\n return (end.getTime() - start.getTime()) / durationDay;\n}\nfunction field$1(date) {\n return date.getUTCDate() - 1;\n}\nvar utcDay = new CountableTimeInterval(floor$1, offset$1, count$1, field$1);\n\nfunction floor(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset(date, years) {\n date.setUTCFullYear(date.getUTCFullYear() + years);\n}\nfunction count(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}\nfunction field(date) {\n return date.getUTCFullYear();\n}\nvar utcYear = new CountableTimeInterval(floor, offset, count, field);\n\n// Set date to n-th day of the week.\nfunction weekday(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setUTCDate(date.getUTCDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n return (end.getTime() - start.getTime()) / durationWeek;\n }\n return new CountableTimeInterval(floor, offset, count);\n}\nvar utcSunday = weekday(0);\nvar utcMonday = weekday(1);\nweekday(2);\nweekday(3);\nvar utcThursday = weekday(4);\nweekday(5);\nweekday(6);\n\nfunction localDate(d) {\n // For JS Dates the [0, 100) interval is a time warp, a fast forward to the 20th century.\n // For example, -1 is -0001 BC, 0 is already 1900 AD.\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\nfunction utcDate(d) {\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n/**\n * Creates a lookup map for array of names to go from a name to index.\n * @param names\n */\nfunction formatLookup(names) {\n var map = {};\n for (var i = 0, n = names.length; i < n; i++) {\n map[names[i].toLowerCase()] = i;\n }\n return map;\n}\nfunction newYear(y) {\n return {\n y: y,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\nvar percentCharCode = 37;\nvar numberRe = /^\\s*\\d+/; // ignores next directive\nvar percentRe = /^%/;\nvar requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n/**\n * Prepends any character in the `requoteRe` set with a backslash.\n * @param s\n */\nvar requote = function (s) { return s.replace(requoteRe, '\\\\$&'); }; // $& - matched substring\n/**\n * Returns a RegExp that matches any string that starts with any of the given names (case insensitive).\n * @param names\n */\nvar formatRe = function (names) { return new RegExp('^(?:' + names.map(requote).join('|') + ')', 'i'); };\n// A map of padding modifiers to padding strings. Default is `0`.\nvar pads = {\n '-': '',\n '_': ' ',\n '0': '0'\n};\nfunction pad(value, fill, width) {\n var sign = value < 0 ? '-' : '';\n var string = String(sign ? -value : value);\n var length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n/**\n * Create a new time-locale-based object which exposes time-formatting\n * methods for the specified locale definition.\n *\n * @param timeLocale A time locale definition.\n */\nfunction formatLocale(timeLocale) {\n var lDateTime = timeLocale.dateTime;\n var lDate = timeLocale.date;\n var lTime = timeLocale.time;\n var lPeriods = timeLocale.periods;\n var lWeekdays = timeLocale.days;\n var lShortWeekdays = timeLocale.shortDays;\n var lMonths = timeLocale.months;\n var lShortMonths = timeLocale.shortMonths;\n var periodRe = formatRe(lPeriods);\n var periodLookup = formatLookup(lPeriods);\n var weekdayRe = formatRe(lWeekdays);\n var weekdayLookup = formatLookup(lWeekdays);\n var shortWeekdayRe = formatRe(lShortWeekdays);\n var shortWeekdayLookup = formatLookup(lShortWeekdays);\n var monthRe = formatRe(lMonths);\n var monthLookup = formatLookup(lMonths);\n var shortMonthRe = formatRe(lShortMonths);\n var shortMonthLookup = formatLookup(lShortMonths);\n var formats = {\n 'a': formatShortWeekday,\n 'A': formatWeekday,\n 'b': formatShortMonth,\n 'B': formatMonth,\n 'c': undefined,\n 'd': formatDayOfMonth,\n 'e': formatDayOfMonth,\n 'f': formatMicroseconds,\n 'H': formatHour24,\n 'I': formatHour12,\n 'j': formatDayOfYear,\n 'L': formatMilliseconds,\n 'm': formatMonthNumber,\n 'M': formatMinutes,\n 'p': formatPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatSeconds,\n 'u': formatWeekdayNumberMonday,\n 'U': formatWeekNumberSunday,\n 'V': formatWeekNumberISO,\n 'w': formatWeekdayNumberSunday,\n 'W': formatWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatYear,\n 'Y': formatFullYear,\n 'Z': formatZone,\n '%': formatLiteralPercent\n };\n var utcFormats = {\n 'a': formatUTCShortWeekday,\n 'A': formatUTCWeekday,\n 'b': formatUTCShortMonth,\n 'B': formatUTCMonth,\n 'c': undefined,\n 'd': formatUTCDayOfMonth,\n 'e': formatUTCDayOfMonth,\n 'f': formatUTCMicroseconds,\n 'H': formatUTCHour24,\n 'I': formatUTCHour12,\n 'j': formatUTCDayOfYear,\n 'L': formatUTCMilliseconds,\n 'm': formatUTCMonthNumber,\n 'M': formatUTCMinutes,\n 'p': formatUTCPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatUTCSeconds,\n 'u': formatUTCWeekdayNumberMonday,\n 'U': formatUTCWeekNumberSunday,\n 'V': formatUTCWeekNumberISO,\n 'w': formatUTCWeekdayNumberSunday,\n 'W': formatUTCWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatUTCYear,\n 'Y': formatUTCFullYear,\n 'Z': formatUTCZone,\n '%': formatLiteralPercent\n };\n var parses = {\n 'a': parseShortWeekday,\n 'A': parseWeekday,\n 'b': parseShortMonth,\n 'B': parseMonth,\n 'c': parseLocaleDateTime,\n 'd': parseDayOfMonth,\n 'e': parseDayOfMonth,\n 'f': parseMicroseconds,\n 'H': parseHour24,\n 'I': parseHour24,\n 'j': parseDayOfYear,\n 'L': parseMilliseconds,\n 'm': parseMonthNumber,\n 'M': parseMinutes,\n 'p': parsePeriod,\n 'Q': parseUnixTimestamp,\n 's': parseUnixTimestampSeconds,\n 'S': parseSeconds,\n 'u': parseWeekdayNumberMonday,\n 'U': parseWeekNumberSunday,\n 'V': parseWeekNumberISO,\n 'w': parseWeekdayNumberSunday,\n 'W': parseWeekNumberMonday,\n 'x': parseLocaleDate,\n 'X': parseLocaleTime,\n 'y': parseYear,\n 'Y': parseFullYear,\n 'Z': parseZone,\n '%': parseLiteralPercent\n };\n // Recursive definitions.\n formats.x = newFormat(lDate, formats);\n formats.X = newFormat(lTime, formats);\n formats.c = newFormat(lDateTime, formats);\n utcFormats.x = newFormat(lDate, utcFormats);\n utcFormats.X = newFormat(lTime, utcFormats);\n utcFormats.c = newFormat(lDateTime, utcFormats);\n function newParse(specifier, newDate) {\n return function (str) {\n var d = newYear(1900);\n var i = parseSpecifier(d, specifier, str += '', 0);\n if (i != str.length) {\n return undefined;\n }\n // If a UNIX timestamp is specified, return it.\n if ('Q' in d) {\n return new Date(d.Q);\n }\n // The am-pm flag is 0 for AM, and 1 for PM.\n if ('p' in d) {\n d.H = d.H % 12 + d.p * 12;\n }\n // Convert day-of-week and week-of-year to day-of-year.\n if ('V' in d) {\n if (d.V < 1 || d.V > 53) {\n return undefined;\n }\n if (!('w' in d)) {\n d.w = 1;\n }\n if ('Z' in d) {\n var week = utcDate(newYear(d.y));\n var day$1 = week.getUTCDay();\n week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday.floor(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n }\n else {\n var week = newDate(newYear(d.y));\n var day$1 = week.getDay();\n week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday.floor(week);\n week = day.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n }\n else if ('W' in d || 'U' in d) {\n if (!('w' in d)) {\n d.w = 'u' in d\n ? d.u % 7\n : 'W' in d ? 1 : 0;\n }\n var day$1 = 'Z' in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = 'W' in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;\n }\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if ('Z' in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n /**\n * Creates a new function that formats the given Date or timestamp according to specifier.\n * @param specifier\n * @param formats\n */\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [];\n var n = specifier.length;\n var i = -1;\n var j = 0;\n if (!(date instanceof Date)) {\n date = new Date(+date);\n }\n while (++i < n) {\n if (specifier.charCodeAt(i) === percentCharCode) {\n string.push(specifier.slice(j, i)); // copy the chunks of specifier with no directives as is\n var c = specifier.charAt(++i);\n var pad_1 = pads[c];\n if (pad_1 != undefined) { // if format directive has a padding modifier in front of it\n c = specifier.charAt(++i); // fetch the directive itself\n }\n else {\n pad_1 = c === 'e' ? ' ' : '0'; // use the default padding modifier\n }\n var format = formats[c];\n if (format) { // if the directive has a corresponding formatting function\n c = format(date, pad_1); // replace the directive with the formatted date\n }\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join('');\n };\n }\n // Simultaneously walks over the specifier and the parsed string, populating the `d` map with parsed values.\n // The returned number is expected to equal the length of the parsed `string`, if parsing succeeded.\n function parseSpecifier(d, specifier, string, j) {\n // i - `specifier` string index\n // j - parsed `string` index\n var i = 0;\n var n = specifier.length;\n var m = string.length;\n while (i < n) {\n if (j >= m) {\n return -1;\n }\n var code = specifier.charCodeAt(i++);\n if (code === percentCharCode) {\n var char = specifier.charAt(i++);\n var parse = parses[(char in pads ? specifier.charAt(i++) : char)];\n if (!parse || ((j = parse(d, string, j)) < 0)) {\n return -1;\n }\n }\n else if (code != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n // ----------------------------- formats ----------------------------------\n function formatMicroseconds(date, fill) {\n return formatMilliseconds(date, fill) + '000';\n }\n function formatMilliseconds(date, fill) {\n return pad(date.getMilliseconds(), fill, 3);\n }\n function formatSeconds(date, fill) {\n return pad(date.getSeconds(), fill, 2);\n }\n function formatMinutes(date, fill) {\n return pad(date.getMinutes(), fill, 2);\n }\n function formatHour12(date, fill) {\n return pad(date.getHours() % 12 || 12, fill, 2);\n }\n function formatHour24(date, fill) {\n return pad(date.getHours(), fill, 2);\n }\n function formatPeriod(date) {\n return lPeriods[date.getHours() >= 12 ? 1 : 0];\n }\n function formatShortWeekday(date) {\n return lShortWeekdays[date.getDay()];\n }\n function formatWeekday(date) {\n return lWeekdays[date.getDay()];\n }\n function formatWeekdayNumberMonday(date) {\n var dayOfWeek = date.getDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatWeekNumberSunday(date, fill) {\n return pad(sunday.count(year.floor(date), date), fill, 2);\n }\n function formatWeekNumberISO(date, fill) {\n var day = date.getDay();\n date = (day >= 4 || day === 0) ? thursday.floor(date) : thursday.ceil(date);\n var yearStart = year.floor(date);\n return pad(thursday.count(yearStart, date) + (yearStart.getDay() === 4 ? 1 : 0), fill, 2);\n }\n function formatWeekdayNumberSunday(date) {\n return date.getDay();\n }\n function formatWeekNumberMonday(date, fill) {\n return pad(monday.count(year.floor(date), date), fill, 2);\n }\n function formatDayOfMonth(date, fill) {\n return pad(date.getDate(), fill, 2);\n }\n function formatDayOfYear(date, fill) {\n return pad(1 + day.count(year.floor(date), date), fill, 3);\n }\n function formatShortMonth(date) {\n return lShortMonths[date.getMonth()];\n }\n function formatMonth(date) {\n return lMonths[date.getMonth()];\n }\n function formatMonthNumber(date, fill) {\n return pad(date.getMonth() + 1, fill, 2);\n }\n function formatYear(date, fill) {\n return pad(date.getFullYear() % 100, fill, 2);\n }\n function formatFullYear(date, fill) {\n return pad(date.getFullYear() % 10000, fill, 4);\n }\n function formatZone(date) {\n var z = date.getTimezoneOffset();\n return (z > 0 ? '-' : (z *= -1, '+')) + pad(Math.floor(z / 60), '0', 2) + pad(z % 60, '0', 2);\n }\n // -------------------------- UTC formats -----------------------------------\n function formatUTCMicroseconds(date, fill) {\n return formatUTCMilliseconds(date, fill) + '000';\n }\n function formatUTCMilliseconds(date, fill) {\n return pad(date.getUTCMilliseconds(), fill, 3);\n }\n function formatUTCSeconds(date, fill) {\n return pad(date.getUTCSeconds(), fill, 2);\n }\n function formatUTCMinutes(date, fill) {\n return pad(date.getUTCMinutes(), fill, 2);\n }\n function formatUTCHour12(date, fill) {\n return pad(date.getUTCHours() % 12 || 12, fill, 2);\n }\n function formatUTCHour24(date, fill) {\n return pad(date.getUTCHours(), fill, 2);\n }\n function formatUTCPeriod(date) {\n return lPeriods[date.getUTCHours() >= 12 ? 1 : 0];\n }\n function formatUTCDayOfMonth(date, fill) {\n return pad(date.getUTCDate(), fill, 2);\n }\n function formatUTCDayOfYear(date, fill) {\n return pad(1 + utcDay.count(utcYear.floor(date), date), fill, 3);\n }\n function formatUTCMonthNumber(date, fill) {\n return pad(date.getUTCMonth() + 1, fill, 2);\n }\n function formatUTCShortMonth(date) {\n return lShortMonths[date.getUTCMonth()];\n }\n function formatUTCMonth(date) {\n return lMonths[date.getUTCMonth()];\n }\n function formatUTCShortWeekday(date) {\n return lShortWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekday(date) {\n return lWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekdayNumberMonday(date) {\n var dayOfWeek = date.getUTCDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatUTCWeekNumberSunday(date, fill) {\n return pad(utcSunday.count(utcYear.floor(date), date), fill, 2);\n }\n function formatUTCWeekNumberISO(date, fill) {\n var day = date.getUTCDay();\n date = (day >= 4 || day === 0) ? utcThursday.floor(date) : utcThursday.ceil(date);\n var yearStart = utcYear.floor(date);\n return pad(utcThursday.count(yearStart, date) + (yearStart.getUTCDay() === 4 ? 1 : 0), fill, 4);\n }\n function formatUTCWeekdayNumberSunday(date) {\n return date.getUTCDay();\n }\n function formatUTCWeekNumberMonday(date, fill) {\n return pad(utcMonday.count(utcYear.floor(date), date), fill, 2);\n }\n function formatUTCYear(date, fill) {\n return pad(date.getUTCFullYear() % 100, fill, 2);\n }\n function formatUTCFullYear(date, fill) {\n return pad(date.getUTCFullYear() % 10000, fill, 4);\n }\n function formatUTCZone() {\n return '+0000';\n }\n function formatLiteralPercent(date) {\n return '%';\n }\n function formatUnixTimestamp(date) {\n return date.getTime();\n }\n function formatUnixTimestampSeconds(date) {\n return Math.floor(date.getTime() / 1000);\n }\n // ------------------------------- parsers ------------------------------------\n function parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(parseFloat(n[0]) / 1000), i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = parseFloat(n[0]) - 1, i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, lDateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, lDate, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, lTime, string, i);\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|^([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || '00')), i + n[0].length) : -1;\n }\n function parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n return {\n format: function (specifier) {\n var f = newFormat(specifier, formats);\n f.toString = function () { return specifier; };\n return f;\n },\n parse: function (specifier) {\n var p = newParse(specifier, localDate);\n p.toString = function () { return specifier; };\n return p;\n },\n utcFormat: function (specifier) {\n var f = newFormat(specifier, utcFormats);\n f.toString = function () { return specifier; };\n return f;\n },\n utcParse: function (specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function () { return specifier; };\n return p;\n }\n };\n}\n\nvar locale;\nsetDefaultLocale({\n dateTime: '%x, %X',\n date: '%-m/%-d/%Y',\n time: '%-I:%M:%S %p',\n periods: ['AM', 'PM'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n});\nfunction setDefaultLocale(definition) {\n return locale = formatLocale(definition);\n}\n\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar TimeScale = /** @class */ (function (_super) {\n __extends$h(TimeScale, _super);\n function TimeScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'time';\n _this.year = year;\n _this.month = month;\n _this.week = sunday;\n _this.day = day;\n _this.hour = hour;\n _this.minute = minute;\n _this.second = second;\n _this.millisecond = millisecond;\n _this.format = locale.format;\n /**\n * Array of default tick intervals in the following format:\n *\n * [\n * interval (unit of time),\n * number of units (step),\n * the length of that number of units in milliseconds\n * ]\n */\n _this.tickIntervals = [\n [_this.second, 1, durationSecond],\n [_this.second, 5, 5 * durationSecond],\n [_this.second, 15, 15 * durationSecond],\n [_this.second, 30, 30 * durationSecond],\n [_this.minute, 1, durationMinute],\n [_this.minute, 5, 5 * durationMinute],\n [_this.minute, 15, 15 * durationMinute],\n [_this.minute, 30, 30 * durationMinute],\n [_this.hour, 1, durationHour],\n [_this.hour, 3, 3 * durationHour],\n [_this.hour, 6, 6 * durationHour],\n [_this.hour, 12, 12 * durationHour],\n [_this.day, 1, durationDay],\n [_this.day, 2, 2 * durationDay],\n [_this.week, 1, durationWeek],\n [_this.month, 1, durationMonth],\n [_this.month, 3, 3 * durationMonth],\n [_this.year, 1, durationYear]\n ];\n _this.formatMillisecond = _this.format('.%L');\n _this.formatSecond = _this.format(':%S');\n _this.formatMinute = _this.format('%I:%M');\n _this.formatHour = _this.format('%I %p');\n _this.formatDay = _this.format('%a %d');\n _this.formatWeek = _this.format('%b %d');\n _this.formatMonth = _this.format('%B');\n _this.formatYear = _this.format('%Y');\n _this._domain = [new Date(2000, 0, 1), new Date(2000, 0, 2)];\n return _this;\n }\n TimeScale.prototype.defaultTickFormat = function (date) {\n return (this.second.floor(date) < date\n ? this.formatMillisecond\n : this.minute.floor(date) < date\n ? this.formatSecond\n : this.hour.floor(date) < date\n ? this.formatMinute\n : this.day.floor(date) < date\n ? this.formatHour\n : this.month.floor(date) < date\n ? (this.week.floor(date) < date ? this.formatDay : this.formatWeek)\n : this.year.floor(date) < date\n ? this.formatMonth\n : this.formatYear)(date);\n };\n /**\n *\n * @param interval If the `interval` is a number, it's interpreted as the desired tick count\n * and the method tries to pick an appropriate interval automatically, based on the extent of the domain.\n * If the `interval` is `undefined`, it defaults to `10`.\n * If the `interval` is a time interval, simply use it.\n * @param start The start time (timestamp).\n * @param stop The end time (timestamp).\n * @param step Number of intervals between ticks.\n */\n TimeScale.prototype.tickInterval = function (interval, start, stop, step) {\n var _a;\n if (typeof interval === 'number') {\n var tickCount = interval;\n var tickIntervals = this.tickIntervals;\n var target = Math.abs(stop - start) / tickCount;\n var i = complexBisectRight(tickIntervals, target, function (interval) { return interval[2]; });\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, tickCount);\n interval = this.year;\n }\n else if (i) {\n _a = __read(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2), interval = _a[0], step = _a[1];\n }\n else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = this.millisecond;\n }\n }\n return step == undefined ? interval : interval.every(step);\n };\n Object.defineProperty(TimeScale.prototype, \"domain\", {\n get: function () {\n return _super.prototype.getDomain.call(this).map(function (t) { return new Date(t); });\n },\n set: function (values) {\n _super.prototype.setDomain.call(this, Array.prototype.map.call(values, function (t) { return t instanceof Date ? +t : +new Date(+t); }));\n },\n enumerable: true,\n configurable: true\n });\n TimeScale.prototype.invert = function (y) {\n return new Date(_super.prototype.invert.call(this, y));\n };\n /**\n * Returns uniformly-spaced dates that represent the scale's domain.\n * @param interval The desired tick count or a time interval object.\n */\n TimeScale.prototype.ticks = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var t0 = d[0];\n var t1 = d[d.length - 1];\n var reverse = t1 < t0;\n if (reverse) {\n var _ = t0;\n t0 = t1;\n t1 = _;\n }\n var t = this.tickInterval(interval, t0, t1);\n var i = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return reverse ? i.reverse() : i;\n };\n /**\n * Returns a time format function suitable for displaying tick values.\n * @param count Ignored. Used only to satisfy the {@link Scale} interface.\n * @param specifier If the specifier string is provided, this method is equivalent to\n * the {@link TimeLocaleObject.format} method.\n * If no specifier is provided, this method returns the default time format function.\n */\n TimeScale.prototype.tickFormat = function (_count, specifier) {\n return specifier == undefined ? this.defaultTickFormat.bind(this) : this.format(specifier);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.\n * @param interval\n */\n TimeScale.prototype.nice = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var i = this.tickInterval(interval, d[0], d[d.length - 1]);\n if (i) {\n this.domain = this._nice(d, i);\n }\n };\n TimeScale.prototype._nice = function (domain, interval) {\n var _a, _b;\n domain = domain.slice();\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n };\n return TimeScale;\n}(ContinuousScale));\n\n(undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction identity(value) {\n return value;\n}\nfunction extent(values, predicate, map) {\n var transform = map || identity;\n var n = values.length;\n var i = -1;\n var value;\n var min;\n var max;\n while (++i < n) { // Find the first value.\n value = values[i];\n if (predicate(value)) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n value = values[i];\n if (predicate(value)) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n }\n }\n }\n }\n return min === undefined || max === undefined ? undefined : [transform(min), transform(max)];\n}\n\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SparklineAxis = /** @class */ (function (_super) {\n __extends$g(SparklineAxis, _super);\n function SparklineAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'category';\n _this.stroke = 'rgb(204, 214, 235)';\n _this.strokeWidth = 1;\n return _this;\n }\n return SparklineAxis;\n}(Observable));\nvar Sparkline = /** @class */ (function (_super) {\n __extends$g(Sparkline, _super);\n function Sparkline() {\n var _this = _super.call(this) || this;\n _this.id = createId(_this);\n _this.seriesRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n _this._context = undefined;\n _this._container = undefined;\n _this._data = undefined;\n _this.padding = new Padding(3);\n _this.xKey = 'x';\n _this.yKey = 'y';\n _this.dataType = undefined;\n _this.xData = [];\n _this.yData = [];\n // Minimum y value in provided data.\n _this.min = undefined;\n // Maximum y value in provided data.\n _this.max = undefined;\n _this.yScale = new LinearScale();\n _this.axis = new SparklineAxis();\n _this.highlightStyle = {\n size: 6,\n fill: 'yellow',\n stroke: 'silver',\n strokeWidth: 1,\n };\n _this._width = 100;\n _this._height = 100;\n _this.smallestInterval = undefined;\n _this.layoutId = 0;\n _this.defaultDateFormatter = locale.format('%m/%d/%y, %H:%M:%S');\n _this._onMouseMove = _this.onMouseMove.bind(_this);\n _this._onMouseOut = _this.onMouseOut.bind(_this);\n var root = new Group();\n _this.rootGroup = root;\n var element = document.createElement('div');\n element.setAttribute('class', 'ag-sparkline-wrapper');\n var scene = new Scene(document);\n _this.scene = scene;\n _this.canvasElement = scene.canvas.element;\n scene.root = root;\n scene.container = element;\n scene.resize(_this.width, _this.height);\n _this.seriesRect.width = _this.width;\n _this.seriesRect.height = _this.height;\n // one style element for tooltip styles per document\n if (Sparkline.tooltipDocuments.indexOf(document) === -1) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss;\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Sparkline.tooltipDocuments.push(document);\n }\n _this.setupDomEventListeners(_this.scene.canvas.element);\n return _this;\n }\n Object.defineProperty(Sparkline.prototype, \"context\", {\n get: function () {\n return this._context;\n },\n set: function (value) {\n if (this._context !== value) {\n this._context = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n var parentNode = this.canvasElement.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.canvasElement);\n }\n if (value) {\n value.appendChild(this.canvasElement);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n if (this._data !== value) {\n this._data = value;\n this.processData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.scene.resize(value, this.height);\n this.scheduleLayout();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.scene.resize(this.width, value);\n this.scheduleLayout();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Generate node data from processed data.\n * Produce data joins.\n * Update selection's nodes using node data.\n */\n Sparkline.prototype.update = function () { };\n // Update y scale based on processed data.\n Sparkline.prototype.updateYScale = function () {\n this.updateYScaleRange();\n this.updateYScaleDomain();\n };\n // Update y scale domain based on processed data.\n Sparkline.prototype.updateYScaleDomain = function () { };\n // Update y scale range based on height and padding (seriesRect).\n Sparkline.prototype.updateYScaleRange = function () {\n var _a = this, yScale = _a.yScale, seriesRect = _a.seriesRect;\n yScale.range = [seriesRect.height, 0];\n };\n // Update x scale based on processed data.\n Sparkline.prototype.updateXScale = function () {\n var type = this.axis.type;\n this.xScale = this.getXScale(type);\n this.updateXScaleRange();\n this.updateXScaleDomain();\n };\n // Update x scale range based on width and padding (seriesRect).\n Sparkline.prototype.updateXScaleRange = function () {\n this.xScale.range = [0, this.seriesRect.width];\n };\n // Update x scale domain based on processed data and type of scale.\n Sparkline.prototype.updateXScaleDomain = function () {\n var _a = this, xData = _a.xData, xScale = _a.xScale;\n var xMinMax;\n if (xScale instanceof LinearScale) {\n xMinMax = extent(xData, isNumber);\n }\n else if (xScale instanceof TimeScale) {\n xMinMax = extent(xData, isContinuous);\n }\n this.xScale.domain = xMinMax ? xMinMax.slice() : xData;\n };\n /**\n * Return xScale instance based on the provided type or return a `BandScale` by default.\n * The default type is `category`.\n * @param type\n */\n Sparkline.prototype.getXScale = function (type) {\n if (type === void 0) { type = 'category'; }\n switch (type) {\n case 'number':\n return new LinearScale();\n case 'time':\n return new TimeScale();\n case 'category':\n default:\n return new BandScale();\n }\n };\n // Update axis line.\n Sparkline.prototype.updateAxisLine = function () { };\n // Update X and Y scales and the axis line.\n Sparkline.prototype.updateAxes = function () {\n this.updateYScale();\n this.updateXScale();\n this.updateAxisLine();\n };\n // Update horizontal and vertical crosshair lines.\n Sparkline.prototype.updateCrosshairs = function () {\n this.updateXCrosshairLine();\n this.updateYCrosshairLine();\n };\n // Using processed data, generate data that backs visible nodes.\n Sparkline.prototype.generateNodeData = function () {\n return [];\n };\n // Returns persisted node data associated with the sparkline's data.\n Sparkline.prototype.getNodeData = function () {\n return [];\n };\n // Update the selection's nodes.\n Sparkline.prototype.updateNodes = function () { };\n // Update the vertical crosshair line.\n Sparkline.prototype.updateXCrosshairLine = function () { };\n // Update the horizontal crosshair line.\n Sparkline.prototype.updateYCrosshairLine = function () { };\n Sparkline.prototype.highlightDatum = function (closestDatum) {\n this.updateNodes();\n };\n Sparkline.prototype.dehighlightDatum = function () {\n this.highlightedDatum = undefined;\n this.updateNodes();\n this.updateCrosshairs();\n };\n /**\n * Highlight closest datum and display tooltip if enabled.\n * Only update if necessary, i.e. only update if the highlighted datum is different from previously highlighted datum,\n * or if there is no previously highlighted datum.\n * @param event\n */\n Sparkline.prototype.onMouseMove = function (event) {\n var closestDatum = this.pickClosestSeriesNodeDatum(event.offsetX, event.offsetY);\n if (!closestDatum) {\n return;\n }\n var oldHighlightedDatum = this.highlightedDatum;\n this.highlightedDatum = closestDatum;\n if ((this.highlightedDatum && !oldHighlightedDatum) ||\n (this.highlightedDatum && oldHighlightedDatum && this.highlightedDatum !== oldHighlightedDatum)) {\n this.highlightDatum(closestDatum);\n this.updateCrosshairs();\n }\n if (this.tooltip.enabled) {\n this.handleTooltip(event, closestDatum);\n }\n };\n /**\n * Dehighlight all nodes and remove tooltip.\n * @param event\n */\n Sparkline.prototype.onMouseOut = function (event) {\n this.dehighlightDatum();\n this.tooltip.toggle(false);\n };\n // Fetch required values from the data object and process them.\n Sparkline.prototype.processData = function () {\n var _this = this;\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData;\n if (!data || this.invalidData(this.data)) {\n return;\n }\n yData.length = 0;\n xData.length = 0;\n var n = data.length;\n var dataType = this.getDataType(data);\n this.dataType = dataType;\n var xValueType = this.axis.type;\n var xType = xValueType !== 'number' && xValueType !== 'time' ? 'category' : xValueType;\n var isContinuousX = xType === 'number' || xType === 'time';\n var setSmallestXInterval = function (curr, prev) {\n if (_this.smallestInterval == undefined) {\n _this.smallestInterval = { x: Infinity, y: Infinity };\n }\n var x = _this.smallestInterval.x;\n var interval = Math.abs(curr - prev);\n if (interval > 0 && interval < x) {\n _this.smallestInterval.x = interval;\n }\n };\n var prevX;\n if (dataType === 'number') {\n for (var i = 0; i < n; i++) {\n var xDatum = i;\n var yDatum = data[i];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n else if (dataType === 'array') {\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (Array.isArray(datum)) {\n var xDatum = datum[0];\n var yDatum = datum[1];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n else if (dataType === 'object') {\n var _b = this, yKey = _b.yKey, xKey = _b.xKey;\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (typeof datum === 'object' && !Array.isArray(datum)) {\n var xDatum = datum[xKey];\n var yDatum = datum[yKey];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n // update axes\n this.updateAxes();\n // produce data joins and update selection's nodes\n this.update();\n };\n /**\n * Return the type of data provided to the sparkline based on the first truthy value in the data array.\n * If the value is not a number, array or object, return `undefined`.\n * @param data\n */\n Sparkline.prototype.getDataType = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n if (datum != undefined) {\n if (isNumber(datum)) {\n return 'number';\n }\n else if (Array.isArray(datum)) {\n return 'array';\n }\n else if (typeof datum === 'object') {\n return 'object';\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Return the given value depending on the type of axis.\n * Return `undefined` if the value is invalid for the given axis type.\n * @param value\n */\n Sparkline.prototype.getDatum = function (value, type) {\n if ((type === 'number' && isNumber(value)) || (type === 'time' && (isNumber(value) || isDate(value)))) {\n return value;\n }\n else if (type === 'category') {\n if (isString(value) || isDate(value) || isNumber(value)) {\n return { toString: function () { return String(value); } };\n }\n else if (isStringObject(value)) {\n return value;\n }\n }\n };\n Object.defineProperty(Sparkline.prototype, \"layoutScheduled\", {\n /**\n * Only `true` while we are waiting for the layout to start.\n * This will be `false` if the layout has already started and is ongoing.\n */\n get: function () {\n return !!this.layoutId;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Execute update method on the next available screen repaint to make changes to the canvas.\n * If we are waiting for a layout to start and a new layout is requested,\n * cancel the previous layout using the non 0 integer (this.layoutId) returned from requestAnimationFrame.\n */\n Sparkline.prototype.scheduleLayout = function () {\n var _this = this;\n if (this.layoutId) {\n cancelAnimationFrame(this.layoutId);\n }\n this.layoutId = requestAnimationFrame(function () {\n _this.setSparklineDimensions();\n if (_this.invalidData(_this.data)) {\n return;\n }\n // update axes ranges\n _this.updateXScaleRange();\n _this.updateYScaleRange();\n // update axis line\n _this.updateAxisLine();\n // produce data joins and update selection's nodes\n _this.update();\n _this.layoutId = 0;\n });\n };\n Sparkline.prototype.setSparklineDimensions = function () {\n var _a = this, width = _a.width, height = _a.height, padding = _a.padding, seriesRect = _a.seriesRect, rootGroup = _a.rootGroup;\n var shrunkWidth = width - padding.left - padding.right;\n var shrunkHeight = height - padding.top - padding.bottom;\n seriesRect.width = shrunkWidth;\n seriesRect.height = shrunkHeight;\n seriesRect.x = padding.left;\n seriesRect.y = padding.top;\n rootGroup.translationX = seriesRect.x;\n rootGroup.translationY = seriesRect.y;\n };\n /**\n * Return the closest data point to x/y canvas coordinates.\n * @param x\n * @param y\n */\n Sparkline.prototype.pickClosestSeriesNodeDatum = function (x, y) {\n var minDistance = Infinity;\n var closestDatum;\n var hitPoint = this.rootGroup.transformPoint(x, y);\n var nodeData = this.getNodeData();\n for (var i = 0; i < nodeData.length; i++) {\n var datum = nodeData[i];\n if (!datum.point) {\n return;\n }\n var distance = this.getDistance(hitPoint, datum.point);\n if (distance <= minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n }\n return closestDatum;\n };\n /**\n * Return the relevant distance between two points.\n * The distance will be calculated based on the x value of the points for all sparklines except bar sparkline, where the distance is based on the y values.\n * @param x\n * @param y\n */\n Sparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.x - p2.x);\n };\n /**\n * calculate x/y coordinates for tooltip based on coordinates of highlighted datum, position of canvas and page offset.\n * @param datum\n */\n Sparkline.prototype.handleTooltip = function (event, datum) {\n var seriesDatum = datum.seriesDatum;\n var canvasElement = this.canvasElement;\n var clientX = event.clientX, clientY = event.clientY;\n // confine tooltip to sparkline width if tooltip container not provided.\n if (this.tooltip.container == undefined) {\n this.tooltip.container = canvasElement;\n }\n var meta = {\n pageX: clientX,\n pageY: clientY,\n };\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n // check if tooltip is enabled for this specific data point\n var enabled = this.tooltip.enabled;\n if (this.tooltip.renderer) {\n var tooltipRendererResult = this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n });\n enabled =\n typeof tooltipRendererResult !== 'string' && tooltipRendererResult.enabled !== undefined\n ? tooltipRendererResult.enabled\n : enabled;\n }\n var html = enabled && seriesDatum.y !== undefined && this.getTooltipHtml(datum);\n if (html) {\n this.tooltip.show(meta, html);\n }\n };\n Sparkline.prototype.formatNumericDatum = function (datum) {\n return String(Math.round(datum * 10) / 10);\n };\n Sparkline.prototype.formatDatum = function (datum) {\n var type = this.axis.type || 'category';\n if (type === 'number' && typeof datum === 'number') {\n return this.formatNumericDatum(datum);\n }\n else if (type === 'time' && (datum instanceof Date || isNumber(datum))) {\n return this.defaultDateFormatter(datum);\n }\n else {\n return String(datum);\n }\n };\n Sparkline.prototype.setupDomEventListeners = function (chartElement) {\n chartElement.addEventListener('mousemove', this._onMouseMove);\n chartElement.addEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.cleanupDomEventListeners = function (chartElement) {\n chartElement.removeEventListener('mousemove', this._onMouseMove);\n chartElement.removeEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.invalidData = function (data) {\n return !data || !Array.isArray(data) || data.length === 0;\n };\n /**\n * Cleanup and remove canvas element from the DOM.\n */\n Sparkline.prototype.destroy = function () {\n this.scene.container = undefined;\n // remove canvas element from the DOM\n this.container = undefined;\n this.cleanupDomEventListeners(this.scene.canvas.element);\n };\n Sparkline.tooltipDocuments = [];\n return Sparkline;\n}(Observable));\n\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction toTooltipHtml(input, defaults) {\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults || {};\n var _a = input.content, content = _a === void 0 ? defaults.content || '' : _a, _b = input.title, title = _b === void 0 ? defaults.title || undefined : _b, _c = input.color, color = _c === void 0 ? defaults.color : _c, _d = input.backgroundColor, backgroundColor = _d === void 0 ? defaults.backgroundColor : _d, _e = input.opacity, opacity = _e === void 0 ? defaults.opacity || 1 : _e;\n var titleHtml;\n var contentHtml;\n if (color) {\n titleHtml = title\n ? \"\" + title + \"\"\n : '';\n contentHtml = \"\" + content + \"\";\n }\n else {\n titleHtml = title ? \"\" + title + \"\" : '';\n contentHtml = \"\" + content + \"\";\n }\n if (backgroundColor) {\n var bgColor = Color.fromString(backgroundColor.toLowerCase());\n var r = bgColor.r, g = bgColor.g, b = bgColor.b; bgColor.a;\n // TODO: combine a and opacity for alpha?\n var alpha = opacity;\n var bgColorWithAlpha = Color.fromArray([r, g, b, alpha]);\n var bgColorRgbaString = bgColorWithAlpha.toRgbaString();\n return \"
\\n \" + titleHtml + \"\\n \" + contentHtml + \"\\n
\";\n }\n else {\n return \"
\\n \" + titleHtml + \"\\n \" + contentHtml + \"\\n
\";\n }\n}\nvar SparklineTooltip = /** @class */ (function (_super) {\n __extends$f(SparklineTooltip, _super);\n function SparklineTooltip() {\n var _this = _super.call(this) || this;\n _this.element = document.createElement('div');\n _this.enabled = true;\n _this.container = undefined;\n _this.xOffset = 10;\n _this.yOffset = 0;\n _this.renderer = undefined;\n var tooltipRoot = document.body;\n tooltipRoot.appendChild(_this.element);\n return _this;\n }\n SparklineTooltip.prototype.isVisible = function () {\n var element = this.element;\n if (element.classList) {\n return !element.classList.contains(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n // IE11\n var classes = element.getAttribute('class');\n if (classes) {\n return classes.split(' ').indexOf(SparklineTooltip.class + \"-wrapper-hidden\") < 0;\n }\n return false;\n };\n SparklineTooltip.prototype.updateClass = function (visible) {\n var classList = [SparklineTooltip.class + \"-wrapper\"];\n if (visible !== true) {\n classList.push(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n this.element.setAttribute('class', classList.join(' '));\n };\n SparklineTooltip.prototype.show = function (meta, html) {\n this.toggle(false);\n var element = this.element;\n if (html !== undefined) {\n element.innerHTML = html;\n }\n else if (!element.innerHTML) {\n return;\n }\n var left = meta.pageX + this.xOffset;\n var top = meta.pageY + this.yOffset;\n var tooltipRect = element.getBoundingClientRect();\n var maxLeft = window.innerWidth - tooltipRect.width;\n if (this.container) {\n var containerRect = this.container.getBoundingClientRect();\n maxLeft = containerRect.left + (containerRect.width - tooltipRect.width);\n }\n if (left > maxLeft) {\n left = meta.pageX - element.clientWidth - this.xOffset;\n }\n element.style.left = Math.round(left) + \"px\";\n element.style.top = Math.round(top) + \"px\";\n this.toggle(true);\n };\n SparklineTooltip.prototype.toggle = function (visible) {\n this.updateClass(visible);\n };\n SparklineTooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n };\n SparklineTooltip.class = 'ag-sparkline-tooltip';\n return SparklineTooltip;\n}(Observable));\n\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Marker = /** @class */ (function (_super) {\n __extends$e(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._size = 3;\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n set: function (value) {\n if (this._size !== value) {\n this._size = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return Marker;\n}(Shape));\n\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Circle = /** @class */ (function (_super) {\n __extends$d(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Circle.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Circle.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var radius = size / 2;\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, 2 * Math.PI, false);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Circle.className = 'Circle';\n return Circle;\n}(Marker));\n\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Diamond = /** @class */ (function (_super) {\n __extends$c(Diamond, _super);\n function Diamond() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Diamond.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Diamond.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Diamond.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var hs = size / 2;\n ctx.beginPath();\n ctx.moveTo(x, (y -= hs));\n ctx.lineTo((x += hs), (y += hs));\n ctx.lineTo((x -= hs), (y += hs));\n ctx.lineTo((x -= hs), (y -= hs));\n ctx.lineTo((x + hs), (y - hs));\n ctx.closePath();\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Diamond.className = 'Diamond';\n return Diamond;\n}(Marker));\n\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Square = /** @class */ (function (_super) {\n __extends$b(Square, _super);\n function Square() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Square.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Square.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Square.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var hs = size / 2;\n ctx.beginPath();\n ctx.moveTo((x -= hs), (y -= hs));\n ctx.lineTo((x += size), y);\n ctx.lineTo(x, (y += size));\n ctx.lineTo((x -= size), y);\n ctx.lineTo(x, (y -= size));\n ctx.closePath();\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Square.className = 'Square';\n return Square;\n}(Marker));\n\nfunction getMarker(shape) {\n switch (shape) {\n case 'circle':\n return Circle;\n case 'square':\n return Square;\n case 'diamond':\n return Diamond;\n default:\n return Circle;\n }\n}\n\nfunction getLineDash(lineCap, lineDash) {\n if (lineDash === void 0) { lineDash = 'solid'; }\n var buttOrNull = {\n solid: [],\n dash: [4, 3],\n dot: [1, 3],\n dashDot: [4, 3, 1, 3],\n dashDotDot: [4, 3, 1, 3, 1, 3],\n shortDot: [1, 1],\n shortDash: [3, 1],\n shortDashDot: [3, 1, 1, 1],\n shortDashDotDot: [3, 1, 1, 1, 1, 1],\n longDash: [8, 3],\n longDashDot: [8, 3, 1, 3],\n longDashDotDot: [8, 3, 1, 3, 1, 3]\n };\n var roundOrSquare = {\n solid: [],\n dash: [3, 3],\n dot: [0, 3],\n dashDot: [3, 3, 0, 3],\n dashDotDot: [3, 3, 0, 3, 0, 3],\n shortDot: [0, 2],\n shortDash: [2, 2],\n shortDashDot: [2, 2, 0, 2],\n shortDashDotDot: [2, 2, 0, 2, 0, 2],\n longDash: [7, 3],\n longDashDot: [7, 3, 0, 3],\n longDashDotDot: [7, 3, 0, 3, 0, 3]\n };\n if (lineCap === 'round' || lineCap === 'square') {\n if (roundOrSquare[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return roundOrSquare.solid;\n }\n return roundOrSquare[lineDash];\n }\n if (buttOrNull[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return buttOrNull.solid;\n }\n return buttOrNull[lineDash];\n}\n\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SparklineMarker$1 = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine$1 = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs$1 = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar AreaSparkline = /** @class */ (function (_super) {\n __extends$a(AreaSparkline, _super);\n function AreaSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgba(124, 181, 236, 0.25)';\n _this.strokePath = new Path();\n _this.fillPath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.areaSparklineGroup = new Group();\n _this.fillPathData = [];\n _this.strokePathData = [];\n _this.xAxisLine = new Line();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers).selectAll();\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker$1();\n _this.line = new SparklineLine$1();\n _this.crosshairs = new SparklineCrosshairs$1();\n _this.rootGroup.append(_this.areaSparklineGroup);\n _this.areaSparklineGroup.append([\n _this.fillPath,\n _this.xAxisLine,\n _this.strokePath,\n _this.xCrosshairLine,\n _this.yCrosshairLine,\n _this.markers,\n ]);\n return _this;\n }\n AreaSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n /**\n * If marker shape is changed, this method should be called to remove the previous marker nodes selection.\n */\n AreaSparkline.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.scheduleLayout();\n };\n AreaSparkline.prototype.update = function () {\n var data = this.generateNodeData();\n if (!data) {\n return;\n }\n var nodeData = data.nodeData, fillData = data.fillData, strokeData = data.strokeData;\n this.markerSelectionData = nodeData;\n this.fillPathData = fillData;\n this.strokePathData = strokeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateStroke(strokeData);\n this.updateFill(fillData);\n };\n AreaSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n yScale.domain = [yMin, yMax];\n };\n AreaSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var n = yData.length;\n var nodeData = [];\n var fillData = [];\n var strokeData = [];\n var firstValidX;\n var lastValidX;\n var previousX;\n var nextX;\n var yZero = yScale.convert(0);\n for (var i = 0; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n // if this iteration is not the last, set nextX using the next value in the data array\n if (i + 1 < n) {\n nextX = xScale.convert(xData[i + 1]) + offsetX;\n }\n // set stroke data regardless of missing/ undefined values. Undefined values will be handled in the updateStroke() method\n strokeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n if (yDatum === undefined && previousX !== undefined) {\n // if yDatum is undefined and there is a valid previous data point, add a phantom point at yZero\n // if a next data point exists, add a phantom point at yZero at the next X\n fillData.push({ seriesDatum: undefined, point: { x: previousX, y: yZero } });\n if (nextX !== undefined) {\n fillData.push({ seriesDatum: undefined, point: { x: nextX, y: yZero } });\n }\n }\n else if (yDatum !== undefined) {\n fillData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n // set node data only if yDatum is not undefined. These values are used in the updateSelection() method to update markers\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n firstValidX = firstValidX !== undefined ? firstValidX : x;\n lastValidX = x;\n }\n previousX = x;\n }\n // phantom points for creating closed area\n fillData.push({ seriesDatum: undefined, point: { x: lastValidX, y: yZero } }, { seriesDatum: undefined, point: { x: firstValidX, y: yZero } });\n return { nodeData: nodeData, fillData: fillData, strokeData: strokeData };\n };\n AreaSparkline.prototype.updateAxisLine = function () {\n var _a = this, xScale = _a.xScale, yScale = _a.yScale, axis = _a.axis, xAxisLine = _a.xAxisLine;\n xAxisLine.x1 = xScale.range[0];\n xAxisLine.x2 = xScale.range[1];\n xAxisLine.y1 = xAxisLine.y2 = 0;\n xAxisLine.stroke = axis.stroke;\n xAxisLine.strokeWidth = axis.strokeWidth;\n var yZero = yScale.convert(0);\n xAxisLine.translationY = yZero;\n };\n AreaSparkline.prototype.updateSelection = function (selectionData) {\n var marker = this.marker;\n var shape = getMarker(marker.shape);\n var updateMarkerSelection = this.markerSelection.setData(selectionData);\n var enterMarkerSelection = updateMarkerSelection.enter.append(shape);\n updateMarkerSelection.exit.remove();\n this.markerSelection = updateMarkerSelection.merge(enterMarkerSelection);\n };\n AreaSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var point = datum.point, seriesDatum = datum.seriesDatum;\n if (!point) {\n return;\n }\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n AreaSparkline.prototype.updateStroke = function (strokeData) {\n var _a = this, strokePath = _a.strokePath, yData = _a.yData, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var path = strokePath.path;\n var n = strokeData.length;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var _b = strokeData[i], point = _b.point, seriesDatum = _b.seriesDatum;\n var x = point.x;\n var y = point.y;\n if (seriesDatum.y == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n strokePath.lineJoin = strokePath.lineCap = 'round';\n strokePath.fill = undefined;\n strokePath.stroke = line.stroke;\n strokePath.strokeWidth = line.strokeWidth;\n };\n AreaSparkline.prototype.updateFill = function (areaData) {\n var _a = this, fillPath = _a.fillPath, yData = _a.yData, fill = _a.fill;\n var path = fillPath.path;\n var n = areaData.length;\n path.clear();\n if (yData.length < 2) {\n return;\n }\n for (var i = 0; i < n; i++) {\n var point = areaData[i].point;\n var x = point.x;\n var y = point.y;\n if (i > 0) {\n path.lineTo(x, y);\n }\n else {\n path.moveTo(x, y);\n }\n }\n path.closePath();\n fillPath.lineJoin = 'round';\n fillPath.stroke = undefined;\n fillPath.fill = fill;\n };\n AreaSparkline.prototype.updateXCrosshairLine = function () {\n var _a = this, yScale = _a.yScale, xCrosshairLine = _a.xCrosshairLine, highlightedDatum = _a.highlightedDatum, xLine = _a.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = xLine.strokeWidth || 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n AreaSparkline.prototype.updateYCrosshairLine = function () {\n var _a = this, xScale = _a.xScale, yCrosshairLine = _a.yCrosshairLine, highlightedDatum = _a.highlightedDatum, yLine = _a.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = yLine.strokeWidth || 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n AreaSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n AreaSparkline.className = 'AreaSparkline';\n return AreaSparkline;\n}(Sparkline));\n\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SparklineMarker = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar LineSparkline = /** @class */ (function (_super) {\n __extends$9(LineSparkline, _super);\n function LineSparkline() {\n var _this = _super.call(this) || this;\n _this.linePath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.lineSparklineGroup = new Group();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers).selectAll();\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker();\n _this.line = new SparklineLine();\n _this.crosshairs = new SparklineCrosshairs();\n _this.rootGroup.append(_this.lineSparklineGroup);\n _this.lineSparklineGroup.append([_this.linePath, _this.xCrosshairLine, _this.yCrosshairLine, _this.markers]);\n return _this;\n }\n LineSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n /**\n * If marker shape is changed, this method should be called to remove the previous marker nodes selection.\n */\n LineSparkline.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.scheduleLayout();\n };\n LineSparkline.prototype.update = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.markerSelectionData = nodeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateLine();\n };\n LineSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n if (yMin === yMax) {\n // if all values in the data are the same, yMin and yMax will be equal, need to adjust the domain with some padding\n var padding = Math.abs(yMin * 0.01);\n yMin -= padding;\n yMax += padding;\n }\n yScale.domain = [yMin, yMax];\n };\n LineSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var nodeData = [];\n for (var i = 0; i < yData.length; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n if (yDatum == undefined) {\n continue;\n }\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n }\n return nodeData;\n };\n LineSparkline.prototype.updateSelection = function (selectionData) {\n var marker = this.marker;\n var shape = getMarker(marker.shape);\n var updateMarkerSelection = this.markerSelection.setData(selectionData);\n var enterMarkerSelection = updateMarkerSelection.enter.append(shape);\n updateMarkerSelection.exit.remove();\n this.markerSelection = updateMarkerSelection.merge(enterMarkerSelection);\n };\n LineSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n var seriesDatum = datum.seriesDatum, point = datum.point;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n LineSparkline.prototype.updateLine = function () {\n var _a = this, linePath = _a.linePath, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var path = linePath.path;\n var n = yData.length;\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var xDatum = xData[i];\n var yDatum = yData[i];\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n if (yDatum == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n linePath.fill = undefined;\n linePath.stroke = line.stroke;\n linePath.strokeWidth = line.strokeWidth;\n };\n LineSparkline.prototype.updateXCrosshairLine = function () {\n var _a = this, yScale = _a.yScale, xCrosshairLine = _a.xCrosshairLine, highlightedDatum = _a.highlightedDatum, xLine = _a.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = xLine.strokeWidth || 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n LineSparkline.prototype.updateYCrosshairLine = function () {\n var _a = this, xScale = _a.xScale, yCrosshairLine = _a.yCrosshairLine, highlightedDatum = _a.highlightedDatum, yLine = _a.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = yLine.strokeWidth || 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n LineSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n LineSparkline.className = 'LineSparkline';\n return LineSparkline;\n}(Sparkline));\n\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Rectangle = /** @class */ (function (_super) {\n __extends$8(Rectangle, _super);\n function Rectangle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._width = 0;\n _this._height = 0;\n /**\n * If `true`, the rect is aligned to the pixel grid for crisp looking lines.\n */\n _this._crisp = false;\n return _this;\n }\n Object.defineProperty(Rectangle.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"crisp\", {\n get: function () {\n return this._crisp;\n },\n set: function (value) {\n if (this._crisp !== value) {\n this._crisp = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Rectangle.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Rectangle.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Rectangle.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, crisp = _a.crisp;\n ctx.beginPath();\n if (crisp) {\n // ensure stroke aligns to the pixel grid\n var _b = this, a = _b.alignment, al = _b.align;\n ctx.rect(al(a, x), al(a, y), al(a, x, width), al(a, y, height));\n }\n else {\n ctx.rect(x, y, width, height);\n }\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Rectangle.className = 'Column';\n return Rectangle;\n}(Shape));\n\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/** @class */ ((function (_super) {\n __extends$7(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this.lineBreakRegex = /\\r?\\n/g;\n _this.lines = [];\n _this._text = '';\n _this._dirtyFont = true;\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n _this._textAlign = Text.defaultStyles.textAlign;\n _this._textBaseline = Text.defaultStyles.textBaseline;\n _this._lineHeight = 14;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.splitText = function () {\n this.lines = this._text.split(this.lineBreakRegex);\n };\n Object.defineProperty(Text.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n var str = String(value); // `value` can be an object here\n if (this._text !== str) {\n this._text = str;\n this.splitText();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this.dirtyFont) {\n this.dirtyFont = false;\n this._font = getFont$1(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"dirtyFont\", {\n get: function () {\n return this._dirtyFont;\n },\n set: function (value) {\n if (this._dirtyFont !== value) {\n this._dirtyFont = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n if (this._fontStyle !== value) {\n this._fontStyle = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n if (this._fontWeight !== value) {\n this._fontWeight = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n if (!isFinite(value)) {\n value = 10;\n }\n if (this._fontSize !== value) {\n this._fontSize = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n if (this._fontFamily !== value) {\n this._fontFamily = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textAlign\", {\n get: function () {\n return this._textAlign;\n },\n set: function (value) {\n if (this._textAlign !== value) {\n this._textAlign = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textBaseline\", {\n get: function () {\n return this._textBaseline;\n },\n set: function (value) {\n if (this._textBaseline !== value) {\n this._textBaseline = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"lineHeight\", {\n get: function () {\n return this._lineHeight;\n },\n set: function (value) {\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n if (this._lineHeight !== value) {\n this._lineHeight = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas.has.textMetrics\n ? this.getPreciseBBox()\n : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Text.prototype.render = function (ctx) {\n if (!this.lines.length || !this.scene) {\n return;\n }\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // this.matrix.transformBBox(this.computeBBox!()).render(ctx); // debug\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, strokeShadow = _c.strokeShadow, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.strokeText(text, x, y);\n }\n this.dirty = false;\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects(Shape.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic'\n });\n return Text;\n})(Shape));\nfunction getFont$1(fontSize, fontFamily, fontStyle, fontWeight) {\n return [\n fontStyle || '',\n fontWeight || '',\n fontSize + 'px',\n fontFamily\n ].join(' ').trim();\n}\n\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Label = /** @class */ (function (_super) {\n __extends$6(Label, _super);\n function Label() {\n var _this = _super.call(this) || this;\n _this.enabled = true;\n _this.fontSize = 8;\n _this.fontFamily = 'Verdana, sans-serif';\n _this.color = 'rgba(70, 70, 70, 1)';\n return _this;\n }\n Label.prototype.getFont = function () {\n return getFont$1(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n };\n __decorate$2([\n reactive('change', 'dataChange')\n ], Label.prototype, \"enabled\", void 0);\n __decorate$2([\n reactive('change')\n ], Label.prototype, \"fontSize\", void 0);\n __decorate$2([\n reactive('change')\n ], Label.prototype, \"fontFamily\", void 0);\n __decorate$2([\n reactive('change')\n ], Label.prototype, \"fontStyle\", void 0);\n __decorate$2([\n reactive('change')\n ], Label.prototype, \"fontWeight\", void 0);\n __decorate$2([\n reactive('change')\n ], Label.prototype, \"color\", void 0);\n return Label;\n}(Observable));\n\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Text = /** @class */ (function (_super) {\n __extends$5(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this.lineBreakRegex = /\\r?\\n/g;\n _this.lines = [];\n _this._text = '';\n _this._dirtyFont = true;\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n _this._textAlign = Text.defaultStyles.textAlign;\n _this._textBaseline = Text.defaultStyles.textBaseline;\n _this._lineHeight = 14;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.splitText = function () {\n this.lines = this._text.split(this.lineBreakRegex);\n };\n Object.defineProperty(Text.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n var str = String(value); // `value` can be an object here\n if (this._text !== str) {\n this._text = str;\n this.splitText();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this.dirtyFont) {\n this.dirtyFont = false;\n this._font = getFont(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"dirtyFont\", {\n get: function () {\n return this._dirtyFont;\n },\n set: function (value) {\n if (this._dirtyFont !== value) {\n this._dirtyFont = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n if (this._fontStyle !== value) {\n this._fontStyle = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n if (this._fontWeight !== value) {\n this._fontWeight = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n if (!isFinite(value)) {\n value = 10;\n }\n if (this._fontSize !== value) {\n this._fontSize = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n if (this._fontFamily !== value) {\n this._fontFamily = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textAlign\", {\n get: function () {\n return this._textAlign;\n },\n set: function (value) {\n if (this._textAlign !== value) {\n this._textAlign = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textBaseline\", {\n get: function () {\n return this._textBaseline;\n },\n set: function (value) {\n if (this._textBaseline !== value) {\n this._textBaseline = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"lineHeight\", {\n get: function () {\n return this._lineHeight;\n },\n set: function (value) {\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n if (this._lineHeight !== value) {\n this._lineHeight = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas.has.textMetrics ? this.getPreciseBBox() : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Text.prototype.render = function (ctx) {\n if (!this.lines.length || !this.scene) {\n return;\n }\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // this.matrix.transformBBox(this.computeBBox!()).render(ctx); // debug\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, strokeShadow = _c.strokeShadow, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.strokeText(text, x, y);\n }\n this.dirty = false;\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects(Shape.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic',\n });\n return Text;\n}(Shape));\nfunction getFont(fontSize, fontFamily, fontStyle, fontWeight) {\n return [fontStyle || '', fontWeight || '', fontSize + 'px', fontFamily].join(' ').trim();\n}\n\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BarColumnNodeTag;\n(function (BarColumnNodeTag) {\n BarColumnNodeTag[BarColumnNodeTag[\"Rect\"] = 0] = \"Rect\";\n BarColumnNodeTag[BarColumnNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarColumnNodeTag || (BarColumnNodeTag = {}));\nvar BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\nvar BarColumnLabel = /** @class */ (function (_super) {\n __extends$4(BarColumnLabel, _super);\n function BarColumnLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n _this.placement = BarColumnLabelPlacement.InsideEnd;\n return _this;\n }\n return BarColumnLabel;\n}(Label));\nvar BarColumnSparkline = /** @class */ (function (_super) {\n __extends$4(BarColumnSparkline, _super);\n function BarColumnSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgb(124, 181, 236)';\n _this.stroke = 'silver';\n _this.strokeWidth = 0;\n _this.paddingInner = 0.1;\n _this.paddingOuter = 0.2;\n _this.valueAxisDomain = undefined;\n _this.formatter = undefined;\n _this.axisLine = new Line();\n _this.bandWidth = 0;\n _this.sparklineGroup = new Group();\n _this.rectGroup = new Group();\n _this.labelGroup = new Group();\n _this.rectSelection = Selection.select(_this.rectGroup).selectAll();\n _this.labelSelection = Selection.select(_this.labelGroup).selectAll();\n _this.nodeSelectionData = [];\n _this.label = new BarColumnLabel();\n _this.rootGroup.append(_this.sparklineGroup);\n _this.sparklineGroup.append([_this.rectGroup, _this.axisLine, _this.labelGroup]);\n _this.axisLine.lineCap = 'round';\n _this.label.enabled = false;\n return _this;\n }\n BarColumnSparkline.prototype.getNodeData = function () {\n return this.nodeSelectionData;\n };\n BarColumnSparkline.prototype.update = function () {\n this.updateSelections();\n this.updateNodes();\n };\n BarColumnSparkline.prototype.updateSelections = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.nodeSelectionData = nodeData;\n this.updateRectSelection(nodeData);\n this.updateLabelSelection(nodeData);\n };\n BarColumnSparkline.prototype.updateNodes = function () {\n this.updateRectNodes();\n this.updateLabelNodes();\n };\n BarColumnSparkline.prototype.calculateStep = function (range) {\n var _a, _b;\n var _c = this, xScale = _c.xScale, paddingInner = _c.paddingInner, paddingOuter = _c.paddingOuter, smallestInterval = _c.smallestInterval;\n // calculate step\n var domainLength = xScale.domain[1] - xScale.domain[0];\n var intervals = (domainLength / (_b = (_a = smallestInterval) === null || _a === void 0 ? void 0 : _a.x, (_b !== null && _b !== void 0 ? _b : 1))) + 1;\n // The number of intervals/bands is used to determine the width of individual bands by dividing the available range.\n // Allow a maximum of 50 bands to ensure the step (width of individual bands + padding) does not fall below a certain number of pixels.\n // If the number of intervals exceeds 50, calculate the step for 50 bands within the given range.\n // This means there could be some overlap of the bands in the sparkline.\n var maxBands = 50;\n var bands = Math.min(intervals, maxBands);\n var gaps = bands - 1; // number of gaps (padding between bands)\n var step = range / Math.max(1, (2 * paddingOuter) + (gaps * paddingInner) + bands); // step width is a combination of band width and gap width\n return step;\n };\n BarColumnSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yScale = _a.yScale, yData = _a.yData, valueAxisDomain = _a.valueAxisDomain;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n if (valueAxisDomain) {\n if (valueAxisDomain[1] < yMax) {\n valueAxisDomain[1] = yMax;\n }\n if (valueAxisDomain[0] > yMin) {\n valueAxisDomain[0] = yMin;\n }\n }\n yScale.domain = valueAxisDomain ? valueAxisDomain : [yMin, yMax];\n };\n BarColumnSparkline.prototype.updateRectSelection = function (selectionData) {\n var updateRectSelection = this.rectSelection.setData(selectionData);\n var enterRectSelection = updateRectSelection.enter.append(Rectangle);\n updateRectSelection.exit.remove();\n this.rectSelection = updateRectSelection.merge(enterRectSelection);\n };\n BarColumnSparkline.prototype.updateRectNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, nodeFormatter = _a.formatter, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n var _b = this.highlightStyle, highlightFill = _b.fill, highlightStroke = _b.stroke, highlightStrokeWidth = _b.strokeWidth;\n this.rectSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var nodeFill = highlighted && highlightFill !== undefined ? highlightFill : fill;\n var nodeStroke = highlighted && highlightStroke !== undefined ? highlightStroke : stroke;\n var nodeStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : strokeWidth;\n var nodeFormat;\n var x = datum.x, y = datum.y, width = datum.width, height = datum.height, seriesDatum = datum.seriesDatum;\n if (nodeFormatter) {\n var first = index === 0;\n var last = index === _this.nodeSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n nodeFormat = nodeFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n width: width,\n height: height,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: nodeFill,\n stroke: nodeStroke,\n strokeWidth: nodeStrokeWidth,\n highlighted: highlighted,\n });\n }\n node.fill = (nodeFormat && nodeFormat.fill) || nodeFill;\n node.stroke = (nodeFormat && nodeFormat.stroke) || nodeStroke;\n node.strokeWidth = (nodeFormat && nodeFormat.strokeWidth) || nodeStrokeWidth;\n node.x = node.y = 0;\n node.width = width;\n node.height = height;\n node.visible = node.height > 0;\n node.translationX = x;\n node.translationY = y;\n // shifts bars upwards?\n // node.crisp = true;\n });\n };\n BarColumnSparkline.prototype.updateLabelSelection = function (selectionData) {\n var updateLabels = this.labelSelection.setData(selectionData);\n var enterLabels = updateLabels.enter.append(Text).each(function (text) {\n (text.tag = BarColumnNodeTag.Label), (text.pointerEvents = PointerEvents.None);\n });\n updateLabels.exit.remove();\n this.labelSelection = updateLabels.merge(enterLabels);\n };\n BarColumnSparkline.prototype.updateLabelNodes = function () {\n var _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n this.labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n };\n BarColumnSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n BarColumnSparkline.prototype.formatLabelValue = function (value) {\n return value % 1 !== 0 ? value.toFixed(1) : value.toFixed(0);\n };\n return BarColumnSparkline;\n}(Sparkline));\n\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BarSparkline = /** @class */ (function (_super) {\n __extends$3(BarSparkline, _super);\n function BarSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BarSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [0, seriesRect.width];\n };\n BarSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale) {\n xScale.range = [0, seriesRect.height];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.height);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.height - padding - this.bandWidth];\n }\n };\n BarSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = 0;\n axisLine.y1 = 0;\n axisLine.y2 = seriesRect.height;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationX = yZero;\n };\n BarSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = xScale.convert(xDatum);\n var x = Math.min(yScale.convert(yDatum), yZero);\n var bottom = Math.max(yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var height = xScale instanceof BandScale\n ? xScale.bandwidth\n : this.bandWidth;\n var width = bottom - x;\n var midPoint = {\n x: yZero,\n y: y,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelY = y + height / 2;\n var labelX = void 0;\n var labelTextBaseline = 'middle';\n var labelTextAlign = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 4;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelX = x + width / 2;\n labelTextAlign = 'center';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelX = x + (isPositiveY ? width + labelPadding : -labelPadding);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelX = x + (isPositiveY ? width - labelPadding : labelPadding);\n labelTextAlign = isPositiveY ? 'end' : 'start';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textWidth = textSize.width || 20;\n var positiveBoundary = yZero + textWidth;\n var negativeBoundary = yZero - textWidth;\n var exceedsBoundaries = (isPositiveY && labelX < positiveBoundary) || (!isPositiveY && labelX > negativeBoundary);\n if (exceedsBoundaries) {\n // if labelX exceeds the boundary, labels should be positioned at `insideBase`.\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n BarSparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.y - p2.y);\n };\n BarSparkline.className = 'BarSparkline';\n return BarSparkline;\n}(BarColumnSparkline));\n\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ColumnSparkline = /** @class */ (function (_super) {\n __extends$2(ColumnSparkline, _super);\n function ColumnSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [seriesRect.height, 0];\n };\n ColumnSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale) {\n xScale.range = [0, seriesRect.width];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.width);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.width - padding - this.bandWidth];\n }\n };\n ColumnSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = seriesRect.width;\n axisLine.y1 = 0;\n axisLine.y2 = 0;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationY = yZero;\n };\n ColumnSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = Math.min(yScale.convert(yDatum), yZero);\n var x = xScale.convert(xDatum);\n var bottom = Math.max(yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var width = xScale instanceof BandScale\n ? xScale.bandwidth\n : this.bandWidth;\n var height = bottom - y;\n var midPoint = {\n x: x + width / 2,\n y: yZero,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelX = x + width / 2;\n var labelY = void 0;\n var labelTextAlign = 'center';\n var labelTextBaseline = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 2;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelY = y + height / 2;\n labelTextBaseline = 'middle';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelY = y + (isPositiveY ? -labelPadding : height + labelPadding);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelY = y + (isPositiveY ? labelPadding : height - labelPadding);\n labelTextBaseline = isPositiveY ? 'top' : 'bottom';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textHeight = textSize.height || 10;\n var positiveBoundary = yZero - textHeight;\n var negativeBoundary = yZero + textHeight;\n var exceedsBoundaries = (isPositiveY && labelY > positiveBoundary) || (!isPositiveY && labelY < negativeBoundary);\n if (exceedsBoundaries) {\n // if labelY exceeds the y boundary, labels should be positioned at the insideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n ColumnSparkline.className = 'ColumnSparkline';\n return ColumnSparkline;\n}(BarColumnSparkline));\n\nvar AgSparkline = /** @class */ (function () {\n function AgSparkline() {\n }\n AgSparkline.create = function (options, tooltip) {\n // avoid mutating user provided options\n options = Object.create(options);\n var sparkline = getSparklineInstance(options.type);\n if (tooltip) {\n sparkline.tooltip = tooltip;\n }\n initSparkline(sparkline, options);\n initSparklineByType(sparkline, options);\n if (options.data) {\n sparkline.data = options.data;\n }\n return sparkline;\n };\n return AgSparkline;\n}());\nfunction getSparklineInstance(type) {\n if (type === void 0) { type = 'line'; }\n switch (type) {\n case 'column':\n return new ColumnSparkline();\n case 'bar':\n return new BarSparkline();\n case 'area':\n return new AreaSparkline();\n case 'line':\n default:\n return new LineSparkline();\n }\n}\nfunction initSparklineByType(sparkline, options) {\n switch (options.type) {\n case 'bar':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'column':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'area':\n initAreaSparkline(sparkline, options);\n break;\n case 'line':\n default:\n initLineSparkline(sparkline, options);\n break;\n }\n}\nfunction initSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'context', options.context, options);\n setValueIfPropertyExists(sparkline, 'width', options.width, options);\n setValueIfPropertyExists(sparkline, 'height', options.height, options);\n setValueIfPropertyExists(sparkline, 'container', options.container, options);\n setValueIfPropertyExists(sparkline, 'xKey', options.xKey, options);\n setValueIfPropertyExists(sparkline, 'yKey', options.yKey, options);\n if (options.padding) {\n initPaddingOptions(sparkline.padding, options.padding);\n }\n if (options.axis) {\n initAxisOptions(sparkline.axis, options.axis);\n }\n if (options.highlightStyle) {\n initHighlightStyleOptions(sparkline.highlightStyle, options.highlightStyle);\n }\n if (options.tooltip && sparkline.tooltip) {\n initTooltipOptions(sparkline.tooltip, options.tooltip);\n }\n}\nfunction initLineSparkline(sparkline, options) {\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initAreaSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initBarColumnSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'valueAxisDomain', options.valueAxisDomain, options);\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n setValueIfPropertyExists(sparkline, 'stroke', options.stroke, options);\n setValueIfPropertyExists(sparkline, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(sparkline, 'paddingInner', options.paddingInner, options);\n setValueIfPropertyExists(sparkline, 'paddingOuter', options.paddingOuter, options);\n setValueIfPropertyExists(sparkline, 'formatter', options.formatter, options);\n if (options.label) {\n initLabelOptions(sparkline.label, options.label);\n }\n}\nfunction initPaddingOptions(target, options) {\n setValueIfPropertyExists(target, 'top', options.top, options);\n setValueIfPropertyExists(target, 'right', options.right, options);\n setValueIfPropertyExists(target, 'bottom', options.bottom, options);\n setValueIfPropertyExists(target, 'left', options.left, options);\n}\nfunction initMarkerOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'shape', options.shape, options);\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n}\nfunction initLabelOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'fontStyle', options.fontStyle, options);\n setValueIfPropertyExists(target, 'fontWeight', options.fontWeight, options);\n setValueIfPropertyExists(target, 'fontSize', options.fontSize, options);\n setValueIfPropertyExists(target, 'fontFamily', options.fontFamily, options);\n setValueIfPropertyExists(target, 'textAlign', options.textAlign, options);\n setValueIfPropertyExists(target, 'textBaseline', options.textBaseline, options);\n setValueIfPropertyExists(target, 'color', options.color, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n setValueIfPropertyExists(target, 'placement', options.placement, options);\n}\nfunction initLineOptions(target, options) {\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initAxisOptions(target, options) {\n setValueIfPropertyExists(target, 'type', options.type, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initHighlightStyleOptions(target, options) {\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initTooltipOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'container', options.container, options);\n setValueIfPropertyExists(target, 'xOffset', options.xOffset, options);\n setValueIfPropertyExists(target, 'yOffset', options.yOffset, options);\n setValueIfPropertyExists(target, 'renderer', options.renderer, options);\n}\nfunction initCrosshairsOptions(target, options) {\n if (target.xLine && options.xLine) {\n initCrosshairLineOptions(target.xLine, options.xLine);\n }\n if (target.yLine && options.yLine) {\n initCrosshairLineOptions(target.yLine, options.yLine);\n }\n}\nfunction initCrosshairLineOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'lineDash', options.lineDash, options);\n setValueIfPropertyExists(target, 'lineCap', options.lineCap, options);\n}\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nvar offsetValidator = function (property, value, defaultOffset) {\n if (isNumber(value)) {\n return true;\n }\n var message = \"AG Charts: \" + property + \" must be a number, the value you provided is not a valid number. Using the default of \" + defaultOffset + \"px.\";\n doOnce(function () { return console.warn(message); }, property + \" not a number\");\n return false;\n};\nvar validators = {\n xOffset: offsetValidator,\n yOffset: offsetValidator\n};\nfunction setValueIfPropertyExists(target, property, value, options) {\n if (property in options) {\n if (property in target) {\n var validator = validators[property];\n var isValid = validator ? validator(property, value, target[property]) : true;\n if (isValid && target[property] !== value) {\n // only set property if the value is different to new value\n target[property] = value;\n }\n }\n else {\n console.warn(\"Property \" + property + \" does not exist on the target object.\");\n }\n }\n}\n\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SparklineCellRenderer = /** @class */ (function (_super) {\n __extends$1(SparklineCellRenderer, _super);\n function SparklineCellRenderer() {\n return _super.call(this, SparklineCellRenderer.TEMPLATE) || this;\n }\n SparklineCellRenderer.prototype.init = function (params) {\n var _this = this;\n var firstTimeIn = true;\n var updateSparkline = function () {\n var _a = _this.getGui(), clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;\n if (clientWidth === 0 || clientHeight === 0) {\n return;\n }\n if (firstTimeIn) {\n var options = __assign({ data: params.value, width: clientWidth, height: clientHeight, context: {\n data: params.data,\n } }, params.sparklineOptions);\n // create new instance of sparkline\n _this.sparkline = AgSparkline.create(options, _this.sparklineTooltipSingleton.getSparklineTooltip());\n // append sparkline canvas to cell renderer element\n _this.eSparkline.appendChild(_this.sparkline.canvasElement);\n firstTimeIn = false;\n }\n else {\n _this.sparkline.width = clientWidth;\n _this.sparkline.height = clientHeight;\n }\n };\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.getGui(), updateSparkline);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n SparklineCellRenderer.prototype.refresh = function (params) {\n if (this.sparkline) {\n this.sparkline.data = params.value;\n return true;\n }\n return false;\n };\n SparklineCellRenderer.prototype.destroy = function () {\n if (this.sparkline) {\n this.sparkline.destroy();\n }\n _super.prototype.destroy.call(this);\n };\n SparklineCellRenderer.TEMPLATE /* html */ = \"
\\n \\n
\";\n __decorate$1([\n RefSelector('eSparkline')\n ], SparklineCellRenderer.prototype, \"eSparkline\", void 0);\n __decorate$1([\n Autowired('resizeObserverService')\n ], SparklineCellRenderer.prototype, \"resizeObserverService\", void 0);\n __decorate$1([\n Autowired('sparklineTooltipSingleton')\n ], SparklineCellRenderer.prototype, \"sparklineTooltipSingleton\", void 0);\n return SparklineCellRenderer;\n}(Component));\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * This 'bean' creates a single sparkline tooltip that is bound to the grid lifecycle.\n */\nvar SparklineTooltipSingleton = /** @class */ (function (_super) {\n __extends(SparklineTooltipSingleton, _super);\n function SparklineTooltipSingleton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SparklineTooltipSingleton.prototype.postConstruct = function () {\n this.tooltip = new SparklineTooltip();\n };\n SparklineTooltipSingleton.prototype.getSparklineTooltip = function () {\n return this.tooltip;\n };\n SparklineTooltipSingleton.prototype.destroyTooltip = function () {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n };\n __decorate([\n PostConstruct\n ], SparklineTooltipSingleton.prototype, \"postConstruct\", null);\n __decorate([\n PreDestroy\n ], SparklineTooltipSingleton.prototype, \"destroyTooltip\", null);\n SparklineTooltipSingleton = __decorate([\n Bean('sparklineTooltipSingleton')\n ], SparklineTooltipSingleton);\n return SparklineTooltipSingleton;\n}(BeanStub));\n\nvar SparklinesModule = {\n moduleName: ModuleNames.SparklinesModule,\n beans: [SparklineTooltipSingleton],\n userComponents: [{ componentName: 'agSparklineCellRenderer', componentClass: SparklineCellRenderer }],\n dependantModules: [EnterpriseCoreModule],\n};\n\nvar AllEnterpriseModules = [\n ClipboardModule,\n ColumnsToolPanelModule,\n ExcelExportModule,\n FiltersToolPanelModule,\n GridChartsModule,\n MasterDetailModule,\n MenuModule,\n MultiFilterModule,\n RangeSelectionModule,\n RichSelectModule,\n RowGroupingModule,\n ServerSideRowModelModule,\n SetFilterModule,\n SideBarModule,\n StatusBarModule,\n ViewportRowModelModule,\n SparklinesModule\n];\nvar AllModules = AllCommunityModules.concat(AllEnterpriseModules);\n\nModuleRegistry.registerModules(AllEnterpriseModules);\n\nexport { AllEnterpriseModules, AllModules, ClipboardModule, ColumnsToolPanelModule, EnterpriseCoreModule, ExcelExportModule, FiltersToolPanelModule, GridChartsModule, LicenseManager, MasterDetailModule, MenuModule, MultiFilter, MultiFilterModule, PivotDropZonePanel, PrimaryColsPanel, RangeSelectionModule, RichSelectModule, RowGroupDropZonePanel, RowGroupingModule, ServerSideRowModelModule, SetFilter, SetFilterModule, SideBarModule, SparklinesModule, StatusBarModule, ToolPanelColDefService, ValuesDropZonePanel, ViewportRowModelModule, agCharts, exportMultipleSheetsAsExcel, getMultipleSheetsAsExcel };\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","!function t(e,r){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{var n=r();for(var i in n)(\"object\"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=22)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var e=arguments.length,r=Array(e),n=0;n=3){for(var e=arguments.length,r=Array(e),n=0;n=2){for(var e=arguments.length,r=Array(e),n=0;n=1){for(var e=arguments.length,r=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(s(this,t),!e)throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"),new Error(\"settings\");this._settings=e,this._jsonService=new r([\"application/jwk-set+json\"])}return t.prototype.resetSigningKeys=function t(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug(\"MetadataService.getMetadata: getting metadata from\",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(t){i.Log.debug(\"MetadataService.getMetadata: json received\");var r=e._settings.metadataSeed||{};return e._settings.metadata=Object.assign({},r,t),e._settings.metadata}))):(i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"),Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty(\"issuer\")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty(\"authorization_endpoint\")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty(\"userinfo_endpoint\")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty(\"token_endpoint\",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty(\"check_session_iframe\",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty(\"end_session_endpoint\",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty(\"revocation_endpoint\",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty(\"jwks_uri\",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug(\"MetadataService.getMetadataProperty for: \"+e),this.getMetadata().then((function(t){if(i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"),void 0===t[e]){if(!0===r)return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \"+e);throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \"+e),new Error(\"Metadata does not contain property \"+e)}return t[e]}))},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty(\"jwks_uri\").then((function(t){return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\",t),e._jsonService.getJson(t).then((function(t){if(i.Log.debug(\"MetadataService.getSigningKeys: key set received\",t),!t.keys)throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"),new Error(\"Missing keys on keyset\");return e._settings.signingKeys=t.keys,e._settings.signingKeys}))}))},n(t,[{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(a)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=a))),this._metadataUrl}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf(\"?\")<0&&(e+=\"?\"),\"?\"!==e[e.length-1]&&(e+=\"&\"),e+=encodeURIComponent(r),e+=\"=\",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;\"string\"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),\"?\"===r&&(s=e.indexOf(\"#\"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,h=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2].replace(/\\+/g,\" \")),h++>50)return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\",e),{error:\"Response exceeded expected number of parameters\"};for(var l in u)return u;return{}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClientSettings=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,l=e.signingKeys,p=e.metadataSeed,v=e.client_id,y=e.client_secret,m=e.response_type,_=void 0===m?f:m,S=e.scope,b=void 0===S?g:S,w=e.redirect_uri,F=e.post_logout_redirect_uri,E=e.client_authentication,x=void 0===E?d:E,A=e.prompt,k=e.display,P=e.max_age,C=e.ui_locales,T=e.acr_values,R=e.resource,I=e.response_mode,D=e.filterProtocolClaims,L=void 0===D||D,N=e.loadUserInfo,U=void 0===N||N,B=e.staleStateAge,O=void 0===B?900:B,j=e.clockSkew,M=void 0===j?300:j,H=e.clockService,V=void 0===H?new s.ClockService:H,K=e.userInfoJwtIssuer,q=void 0===K?\"OP\":K,J=e.mergeClaims,W=void 0!==J&&J,z=e.stateStore,Y=void 0===z?new a.WebStorageStateStore:z,G=e.ResponseValidatorCtor,X=void 0===G?u.ResponseValidator:G,$=e.MetadataServiceCtor,Q=void 0===$?c.MetadataService:$,Z=e.extraQueryParams,tt=void 0===Z?{}:Z,et=e.extraTokenParams,rt=void 0===et?{}:et;h(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=p,this._signingKeys=l,this._client_id=v,this._client_secret=y,this._response_type=_,this._scope=b,this._redirect_uri=w,this._post_logout_redirect_uri=F,this._client_authentication=x,this._prompt=A,this._display=k,this._max_age=P,this._ui_locales=C,this._acr_values=T,this._resource=R,this._response_mode=I,this._filterProtocolClaims=!!L,this._loadUserInfo=!!U,this._staleStateAge=O,this._clockSkew=M,this._clockService=V,this._userInfoJwtIssuer=q,this._mergeClaims=!!W,this._stateStore=Y,this._validator=new X(this),this._metadataService=new Q(this),this._extraQueryParams=\"object\"===(void 0===tt?\"undefined\":n(tt))?tt:{},this._extraTokenParams=\"object\"===(void 0===rt?\"undefined\":n(rt))?rt:{}}return t.prototype.getEpochTime=function t(){return this._clockService.getEpochTime()},i(t,[{key:\"client_id\",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"),new Error(\"client_id has already been assigned.\");this._client_id=e}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"response_type\",get:function t(){return this._response_type}},{key:\"scope\",get:function t(){return this._scope}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"post_logout_redirect_uri\",get:function t(){return this._post_logout_redirect_uri}},{key:\"client_authentication\",get:function t(){return this._client_authentication}},{key:\"prompt\",get:function t(){return this._prompt}},{key:\"display\",get:function t(){return this._display}},{key:\"max_age\",get:function t(){return this._max_age}},{key:\"ui_locales\",get:function t(){return this._ui_locales}},{key:\"acr_values\",get:function t(){return this._acr_values}},{key:\"resource\",get:function t(){return this._resource}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"authority\",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"),new Error(\"authority has already been assigned.\");this._authority=e}},{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(l)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=l)),this._metadataUrl}},{key:\"metadata\",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:\"metadataSeed\",get:function t(){return this._metadataSeed},set:function t(e){this._metadataSeed=e}},{key:\"signingKeys\",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:\"filterProtocolClaims\",get:function t(){return this._filterProtocolClaims}},{key:\"loadUserInfo\",get:function t(){return this._loadUserInfo}},{key:\"staleStateAge\",get:function t(){return this._staleStateAge}},{key:\"clockSkew\",get:function t(){return this._clockSkew}},{key:\"userInfoJwtIssuer\",get:function t(){return this._userInfoJwtIssuer}},{key:\"mergeClaims\",get:function t(){return this._mergeClaims}},{key:\"stateStore\",get:function t(){return this._stateStore}},{key:\"validator\",get:function t(){return this._validator}},{key:\"metadataService\",get:function t(){return this._metadataService}},{key:\"extraQueryParams\",get:function t(){return this._extraQueryParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?\"oidc.\":r,s=e.store,a=void 0===s?i.Global.localStorage:s;o(this,t),this._store=a,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug(\"WebStorageStateStore.set\",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug(\"WebStorageStateStore.get\",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug(\"WebStorageStateStore.remove\",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug(\"WebStorageStateStore.getAllKeys\");for(var e=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;o(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push(\"application/json\"),n&&this._contentTypes.push(\"application/jwt\"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error(\"JsonService.getJson: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.getJson, url: \",e),new Promise((function(t,o){var s=new i._XMLHttpRequest;s.open(\"GET\",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug(\"JsonService.getJson: HTTP response received, status\",s.status),200===s.status){var r=s.getResponseHeader(\"Content-Type\");if(r){var i=a.find((function(t){if(r.startsWith(t))return!0}));if(\"application/jwt\"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error(\"JsonService.getJson: Error parsing JSON response\",t.message),void o(t)}}o(Error(\"Invalid response Content-Type: \"+r+\", from URL: \"+e))}else o(Error(s.statusText+\" (\"+s.status+\")\"))},s.onerror=function(){n.Log.error(\"JsonService.getJson: network error\"),o(Error(\"Network Error\"))},r&&(n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"),s.setRequestHeader(\"Authorization\",\"Bearer \"+r)),s.send()}))},t.prototype.postForm=function t(e,r,i){var o=this;if(!e)throw n.Log.error(\"JsonService.postForm: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.postForm, url: \",e),new Promise((function(t,s){var a=new o._XMLHttpRequest;a.open(\"POST\",e);var u=o._contentTypes;a.onload=function(){if(n.Log.debug(\"JsonService.postForm: HTTP response received, status\",a.status),200!==a.status){if(400===a.status)if(i=a.getResponseHeader(\"Content-Type\"))if(u.find((function(t){if(i.startsWith(t))return!0})))try{var r=JSON.parse(a.responseText);if(r&&r.error)return n.Log.error(\"JsonService.postForm: Error from server: \",r.error),void s(new Error(r.error))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(a.statusText+\" (\"+a.status+\")\"))}else{var i;if((i=a.getResponseHeader(\"Content-Type\"))&&u.find((function(t){if(i.startsWith(t))return!0})))try{return void t(JSON.parse(a.responseText))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(\"Invalid response Content-Type: \"+i+\", from URL: \"+e))}},a.onerror=function(){n.Log.error(\"JsonService.postForm: network error\"),s(Error(\"Network Error\"))};var c=\"\";for(var h in r){var l=r[h];l&&(c.length>0&&(c+=\"&\"),c+=encodeURIComponent(h),c+=\"=\",c+=encodeURIComponent(l))}a.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),void 0!==i&&a.setRequestHeader(\"Authorization\",\"Basic \"+btoa(i)),a.send(c)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SigninRequest.ctor: No url passed\"),new Error(\"url\");if(!s)throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"),new Error(\"client_id\");if(!a)throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"),new Error(\"redirect_uri\");if(!u)throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"),new Error(\"response_type\");if(!c)throw n.Log.error(\"SigninRequest.ctor: No scope passed\"),new Error(\"scope\");if(!h)throw n.Log.error(\"SigninRequest.ctor: No authority passed\"),new Error(\"authority\");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?\"query\":null),this.state=new o.SigninState({nonce:C,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,\"client_id\",s),r=i.UrlUtility.addQueryParam(r,\"redirect_uri\",a),r=i.UrlUtility.addQueryParam(r,\"response_type\",u),r=i.UrlUtility.addQueryParam(r,\"scope\",c),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,\"nonce\",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,\"code_challenge\",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,\"code_challenge_method\",\"S256\"));var R={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var D in F)r=i.UrlUtility.addQueryParam(r,D,F[D]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"id_token\"===t}))[0]},t.isOAuth=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"token\"===t}))[0]},t.isCode=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"code\"===t}))[0]},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;a(this,t),this._id=r||(0,o.default)(),this._data=n,this._created=\"number\"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug(\"State.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug(\"State.fromStorageString\"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then((function(e){i.Log.debug(\"State.clearStaleState: got keys\",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then((function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug(\"State.clearStaleState: got item from key: \",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error(\"State.clearStaleState: Error parsing state for key\",c,t.message),n=!0}else i.Log.debug(\"State.clearStaleState: no item in storage for key: \",c),n=!0;if(n)return i.Log.debug(\"State.clearStaleState: removed item for key: \",c),r.remove(c)})),n.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};g(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,h=r.prompt,l=r.display,f=r.max_age,g=r.ui_locales,d=r.id_token_hint,p=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug(\"OidcClient.createSigninRequest\");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,h=h||this._settings.prompt,l=l||this._settings.display,f=f||this._settings.max_age,g=g||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&\"code\"!==n?Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")):this._metadataService.getAuthorizationEndpoint().then((function(t){i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:h,display:l,max_age:f,ui_locales:g,id_token_hint:d,login_hint:p,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then((function(){return r}))}))},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSigninResponseState\");var o=\"query\"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type),s=o?\"?\":\"#\",c=new u.SigninResponse(e,s);if(!c.state)return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"),Promise.reject(new Error(\"No state in response\"));r=r||this._stateStore;var h=n?r.remove.bind(r):r.get.bind(r);return h(c.state).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:l.SigninState.fromStorageString(t),response:c}}))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSigninResponse\"),this.readSigninResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"),n._validator.validateSigninResponse(e,r)}))},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,h=r.request_type,l=arguments[1];return i.Log.debug(\"OidcClient.createSignoutRequest\"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(t){if(!t)throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"),new Error(\"no end session endpoint\");i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:h}),f=r.state;return f&&(i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"),(l=l||e._stateStore).set(f.id,f.toStorageString())),r}))},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSignoutResponseState\");var o=new h.SignoutResponse(e);if(!o.state)return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"),o.error?(i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({state:void 0,response:o});var a=o.state;r=r||this._stateStore;var u=n?r.remove.bind(r):r.get.bind(r);return u(a).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:f.State.fromStorageString(t),response:o}}))},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSignoutResponse\"),this.readSignoutResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return e?(i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"),r)}))},t.prototype.clearStaleState=function t(e){return i.Log.debug(\"OidcClient.clearStaleState\"),e=e||this._stateStore,f.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:\"_stateStore\",get:function t(){return this.settings.stateStore}},{key:\"_validator\",get:function t(){return this.settings.validator}},{key:\"_metadataService\",get:function t(){return this.settings.metadataService}},{key:\"settings\",get:function t(){return this._settings}},{key:\"metadataService\",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw o.Log.error(\"TokenClient.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r,this._metadataService=new a(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"authorization_code\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.code?r.redirect_uri?r.code_verifier?r.client_id?r.client_secret||\"client_secret_basic\"!=i?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeCode: No client_secret passed\"),Promise.reject(new Error(\"A client_secret is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"),Promise.reject(new Error(\"A code_verifier is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"),Promise.reject(new Error(\"A redirect_uri is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code passed\"),Promise.reject(new Error(\"A code is required\")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"refresh_token\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.refresh_token?r.client_id?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"),Promise.reject(new Error(\"A refresh_token is required\")))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ErrorResponse=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=r.error,a=r.error_description,u=r.error_uri,c=r.state,h=r.session_state;if(i(this,e),!s)throw n.Log.error(\"No error passed to ErrorResponse\"),new Error(\"error\");var l=o(this,t.call(this,a||s));return l.name=\"ErrorResponse\",l.error=s,l.error_description=a,l.error_uri=u,l.state=c,l.session_state=h,l}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,l=r.code_verifier,f=r.response_mode,g=r.client_secret,d=r.scope,p=r.extraTokenParams,v=r.skipUserInfo;c(this,e);var y=h(this,t.call(this,arguments[0]));if(!0===n?y._nonce=(0,a.default)():n&&(y._nonce=n),!0===l?y._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():l&&(y._code_verifier=l),y.code_verifier){var m=s.JoseUtil.hashString(y.code_verifier,\"SHA256\");y._code_challenge=s.JoseUtil.hexToBase64Url(m)}return y._redirect_uri=u,y._authority=i,y._client_id=o,y._response_mode=f,y._client_secret=g,y._scope=d,y._extraTokenParams=p,y._skipUserInfo=v,y}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug(\"SigninState.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug(\"SigninState.fromStorageString\"),new e(JSON.parse(r))},n(e,[{key:\"nonce\",get:function t(){return this._nonce}},{key:\"authority\",get:function t(){return this._authority}},{key:\"client_id\",get:function t(){return this._client_id}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"code_verifier\",get:function t(){return this._code_verifier}},{key:\"code_challenge\",get:function t(){return this._code_challenge}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"scope\",get:function t(){return this._scope}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams}},{key:\"skipUserInfo\",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(){return(\"undefined\"!=i&&null!==i&&void 0!==i.getRandomValues?o:s)().replace(/-/g,\"\")};var i=\"undefined\"!=typeof window?window.crypto||window.msCrypto:null;function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^i.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function s(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer(\"Access token expiring\"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer(\"Access token expired\"):u;o(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\",i),this._accessTokenExpiring.init(i)}else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex((function(t){return t===e}));r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug(\"Event: Raising event: \"+this._name);for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(a(this,t),!e)throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"),new Error(\"userManager\");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=u,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\",t.message)}))})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from getUser:\",t.message)})))}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", sub:\",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", anonymous user\")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then((function(){r._checkSessionIFrame.start(n)}))}else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\")})).catch((function(t){i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\",t.message)})))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug(\"SessionMonitor._stop\"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval((function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then((function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)})).catch((function(t){i.Log.error(\"SessionMonitor: error from querySessionStatus:\",t.message)}))}),1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then((function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\",t.session_state):(i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\",t.sub):i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"),r&&(e._sub?(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"),e._userManager.events._raiseUserSignedIn()))})).catch((function(t){e._sub&&(i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\",t.message),e._userManager.events._raiseUserSignedOut())}))},n(t,[{key:\"_settings\",get:function t(){return this._userManager.settings}},{key:\"_metadataService\",get:function t(){return this._userManager.metadataService}},{key:\"_client_id\",get:function t(){return this._settings.client_id}},{key:\"_checkSessionInterval\",get:function t(){return this._settings.checkSessionInterval}},{key:\"_stopCheckSessionOnError\",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];i(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||2e3,this._stopOnError=s;var a=n.indexOf(\"/\",n.indexOf(\"//\")+2);this._frame_origin=n.substr(0,a),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.style.display=\"none\",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise((function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener(\"message\",e._boundMessageEvent,!1)}))},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(\"error\"===e.data?(n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"),this._stopOnError&&this.stop()):\"changed\"===e.data?(n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"),this.stop(),this._callback()):n.Log.debug(\"CheckSessionIFrame: \"+e.data+\" message from check session op iframe\"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug(\"CheckSessionIFrame.start\"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+\" \"+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug(\"CheckSessionIFrame.stop\"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\"access_token\",u=\"refresh_token\";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"),new Error(\"No settings provided.\");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new a(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"access_token\";if(!e)throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"),new Error(\"No token provided.\");if(o!==a&&o!=u)throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"),new Error(\"Invalid token type.\");return this._metadataService.getRevocationEndpoint().then((function(t){if(t){n.Log.debug(\"TokenRevocationClient.revoke: Revoking \"+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"),new Error(\"Revocation not supported\")}))},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise((function(t,u){var c=new a._XMLHttpRequestCtor;c.open(\"POST\",e),c.onload=function(){n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\",c.status),200===c.status?t():u(Error(c.statusText+\" (\"+c.status+\")\"))},c.onerror=function(){n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"),u(\"Network Error\")};var h=\"client_id=\"+encodeURIComponent(r);i&&(h+=\"&client_secret=\"+encodeURIComponent(i)),h+=\"&token_type_hint=\"+encodeURIComponent(s),h+=\"&token=\"+encodeURIComponent(o),c.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),c.send(h)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(h(this,t),!e)throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"),new Error(\"settings\");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new l(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"ResponseValidator.validateSigninResponse\"),this._processSigninParams(e,r).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"),n._validateTokens(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"),n._processClaims(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"),t}))}))}))},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"),Promise.reject(new Error(\"State does not match\"))):(i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"),Promise.reject(new Error(\"State does not match\"));if(!e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"),Promise.reject(new Error(\"No client_id on state\"));if(!e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"),Promise.reject(new Error(\"No authority on state\"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"),Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"),Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"))}else this._settings.client_id=e.client_id;return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"),Promise.reject(new Error(\"No id_token in response\"))):!e.nonce&&r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"),Promise.reject(new Error(\"Unexpected id_token in response\"))):e.code_verifier&&!r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"),Promise.reject(new Error(\"No code in response\"))):!e.code_verifier&&r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"),Promise.reject(new Error(\"Unexpected code in response\"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"),this._userInfoService.getClaims(r.access_token).then((function(t){return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"),t.sub!==r.profile.sub?(i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token\"),Promise.reject(new Error(\"sub from user info endpoint does not match sub in id_token\"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\",r.profile),r)}));i.Log.debug(\"ResponseValidator._processClaims: not loading user info\")}else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a1)return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));o=t[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function t(e){var r=this;return this._getSigningKeyForJwt(e).then((function(t){return t?Promise.resolve(t):(r._metadataService.resetSigningKeys(),r._getSigningKeyForJwt(e))}))},t.prototype._validateIdToken=function t(e,r){var n=this;if(!e.nonce)return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"),Promise.reject(new Error(\"No nonce on state\"));var o=this._joseUtil.parseJwt(r.id_token);return o&&o.header&&o.payload?e.nonce!==o.payload.nonce?(i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):this._metadataService.getIssuer().then((function(t){return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"),n._getSigningKeyForJwtWithSingleRetry(o).then((function(s){if(!s)return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var a=e.client_id,u=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \",u),n._joseUtil.validateJwt(r.id_token,s,t,a,u).then((function(){return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))})):(i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\",o),Promise.reject(new Error(\"Failed to parse id_token\")))},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"),Promise.reject(new Error(\"No profile loaded from id_token\"));if(!e.profile.at_hash)return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"),Promise.reject(new Error(\"No at_hash in id_token\"));if(!e.id_token)return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"),Promise.reject(new Error(\"No id_token\"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\",r),Promise.reject(new Error(\"Failed to parse id_token\"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n),Promise.reject(new Error(\"Unsupported alg: \"+n));var o=n.substr(2,3);if(!o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));var s=\"sha\"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\",s),Promise.reject(new Error(\"Failed to validate at_hash\"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\",c,e.profile.at_hash),Promise.reject(new Error(\"Failed to validate at_hash\"))):(i.Log.debug(\"ResponseValidator._validateAccessToken: success\"),Promise.resolve(e))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(a(this,t),!e)throw o.Log.error(\"UserInfoService.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new u(this._settings),this._joseUtil=c}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then((function(t){return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\",t),r._jsonService.getJson(t,e).then((function(t){return o.Log.debug(\"UserInfoService.getClaims: claims received\",t),t}))})):(o.Log.error(\"UserInfoService.getClaims: No token passed\"),Promise.reject(new Error(\"A token is required\")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\",n),Promise.reject(new Error(\"Failed to parse id_token\"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case\"OP\":s=this._metadataService.getIssuer();break;case\"ANY\":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));a=s[0]}if(!a)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"),n.payload}))}))}))}catch(t){return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \",n,e.length),e},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=[\"RS256\",\"RS384\",\"RS512\",\"PS256\",\"PS384\",\"PS512\",\"ES256\",\"ES384\",\"ES512\"]},function(t,e,r){\"use strict\";(function(t){Object.defineProperty(e,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},n={userAgent:!1},i={};\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nif(void 0===o)var o={};o.lang={extend:function t(e,r,i){if(!r||!e)throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\");var o=function t(){};if(o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e,e.superclass=r.prototype,r.prototype.constructor==Object.prototype.constructor&&(r.prototype.constructor=r),i){var s;for(s in i)e.prototype[s]=i[s];var a=function t(){},u=[\"toString\",\"valueOf\"];try{/MSIE/.test(n.userAgent)&&(a=function t(e,r){for(s=0;s>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=s.ceil(r/4)},clone:function t(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var r=[],n=0;n>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new h.init(n,r/2)}},g=l.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new h.init(n,r)}},d=l.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(g.stringify(e)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function t(e){return g.parse(unescape(encodeURIComponent(e)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function t(){this._data=new h.init,this._nDataBytes=0},_append:function t(e){\"string\"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),u=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*o,c=s.min(4*u,i);if(u){for(var l=0;l>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join(\"\")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],h=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)g[d]=0|e[r+d];else{var p=g[d-15],v=g[d-2];g[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+g[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+g[d-16]}p=f+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&l)+s[d]+g[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),f=l,l=h,h=c,c=u+p|0,u=a,a=o,o=i,i=p+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(f=this._hash.words)[0],i=f[1],o=f[2],u=f[3],c=f[4],h=f[5],l=f[6],f=f[7],g=n.high,d=n.low,p=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=h.high,E=h.low,x=l.high,A=l.low,k=f.high,P=f.low,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,B=b,O=w,j=F,M=E,H=x,V=A,K=k,q=P,J=0;80>J;J++){var W=a[J];if(16>J)var z=W.high=0|e[r+2*J],Y=W.low=0|e[r+2*J+1];else{z=((Y=(z=a[J-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[J-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[J-7]).high,Z=(tt=a[J-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0>>0?1:0);W.high=z,W.low=Y}Q=B&j^~B&H,tt=O&M^~O&V,W=C&R^C&D^R&D;var et=T&I^T&L^I&L,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[J]).high),nt=$.low;Z=K+((B>>>14|O<<18)^(B>>>18|O<<14)^(B<<23|O>>>9))+(($=q+((O>>>14|B<<18)^(O>>>18|B<<14)^(O<<23|B>>>9)))>>>0>>0?1:0),K=H,q=V,H=j,V=M,j=B,M=O,B=N+(Z=(Z=(Z=Z+Q+(($=$+tt)>>>0>>0?1:0))+rt+(($=$+nt)>>>0>>0?1:0))+z+(($=$+Y)>>>0>>0?1:0))+((O=U+$|0)>>>0>>0?1:0)|0,N=D,U=L,D=R,L=I,R=C,I=T,C=Z+(W=G+W+((Y=X+et)>>>0>>0?1:0))+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=g+C+(d>>>0>>0?1:0),v=i.low=v+I,i.high=p+R+(v>>>0>>0?1:0),m=o.low=m+L,o.high=y+D+(m>>>0>>0?1:0),S=u.low=S+U,u.high=_+N+(S>>>0>>0?1:0),w=c.low=w+O,c.high=b+B+(w>>>0>>0?1:0),E=h.low=E+M,h.high=F+j+(E>>>0>>0?1:0),A=l.low=A+V,l.high=x+H+(A>>>0>>0?1:0),P=f.low=P+q,f.high=k+K+(P>>>0>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar m,_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function S(t){var e,r,n=\"\";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4)),\"=\";(3&n.length)>0;)n+=\"=\";return n}function b(t){var e,r,n,i=\"\",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=R(r<<2|n>>4),r=15&n,o=2):2==o?(i+=R(r),i+=R(n>>2),r=3&n,o=3):(i+=R(r<<2|n>>4),i+=R(15&n),o=0));return 1==o&&(i+=R(r<<2)),i}function w(t){var e,r=b(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):\"Netscape\"!=n.appName?(F.prototype.am=function A(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function k(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function N(t){this.m=t}function U(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function V(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function K(){}function q(t){return t}function J(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}N.prototype.convert=function W(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},N.prototype.revert=function z(t){return t},N.prototype.reduce=function Y(t){t.divRemTo(this.m,null,t)},N.prototype.mulTo=function G(t,e,r){t.multiplyTo(e,r),this.reduce(r)},N.prototype.sqrTo=function X(t,e){t.squareTo(e),this.reduce(e)},U.prototype.convert=function $(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},U.prototype.revert=function Q(t){var e=E();return t.copyTo(e),this.reduce(e),e},U.prototype.reduce=function Z(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},U.prototype.mulTo=function tt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},U.prototype.sqrTo=function et(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function rt(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function nt(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function it(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:I(t,n);s<0?\"-\"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function st(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function at(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function ct(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function lt(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function gt(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function dt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function pt(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function vt(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=L(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function yt(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=R(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=R(r));return i?o:\"0\"},F.prototype.negate=function mt(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function _t(){return this.s<0?this.negate():this},F.prototype.compareTo=function St(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function bt(){return this.t<=0?0:this.DB*(this.t-1)+L(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function wt(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function Ft(t,e){var r;return r=t<256||e.isEven()?new N(e):new U(e),this.exp(t,r)},F.ZERO=D(0),F.ONE=D(1),K.prototype.convert=q,K.prototype.revert=q,K.prototype.mulTo=function Et(t,e,r){t.multiplyTo(e,r)},K.prototype.sqrTo=function xt(t,e){t.squareTo(e)},J.prototype.convert=function At(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},J.prototype.revert=function kt(t){return t},J.prototype.reduce=function Pt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},J.prototype.mulTo=function Ct(t,e,r){t.multiplyTo(e,r),this.reduce(r)},J.prototype.sqrTo=function Tt(t,e){t.squareTo(e),this.reduce(e)};var Rt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],It=(1<<26)/Rt[Rt.length-1];\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Dt(){this.i=0,this.j=0,this.S=new Array}F.prototype.chunkSize=function Lt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function Nt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=D(r),i=E(),o=E(),s=\"\";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function Ut(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function Bt(t,e,r){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),O,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function Ht(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function Vt(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function Kt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function Wt(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Rt.length&&(t=Rt.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function Xt(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function $t(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function Qt(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function Zt(t){return 0==this.compareTo(t)},F.prototype.min=function te(t){return this.compareTo(t)<0?this:t},F.prototype.max=function ee(t){return this.compareTo(t)>0?this:t},F.prototype.and=function re(t){var e=E();return this.bitwiseTo(t,B,e),e},F.prototype.or=function ne(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.xor=function ie(t){var e=E();return this.bitwiseTo(t,j,e),e},F.prototype.andNot=function oe(t){var e=E();return this.bitwiseTo(t,M,e),e},F.prototype.not=function se(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=L(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function Fe(t){return this.exp(t,new K)},F.prototype.gcd=function Ee(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function xe(t){var e,r=this.abs();if(1==r.t&&r[0]<=Rt[Rt.length-1]){for(e=0;e>8&255,Te[Re++]^=e>>16&255,Te[Re++]^=e>>24&255,Re>=256&&(Re-=256)}((new Date).getTime())}if(null==Te){var De;if(Te=new Array,Re=0,void 0!==i&&(void 0!==i.crypto||void 0!==i.msCrypto)){var Le=i.crypto||i.msCrypto;if(Le.getRandomValues){var Ne=new Uint8Array(32);for(Le.getRandomValues(Ne),De=0;De<32;++De)Te[Re++]=Ne[De]}else if(\"Netscape\"==n.appName&&n.appVersion<\"5\"){var Ue=i.crypto.random(32);for(De=0;De>>8,Te[Re++]=255&De;Re=0,Ie()}function Be(){if(null==Ce){for(Ie(),(Ce=function t(){return new Dt}()).init(Te),Re=0;Re>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function He(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Ve(t,e){this.x=e,this.q=t}function Ke(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function qe(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Ke(this,null,null)}Oe.prototype.nextBytes=function Je(t){var e;for(e=0;e0&&e.length>0))throw\"Invalid RSA public key\";this.n=je(t,16),this.e=parseInt(e,16)}},He.prototype.encrypt=function Ye(t){var e=function r(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new Oe,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:\"0\"+i},He.prototype.encryptOAEP=function Ge(t,e,r){var n=function i(t,e,r,n){var i=br.crypto.MessageDigest,o=br.crypto.Util,s=null;if(r||(r=\"sha1\"),\"string\"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return Nr(o.hashHex(Ur(e),s))}),t.length+2*n+2>e)throw\"Message too long for RSA\";var a,u=\"\";for(a=0;a>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:\"0\"+s},He.prototype.type=\"RSA\",Ve.prototype.equals=function Xe(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},Ve.prototype.toBigInteger=function $e(){return this.x},Ve.prototype.negate=function Qe(){return new Ve(this.q,this.x.negate().mod(this.q))},Ve.prototype.add=function Ze(t){return new Ve(this.q,this.x.add(t.toBigInteger()).mod(this.q))},Ve.prototype.subtract=function tr(t){return new Ve(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},Ve.prototype.multiply=function er(t){return new Ve(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},Ve.prototype.square=function rr(){return new Ve(this.q,this.x.square().mod(this.q))},Ve.prototype.divide=function nr(t){return new Ve(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Ke.prototype.getX=function ir(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.getY=function or(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.equals=function sr(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},Ke.prototype.isInfinity=function ar(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},Ke.prototype.negate=function ur(){return new Ke(this.curve,this.x,this.y.negate(),this.z)},Ke.prototype.add=function cr(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F(\"3\"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},Ke.prototype.twice=function hr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F(\"3\"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Ke.prototype.multiply=function lr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F(\"3\")),u=new Ke(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},Ke.prototype.multiplyTwo=function fr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},qe.prototype.getQ=function gr(){return this.q},qe.prototype.getA=function dr(){return this.a},qe.prototype.getB=function pr(){return this.b},qe.prototype.equals=function vr(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},qe.prototype.getInfinity=function yr(){return this.infinity},qe.prototype.fromBigInteger=function mr(t){return new Ve(this.q,t)},qe.prototype.decodePointHex=function _r(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Ke(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)));default:return null}},\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nVe.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Ke.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(rn.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Ke.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Ke.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Ke.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"},Ke.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error(\"Point is at infinity.\");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error(\"x coordinate out of bounds\");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error(\"y coordinate out of bounds\");if(!this.isOnCurve())throw new Error(\"Point is not on the curve.\");if(this.multiply(t).isInfinity())throw new Error(\"Point is not a scalar multiple of G.\");return!0};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar Sr=function(){var t=new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))',\"g\"),e=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\"),n={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(\"\"),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;\"{\"===l?u={}:\"[\"===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({\"\":u},\"\")}return u}}();void 0!==br&&br||(e.KJUR=br={}),void 0!==br.asn1&&br.asn1||(br.asn1={}),br.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e=\"0\"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if(\"-\"!=e.substr(0,1))e.length%2==1?e=\"0\"+e:e.match(/^[0-7]/)||(e=\"00\"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n=\"\",i=0;i15)throw\"ASN.1 length too long to represent by 8x: n = \"+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return\"\"},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},br.asn1.DERAbstractString=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Dr(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(br.asn1.DERAbstractString,br.asn1.ASN1Object),br.asn1.DERAbstractTime=function(t){br.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());\"utc\"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+\".\"+(u=u.replace(/[0]+$/,\"\"))}}return s+\"Z\"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join(\"0\")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Pr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(br.asn1.DERAbstractTime,br.asn1.ASN1Object),br.asn1.DERAbstractStructured=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(br.asn1.DERAbstractStructured,br.asn1.ASN1Object),br.asn1.DERBoolean=function(t){br.asn1.DERBoolean.superclass.constructor.call(this),this.hT=\"01\",this.hTLV=0==t?\"010100\":\"0101ff\"},o.lang.extend(br.asn1.DERBoolean,br.asn1.ASN1Object),br.asn1.DERInteger=function(t){br.asn1.DERInteger.superclass.constructor.call(this),this.hT=\"02\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=br.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(br.asn1.DERInteger,br.asn1.ASN1Object),br.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=br.asn1.ASN1Util.newObject(t.obj);t.hex=\"00\"+e.getEncodedHex()}br.asn1.DERBitString.superclass.constructor.call(this),this.hT=\"03\",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,\"::\")).slice(1,-1)}function Yr(t){var e=\"malformed hex value\";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?zr(t):t;try{return parseInt(t.substr(0,2),16)+\".\"+parseInt(t.substr(2,2),16)+\".\"+parseInt(t.substr(4,2),16)+\".\"+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Gr(t){for(var e=encodeURIComponent(t),r=\"\",n=0;n\"7\"?\"00\"+t:t}Er.getLblen=function(t,e){if(\"8\"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},Er.getNthChildIdx=function(t,e,r){return Er.getChildIdx(t,e)[r]},Er.getIdxbyList=function(t,e,r,n){var i,o,s=Er;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},Er.getIdxbyListEx=function(t,e,r,n){var i,o,s=Er;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},Er.getTLVbyListEx=function(t,e,r,n){var i=Er,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},Er.getVbyList=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},Er.getVbyListEx=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),\"03\"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},Er.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if(\"02\"!=n&&\"03\"!=n)return r;var i=Er.getV(t,e);return\"02\"==n?parseInt(i,16):function o(t){try{var e=t.substr(0,2);if(\"00\"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return\"0\"==i&&(i=\"00000000\"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},Er.getOID=function(t,e,r){null==r&&(r=null);try{return\"06\"!=t.substr(e,2)?r:function n(t){if(!Xr(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+\".\"+a.join(\".\")),c}catch(t){return null}}(Er.getV(t,e))}catch(t){return r}},Er.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=Er.getOID(t,e,r);if(n==r)return r;var i=br.asn1.x509.OID.oid2name(n);return\"\"==i?n:i}catch(t){return r}},Er.getString=function(t,e,r){null==r&&(r=null);try{return Nr(Er.getV(t,e))}catch(t){return r}},Er.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join(\"0\")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+\".\"+u.join(\".\")),h},Er.dump=function(t,e,r,n){var i=Er,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof br.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+\"..(total \"+e.length/2+\"bytes)..\"+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n=\"\");var h,l=e.ommit_long_octet;if(\"01\"==(h=u.substr(r,2)))return\"00\"==(f=o(u,r))?n+\"BOOLEAN FALSE\\n\":n+\"BOOLEAN TRUE\\n\";if(\"02\"==h)return n+\"INTEGER \"+c(f=o(u,r),l)+\"\\n\";if(\"03\"==h){var f=o(u,r);if(i.isASN1HEX(f.substr(2))){var g=n+\"BITSTRING, encapsulates\\n\";return g+=s(f.substr(2),e,0,n+\" \")}return n+\"BITSTRING \"+c(f,l)+\"\\n\"}if(\"04\"==h){f=o(u,r);if(i.isASN1HEX(f)){g=n+\"OCTETSTRING, encapsulates\\n\";return g+=s(f,e,0,n+\" \")}return n+\"OCTETSTRING \"+c(f,l)+\"\\n\"}if(\"05\"==h)return n+\"NULL\\n\";if(\"06\"==h){var d=o(u,r),p=br.asn1.ASN1Util.oidHexToInt(d),v=br.asn1.x509.OID.oid2name(p),y=p.replace(/\\./g,\" \");return\"\"!=v?n+\"ObjectIdentifier \"+v+\" (\"+y+\")\\n\":n+\"ObjectIdentifier (\"+y+\")\\n\"}if(\"0a\"==h)return n+\"ENUMERATED \"+parseInt(o(u,r))+\"\\n\";if(\"0c\"==h)return n+\"UTF8String '\"+Lr(o(u,r))+\"'\\n\";if(\"13\"==h)return n+\"PrintableString '\"+Lr(o(u,r))+\"'\\n\";if(\"14\"==h)return n+\"TeletexString '\"+Lr(o(u,r))+\"'\\n\";if(\"16\"==h)return n+\"IA5String '\"+Lr(o(u,r))+\"'\\n\";if(\"17\"==h)return n+\"UTCTime \"+Lr(o(u,r))+\"\\n\";if(\"18\"==h)return n+\"GeneralizedTime \"+Lr(o(u,r))+\"\\n\";if(\"1a\"==h)return n+\"VisualString '\"+Lr(o(u,r))+\"'\\n\";if(\"1e\"==h)return n+\"BMPString '\"+Lr(o(u,r))+\"'\\n\";if(\"30\"==h){if(\"3000\"==u.substr(r,4))return n+\"SEQUENCE {}\\n\";g=n+\"SEQUENCE\\n\";var m=e;if((2==(b=a(u,r)).length||3==b.length)&&\"06\"==u.substr(b[0],2)&&\"04\"==u.substr(b[b.length-1],2)){v=i.oidname(o(u,b[0]));var _=JSON.parse(JSON.stringify(e));_.x509ExtName=v,m=_}for(var S=0;S31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},Er.isASN1HEX=function(t){var e=Er;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},Er.checkStrictDER=function(t,e,r,n,i){var o=Er;if(void 0===r){if(\"string\"!=typeof t)throw new Error(\"not hex string\");if(t=t.toLowerCase(),!br.lang.String.isHex(t))throw new Error(\"not hex string\");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error(\"L of TLV too long: idx=\"+e);var s=o.getVblen(t,e);if(s>n)throw new Error(\"value of L too long than hex: idx=\"+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error(\"V string length and L's value not the same:\"+u+\"/\"+2*s);if(0===e&&t.length!=a.length)throw new Error(\"total length and TLV length unmatch:\"+t.length+\"!=\"+a.length);var c=t.substr(e,2);if(\"02\"===c){var h=o.getVidx(t,e);if(\"00\"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error(\"not least zeros for DER INTEGER\")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=r?e:new Array(r-e.length+1).join(n)+e};void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\"},this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw\"alg not supported in Util.DIGESTINFOHEAD: \"+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw\"key is too short for SigAlg: keylen=\"+r+\",\"+e;for(var o=\"0001\",s=\"00\"+n,a=\"\",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error(\"Signature not a valid DERSequence\");if(2!=t[e=2])throw new Error(\"First element in signature must be a DERInteger\");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error(\"Second element in signature must be a DERInteger\");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw\"Signature has the wrong length\";var e=t[0]-27;if(e<0||e>7)throw\"Invalid signature type\";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error(\"not ASN.1 hex string\");var e,r,n;try{e=c(t,0,[\"[0]\",0],\"06\"),r=c(t,0,[1],\"04\");try{n=c(t,0,[\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}if(this.curveName=a(e),void 0===this.curveName)throw\"unsupported curve name\";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n,i;try{c(t,0,[1,0],\"06\"),r=c(t,0,[1,1],\"06\"),n=c(t,0,[2,0,1],\"04\");try{i=c(t,0,[2,0,\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new e(\"malformed PKCS#8 plain ECC private key\")}if(this.curveName=a(r),void 0===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n;try{c(t,0,[0,0],\"06\"),r=c(t,0,[0,1],\"06\"),n=c(t,0,[1],\"03\")}catch(t){throw new e(\"malformed PKCS#8 ECC public key\")}if(this.curveName=a(r),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var n,i;try{n=c(t,0,[0,5,0,1],\"06\"),i=c(t,0,[0,5,1],\"03\")}catch(t){throw new e(\"malformed X.509 certificate ECC public key\")}if(this.curveName=a(n),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName=\"secp256r1\"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},br.crypto.ECDSA.parseSigHex=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},br.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=Er,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),\"30\"!=t.substr(0,2))throw new Error(\"signature is not a ASN.1 sequence\");var i=r(t,0);if(2!=i.length)throw new Error(\"signature shall have two elements\");var o=i[0],s=i[1];if(\"02\"!=t.substr(o,2))throw new Error(\"1st item not ASN.1 integer\");if(\"02\"!=t.substr(s,2))throw new Error(\"2nd item not ASN.1 integer\");return{r:n(t,o),s:n(t,s)}},br.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if(\"00\"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),\"00\"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r=\"00\"+r),n.length%32==30&&(n=\"00\"+n),r.length%32!=0)throw\"unknown ECDSA sig r length error\";if(n.length%32!=0)throw\"unknown ECDSA sig s length error\";return r+n},br.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw\"unknown ECDSA concatinated r-s sig length error\";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return br.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},br.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return br.crypto.ECDSA.biRSSigToASN1Sig(r,n)},br.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=br.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},br.crypto.ECDSA.getName=function(t){return\"2b8104001f\"===t?\"secp192k1\":\"2a8648ce3d030107\"===t?\"secp256r1\":\"2b8104000a\"===t?\"secp256k1\":\"2b81040021\"===t?\"secp224r1\":\"2b81040022\"===t?\"secp384r1\":-1!==\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t)?\"secp256r1\":-1!==\"|secp256k1|\".indexOf(t)?\"secp256k1\":-1!==\"|secp224r1|NIST P-224|P-224|\".indexOf(t)?\"secp224r1\":-1!==\"|secp384r1|NIST P-384|P-384|\".indexOf(t)?\"secp384r1\":null},void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw\"unregistered EC curve name: \"+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new qe(p,v,y),b=S.decodePointHex(\"04\"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var w=0;w=2*u)break}var f={};return f.keyhex=c.substr(0,2*i[e].keylen),f.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),f},a=function t(e,r,n,o){var s=y.enc.Base64.parse(e),a=y.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:\"1.0.0\",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,h=s(i,r,u).keyhex;return a(c,i,h,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u=\"\";if(void 0!==o&&null!=o||(o=\"AES-256-CBC\"),void 0===i[o])throw\"KEYUTIL unsupported algorithm: \"+o;void 0!==a&&null!=a||(a=function t(e){var r=y.lib.WordArray.random(e);return y.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u=\"-----BEGIN \"+e+\" PRIVATE KEY-----\\r\\n\";return u+=\"Proc-Type: 4,ENCRYPTED\\r\\n\",u+=\"DEK-Info: \"+o+\",\"+a+\"\\r\\n\",u+=\"\\r\\n\",u+=c.replace(/(.{64})/g,\"$1\\r\\n\"),u+=\"\\r\\n-----END \"+e+\" PRIVATE KEY-----\\r\\n\"},parseHexOfEncryptedPKCS8:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw\"malformed format: SEQUENCE(0).items != 2: \"+s.length;o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0).items != 2: \"+a.length;if(\"2a864886f70d01050d\"!=i(e,a[0]))throw\"this only supports pkcs5PBES2\";var u=n(e,a[1]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0.1).items != 2: \"+u.length;var c=n(e,u[1]);if(2!=c.length)throw\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+c.length;if(\"2a864886f70d0307\"!=i(e,c[0]))throw\"this only supports TripleDES\";o.encryptionSchemeAlg=\"TripleDES\",o.encryptionSchemeIV=i(e,c[1]);var h=n(e,u[0]);if(2!=h.length)throw\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+h.length;if(\"2a864886f70d01050c\"!=i(e,h[0]))throw\"this only supports pkcs5PBKDF2\";var l=n(e,h[1]);if(l.length<2)throw\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+l.length;o.pbkdf2Salt=i(e,l[0]);var f=i(e,l[1]);try{o.pbkdf2Iter=parseInt(f,16)}catch(t){throw\"malformed format pbkdf2Iter: \"+f}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=y.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=y.PBKDF2(r,n,{keySize:6,iterations:i});return y.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=Hr(e,\"ENCRYPTED PRIVATE KEY\"),i=this.parseHexOfEncryptedPKCS8(n),o=Zr.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=y.enc.Hex.parse(i.ciphertext);var a=y.enc.Hex.parse(o),u=y.enc.Hex.parse(i.encryptionSchemeIV),c=y.TripleDES.decrypt(s,a,{iv:u});return y.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null};if(\"30\"!=e.substr(0,2))throw\"malformed plain PKCS8 private key(code:001)\";var s=n(e,0);if(3!=s.length)throw\"malformed plain PKCS8 private key(code:002)\";if(\"30\"!=e.substr(s[1],2))throw\"malformed PKCS8 private key(code:003)\";var a=n(e,s[1]);if(2!=a.length)throw\"malformed PKCS8 private key(code:004)\";if(\"06\"!=e.substr(a[0],2))throw\"malformed PKCS8 private key(code:005)\";if(o.algoid=i(e,a[0]),\"06\"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),\"04\"!=e.substr(s[2],2))throw\"malformed PKCS8 private key(code:006)\";return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=Hr(e,\"PRIVATE KEY\");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if(\"2a864886f70d010101\"==n.algoid)r=new He;else if(\"2a8648ce380401\"==n.algoid)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!=n.algoid)throw\"unsupported private key algorithm\";r=new br.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=Er.getVbyList(e,0,[0,0],\"06\");if(\"2a864886f70d010101\"===n)r=new He;else if(\"2a8648ce380401\"===n)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!==n)throw\"unsupported PKCS#8 public key hex\";r=new br.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={};if(\"30\"!=e.substr(0,2))throw\"malformed RSA key(code:001)\";var s=n(e,0);if(2!=s.length)throw\"malformed RSA key(code:002)\";if(\"02\"!=e.substr(s[0],2))throw\"malformed RSA key(code:003)\";if(o.n=i(e,s[0]),\"02\"!=e.substr(s[1],2))throw\"malformed RSA key(code:004)\";return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw\"outer DERSequence shall have 2 elements: \"+s.length;var a=s[0];if(\"30\"!=e.substr(a,2))throw\"malformed PKCS8 public key(code:001)\";var u=n(e,a);if(2!=u.length)throw\"malformed PKCS8 public key(code:002)\";if(\"06\"!=e.substr(u[0],2))throw\"malformed PKCS8 public key(code:003)\";if(o.algoid=i(e,u[0]),\"06\"==e.substr(u[1],2)?o.algparam=i(e,u[1]):\"30\"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],\"02\"),o.algparam.q=r.getVbyList(e,u[1],[1],\"02\"),o.algparam.g=r.getVbyList(e,u[1],[2],\"02\")),\"03\"!=e.substr(s[1],2))throw\"malformed PKCS8 public key(code:004)\";return o.key=i(e,s[1]).substr(2),o}}}();Zr.getKey=function(t,e,r){var n=(v=Er).getChildIdx,i=(v.getV,v.getVbyList),o=br.crypto,s=o.ECDSA,a=o.DSA,u=He,c=Hr,h=Zr;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Ir(t.n),Ir(t.e)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Ir(t.n),Ir(t.e),Ir(t.d),Ir(t.p),Ir(t.q),Ir(t.dp),Ir(t.dq),Ir(t.qi)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Ir(t.n),Ir(t.e),Ir(t.d)),P;if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);return k.setPublicKeyHex(f),k}if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);var g=(\"0000000000\"+Ir(t.d)).slice(-l);return k.setPublicKeyHex(f),k.setPrivateKeyHex(g),k}if(\"pkcs5prv\"===r){var d,p=t,v=Er;if(9===(d=n(p,0)).length)(P=new u).readPKCS5PrvKeyHex(p);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(p);else{if(!(d.length>2&&\"04\"===p.substr(d[1],2)))throw\"unsupported PKCS#1/5 hexadecimal key\";(P=new s).readPKCS5PrvKeyHex(p)}return P}if(\"pkcs8prv\"===r)return P=h.getKeyFromPlainPrivatePKCS8Hex(t);if(\"pkcs8pub\"===r)return h._getKeyFromPublicPKCS8Hex(t);if(\"x509pub\"===r)return on.getPublicKeyFromCertHex(t);if(-1!=t.indexOf(\"-END CERTIFICATE-\",0)||-1!=t.indexOf(\"-END X509 CERTIFICATE-\",0)||-1!=t.indexOf(\"-END TRUSTED CERTIFICATE-\",0))return on.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf(\"-END PUBLIC KEY-\")){var y=Hr(t,\"PUBLIC KEY\");return h._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var m=c(t,\"RSA PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var _=i(R=c(t,\"DSA PRIVATE KEY\"),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){m=c(t,\"EC PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END PRIVATE KEY-\"))return h.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var x=h.getDecryptedKeyHex(t,e),A=new He;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var k,P=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"04\"),C=i(R,0,[2,0],\"06\"),T=i(R,0,[3,0],\"03\").substr(2);if(void 0===br.crypto.OID.oidhex2name[C])throw\"undefined OID(hex) in KJUR.crypto.OID: \"+C;return(k=new s({curve:br.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var R;_=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\"))return h.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error(\"not supported argument\")},Zr.generateKeypair=function(t,e){if(\"RSA\"==t){var r=e;(s=new He).generate(r,\"10001\"),s.isPrivate=!0,s.isPublic=!0;var n=new He,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if(\"EC\"==t){var s,a,u=e,c=new br.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw\"unknown algorithm: \"+t},Zr.getPEM=function(t,e,r,n,i,o){var s=br,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=He;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a0\",!0,{oid:{name:t.curveName}}]},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||\"PKCS8PUB\"==e))return Mr(F=new l(t).getEncodedHex(),\"PUBLIC KEY\");if(\"PKCS1PRV\"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=v(t).getEncodedHex(),\"RSA PRIVATE KEY\");if(\"PKCS1PRV\"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w=\"\";return w+=Mr(S,\"EC PARAMETERS\"),w+=Mr(b,\"EC PRIVATE KEY\")}if(\"PKCS1PRV\"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=_(t).getEncodedHex(),\"DSA PRIVATE KEY\");if(\"PKCS5PRV\"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new h({seq:[{seq:[{oid:{name:\"pkcs5PBES2\"}},{seq:[{seq:[{oid:{name:\"pkcs5PBKDF2\"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:\"des-EDE3-CBC\"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=y.lib.WordArray.random(8),i=y.lib.WordArray.random(8),o=y.PBKDF2(r,n,{keySize:6,iterations:100}),s=y.enc.Hex.parse(e),a=y.TripleDES.encrypt(s,o,{iv:i})+\"\",u={};return u.ciphertext=a,u.pbkdf2Salt=y.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg=\"DES-EDE3-CBC\",u.encryptionSchemeIV=y.enc.Hex.stringify(i),u};if(\"PKCS8PRV\"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();F=h({seq:[{int:0},{seq:[{oid:{name:\"rsaEncryption\"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"dsa\"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}throw new Error(\"unsupported object nor format\")},Zr.getKeyFromCSRPEM=function(t){var e=Hr(t,\"CERTIFICATE REQUEST\");return Zr.getKeyFromCSRHex(e)},Zr.getKeyFromCSRHex=function(t){var e=Zr.parseCSRHex(t);return Zr.getKey(e.p8pubkeyhex,null,\"pkcs8pub\")},Zr.parseCSRHex=function(t){var e=Er,r=e.getChildIdx,n=e.getTLV,i={},o=t;if(\"30\"!=o.substr(0,2))throw\"malformed CSR(code:001)\";var s=r(o,0);if(s.length<1)throw\"malformed CSR(code:002)\";if(\"30\"!=o.substr(s[0],2))throw\"malformed CSR(code:003)\";var a=r(o,s[0]);if(a.length<3)throw\"malformed CSR(code:004)\";return i.p8pubkeyhex=n(o,a[2]),i},Zr.getKeyID=function(t){var e=Zr,r=Er;\"string\"==typeof t&&-1!=t.indexOf(\"BEGIN \")&&(t=e.getKey(t));var n=Hr(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return br.crypto.Util.hashHex(o,\"sha1\")},Zr.getJWKFromKey=function(t){var e={};if(t instanceof He&&t.isPrivate)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e.d=Rr(t.d.toString(16)),e.p=Rr(t.p.toString(16)),e.q=Rr(t.q.toString(16)),e.dp=Rr(t.dmp1.toString(16)),e.dq=Rr(t.dmq1.toString(16)),e.qi=Rr(t.coeff.toString(16)),e;if(t instanceof He&&t.isPublic)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e;if(t instanceof br.crypto.ECDSA&&t.isPrivate){if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;var r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e.d=Rr(t.prvKeyHex),e}if(t instanceof br.crypto.ECDSA&&t.isPublic){var n;if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e}throw\"not supported key object\"},He.getPosArrayOfChildrenFromHex=function(t){return Er.getChildIdx(t,0)},He.getHexValueArrayOfChildrenFromHex=function(t){var e,r=Er.getV,n=r(t,(e=He.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},He.prototype.readPrivateKeyFromPEMString=function(t){var e=Hr(t),r=He.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},He.prototype.readPKCS5PrvKeyHex=function(t){var e=He.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},He.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=Er,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");try{e=h(t,0,[2,0,1],\"02\"),r=h(t,0,[2,0,2],\"02\"),n=h(t,0,[2,0,3],\"02\"),i=h(t,0,[2,0,4],\"02\"),o=h(t,0,[2,0,5],\"02\"),s=h(t,0,[2,0,6],\"02\"),a=h(t,0,[2,0,7],\"02\"),u=h(t,0,[2,0,8],\"02\")}catch(t){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(e,r,n,i,o,s,a,u)},He.prototype.readPKCS5PubKeyHex=function(t){var e=Er,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error(\"keyHex is not ASN.1 hex string\");var n=e.getChildIdx(t,0);if(2!==n.length||\"02\"!==t.substr(n[0],2)||\"02\"!==t.substr(n[1],2))throw new Error(\"wrong hex for PKCS#5 public key\");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},He.prototype.readPKCS8PubKeyHex=function(t){var e=Er;if(!1===e.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");if(\"06092a864886f70d010101\"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error(\"not PKCS8 RSA public key\");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},He.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new on).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var tn=new RegExp(\"[^0-9a-f]\",\"gi\");function en(t,e){for(var r=\"\",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function nn(t){for(var e in br.crypto.Util.DIGESTINFOHEAD){var r=br.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function on(t){var e,r=Er,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=on,v=Hr;try{e=br.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",13:\"prn\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:\"a003020102\"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],\"02\")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],\"06\"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],\"30\")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],\"30\")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],\"30\")},this.getPublicKey=function(){return Zr.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],\"03\",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],\"30\"),i=new br.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],\"30\"),o=n(a,e)}else{a=Hr(t);var u=h(a,0,[0,3,0,0],\"06\");if(\"2a864886f70d01090e\"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],\"30\"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);\"0101ff\"==c&&(i.reqauth=!0),\"010100\"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=l(this.hex,0,[0,\"[3]\"])&&(t=c(this.hex,0,[0,\"[3]\",0],\"30\")));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new Oe).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Nr(u(Ur(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;var i=n[0];return n[1]==function t(e){return br.crypto.Util.hashString(e,i)}(t)},He.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=je(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;n[0];return n[1]==t},He.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return br.crypto.Util.hashHex(e,r)}(Ur(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},He.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function t(e){return br.crypto.Util.hashHex(e,r)},a=Nr(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error(\"invalid salt length\");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error(\"bits beyond keysize not zero\");var p=rn(g,f.length,s),v=[];for(i=0;i0)&&-1==(\":\"+n.join(\":\")+\":\").indexOf(\":\"+v+\":\"))throw\"algorithm '\"+v+\"' not accepted in the list\";if(\"none\"!=v&&null===e)throw\"key shall be specified to verify.\";if(\"string\"==typeof e&&-1!=e.indexOf(\"-----BEGIN \")&&(e=Zr.getKey(e)),!(\"RS\"!=y&&\"PS\"!=y||e instanceof i))throw\"key shall be a RSAKey obj for RS* and PS* algs\";if(\"ES\"==y&&!(e instanceof c))throw\"key shall be a ECDSA obj for ES* algs\";var m=null;if(void 0===s.jwsalg2sigalg[p.alg])throw\"unsupported alg name: \"+v;if(\"none\"==(m=s.jwsalg2sigalg[v]))throw\"not supported\";if(\"Hmac\"==m.substr(0,4)){if(void 0===e)throw\"hexadecimal key shall be specified for HMAC\";var _=new h({alg:m,pass:e});return _.updateString(g),d==_.doFinal()}if(-1!=m.indexOf(\"withECDSA\")){var S,b=null;try{b=c.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(b)}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(d)},br.jws.JWS.parse=function(t){var e,r,n,i=t.split(\".\"),o={};if(2!=i.length&&3!=i.length)throw\"malformed sJWS: wrong number of '.' splitted elements\";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=br.jws.JWS.readSafeJSONString(Fr(e)),o.payloadObj=br.jws.JWS.readSafeJSONString(Fr(r)),o.headerPP=JSON.stringify(o.headerObj,null,\" \"),null==o.payloadObj?o.payloadPP=Fr(r):o.payloadPP=JSON.stringify(o.payloadObj,null,\" \"),void 0!==n&&(o.sigHex=Ir(n)),o},br.jws.JWS.verifyJWT=function(t,e,n){var i=br.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split(\".\"),h=c[0],l=c[1],f=(Ir(c[2]),s(Fr(h))),g=s(Fr(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw\"acceptField.alg shall be specified\";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&\"object\"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&\"object\"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&\"object\"===r(n.aud))if(\"string\"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if(\"object\"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&\"number\"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&\"number\"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&\"number\"==typeof g.exp&&g.exp+n.gracePeriodr.length&&(n=r.length);for(var i=0;i\n * @license MIT\n */\nvar n=r(30),i=r(31),o=r(32);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return K(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return q(t).length;default:if(n)return K(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return I(this,e,r);case\"utf8\":case\"utf-8\":return A(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return R(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function f(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n0&&(r=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(r+=\" ... \")),\"\"},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError(\"out of range index\");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(i>>>=0),a=(n>>>=0)-(r>>>=0),c=Math.min(s,a),h=this.slice(i,o),l=e.slice(r,n),f=0;fo)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");i||(i=\"utf8\");for(var s=!1;;)switch(i){case\"hex\":return _(this,e,r,n);case\"utf8\":case\"utf-8\":return S(this,e,r,n);case\"ascii\":return b(this,e,r,n);case\"latin1\":case\"binary\":return w(this,e,r,n);case\"base64\":return F(this,e,r,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,e,r,n);default:if(s)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function N(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function B(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function O(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(t,e,r,n,o){return o||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function M(t,e,r,n,o){return o||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):r>i&&(r=i),r0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||L(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):B(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):B(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return M(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return M(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError(\"sourceStart out of bounds\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),e.length-r=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(s=r;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(H,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function J(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";e.byteLength=function n(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){var e,r,n=f(t),i=n[0],o=n[1],s=new u(function c(t,e,r){return 3*(e+r)/4-r}(0,i,o)),h=0,l=o>0?i-4:i;for(r=0;r>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===o&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===o&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=16383,a=0,u=r-n;au?u:a+o));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+\"==\")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+\"=\"));return i.join(\"\")};for(var s=[],a=[],u=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,l=c.length;h0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function g(t,e,r){for(var n,i,o=[],a=e;a>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.parseJwt=function t(r){i.Log.debug(\"JoseUtil.parseJwt\");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,h,l,f){i.Log.debug(\"JoseUtil.validateJwt\");try{if(\"RSA\"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\",s),Promise.reject(new Error(\"RSA key missing key material\"));var g=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(g)}else{if(\"EC\"!==s.kty)return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\",s),Promise.reject(new Error(\"EC key missing key material\"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,h,l,f)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(\"JWT validation failed\")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"),Promise.reject(new Error(\"issuer was not provided\"));if(c.iss!==n)return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\",c.iss),Promise.reject(new Error(\"Invalid issuer in token: \"+c.iss));if(!c.aud)return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"),Promise.reject(new Error(\"aud was not provided\"));if(!(c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0))return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\",c.aud),Promise.reject(new Error(\"Invalid audience in token: \"+c.aud));if(c.azp&&c.azp!==o)return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\",c.azp),Promise.reject(new Error(\"Invalid azp in token: \"+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"),Promise.reject(new Error(\"iat was not provided\"));if(h1&&void 0!==arguments[1]?arguments[1]:\"#\";o(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}},{key:\"isOpenIdConnect\",get:function t(){return this.scopes.indexOf(\"openid\")>=0||!!this.id_token}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SignoutRequest.ctor: No url passed\"),new Error(\"url\");for(var f in s&&(r=i.UrlUtility.addQueryParam(r,\"id_token_hint\",s)),a&&(r=i.UrlUtility.addQueryParam(r,\"post_logout_redirect_uri\",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,f,c[f]);this.url=r}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,\"?\");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,y=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;p(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var m=v(this,t.call(this,r));return m._events=new u.UserManagerEvents(r),m._silentRenewService=new n(m),m.settings.automaticSilentRenew&&(i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"),m.startSilentRenew()),m.settings.monitorSession&&(i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"),m._sessionMonitor=new o(m)),m._tokenRevocationClient=new a(m._settings),m._tokenClient=new l(m._settings),m._joseUtil=y,m}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then((function(t){return t?(i.Log.info(\"UserManager.getUser: user loaded\"),e._events.load(t,!1),t):(i.Log.info(\"UserManager.getUser: user not found in storage\"),null)}))},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then((function(){i.Log.info(\"UserManager.removeUser: user removed from storage\"),e._events.unload()}))},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:r\";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then((function(){i.Log.info(\"UserManager.signinRedirect: successful\")}))},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinRedirectCallback: no sub\"),t}))},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:p\";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display=\"popup\",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopup: no sub\")),t}))):(i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"),Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopupCallback: no sub\")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=Object.assign({},r),this._loadUser().then((function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.request_type=\"si:s\",r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))}))},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then((function(t){return t?t.access_token?e._loadUser().then((function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then((function(){return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"),r.id_token=t.id_token||r.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then((function(){return e._events.load(r),r}))}))}return null})):(i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"),Promise.reject(\"No access token returned from token endpoint\")):(i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"),Promise.reject(\"No response returned from token endpoint\"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){return n.settings.getEpochTime().then((function(o){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew,o).then((function(t){return t?t.sub!==e.sub?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"),Promise.reject(new Error(\"sub in id_token does not match current sub\"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"),Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))):t.azp&&t.azp!==e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"),Promise.reject(new Error(\"azp in id_token does not match original azp\"))):!t.azp&&e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"),Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))):void 0:(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"),Promise.reject(new Error(\"Failed to validate id_token\")))}))}))}))},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||\"none\",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilent: no sub\")),t}))):(i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilentCallback: no sub\")),t}))},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then((function(t){var n=t.state;t.response;return\"si:r\"===n.request_type?r.signinRedirectCallback(e):\"si:p\"===n.request_type?r.signinPopupCallback(e):\"si:s\"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error(\"invalid response_type in state\"))}))},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then((function(t){var i=t.state,o=t.response;return i?\"so:r\"===i.request_type?n.signoutRedirectCallback(e):\"so:p\"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error(\"invalid response_type in state\")):o}))},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type=\"si:s\";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt=\"none\",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||\"openid\",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return e.processSigninResponse(t.url).then((function(t){if(i.Log.debug(\"UserManager.querySessionStatus: got signin response\"),t.session_state&&t.profile.sub)return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info(\"querySessionStatus successful, user not authenticated\")})).catch((function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&(\"login_required\"==t.message||\"consent_required\"==t.message||\"interaction_required\"==t.message||\"account_selection_required\"==t.message))return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"),{session_state:t.session_state};throw t}))}))):(i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then((function(t){return n._signinEnd(t.url,e)}))},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"),n.createSigninRequest(e).then((function(e){return i.Log.debug(\"UserManager._signinStart: got signin request\"),o.url=e.url,o.id=e.state.id,t.navigate(o)})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then((function(t){i.Log.debug(\"UserManager._signinEnd: got signin response\");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \",e.profile.sub),Promise.reject(new Error(\"login_required\"));i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\")}return r.storeUser(e).then((function(){return i.Log.debug(\"UserManager._signinEnd: user stored\"),r._events.load(e),e}))}))},e.prototype._signinCallback=function t(e,r){i.Log.debug(\"UserManager._signinCallback\");var n=\"query\"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?\"?\":\"#\";return r.callback(e,void 0,n)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:r\";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then((function(){i.Log.info(\"UserManager.signoutRedirect: successful\")}))},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then((function(t){return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"),t}))},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:p\";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display=\"popup\",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info(\"UserManager.signoutPopup: successful\")}))},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&\"boolean\"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,\"?\").then((function(){i.Log.info(\"UserManager.signoutPopupCallback: successful\")}))},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then((function(t){return n._signoutEnd(t.url)}))},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"),r._loadUser().then((function(n){return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then((function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"),e.id_token_hint=s),r.removeUser().then((function(){return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"),r.createSignoutRequest(e).then((function(e){return i.Log.debug(\"UserManager._signoutStart: got signout request\"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)}))}))}))})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then((function(t){return i.Log.debug(\"UserManager._signoutEnd: got signout response\"),t}))},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then((function(t){return e._revokeInternal(t,!0).then((function(r){if(r)return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then((function(){i.Log.debug(\"UserManager.revokeAccessToken: user stored\"),e._events.load(t)}))}))})).then((function(){i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\")}))},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then((function(t){return n._revokeRefreshTokenInternal(s,r).then((function(e){return t||e||i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(\".\")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,\"refresh_token\").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug(\"UserManager._loadUser: user storageString loaded\"),a.User.fromStorageString(t)):(i.Log.debug(\"UserManager._loadUser: no user storageString\"),null)}))},e.prototype.storeUser=function t(e){if(e){i.Log.debug(\"UserManager.storeUser: storing user\");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug(\"storeUser.storeUser: removing user\"),this._userStore.remove(this._userStoreKey)},n(e,[{key:\"_redirectNavigator\",get:function t(){return this.settings.redirectNavigator}},{key:\"_popupNavigator\",get:function t(){return this.settings.popupNavigator}},{key:\"_iframeNavigator\",get:function t(){return this.settings.iframeNavigator}},{key:\"_userStore\",get:function t(){return this.settings.userStore}},{key:\"events\",get:function t(){return this._events}},{key:\"_userStoreKey\",get:function t(){return\"user:\"+this.settings.authority+\":\"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,g=r.popupWindowFeatures,d=r.popupWindowTarget,p=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?2e3:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,D=void 0!==I&&I,L=r.accessTokenExpiringNotificationTime,N=void 0===L?60:L,U=r.redirectNavigator,B=void 0===U?new o.RedirectNavigator:U,O=r.popupNavigator,j=void 0===O?new s.PopupNavigator:O,M=r.iframeNavigator,H=void 0===M?new a.IFrameNavigator:M,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;l(this,e);var q=f(this,t.call(this,arguments[0]));return q._popup_redirect_uri=n,q._popup_post_logout_redirect_uri=i,q._popupWindowFeatures=g,q._popupWindowTarget=d,q._silent_redirect_uri=p,q._silentRequestTimeout=v,q._automaticSilentRenew=m,q._validateSubOnSilentRenew=S,q._includeIdTokenInSilentRenew=w,q._accessTokenExpiringNotificationTime=N,q._monitorSession=E,q._monitorAnonymousSession=A,q._checkSessionInterval=P,q._stopCheckSessionOnError=T,R?q._query_status_response_type=R:arguments[0]&&arguments[0].response_type?q._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?\"id_token\":\"code\":q._query_status_response_type=\"id_token\",q._revokeAccessTokenOnSignout=D,q._redirectNavigator=B,q._popupNavigator=j,q._iframeNavigator=H,q._userStore=K,q}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:\"popup_redirect_uri\",get:function t(){return this._popup_redirect_uri}},{key:\"popup_post_logout_redirect_uri\",get:function t(){return this._popup_post_logout_redirect_uri}},{key:\"popupWindowFeatures\",get:function t(){return this._popupWindowFeatures}},{key:\"popupWindowTarget\",get:function t(){return this._popupWindowTarget}},{key:\"silent_redirect_uri\",get:function t(){return this._silent_redirect_uri}},{key:\"silentRequestTimeout\",get:function t(){return this._silentRequestTimeout}},{key:\"automaticSilentRenew\",get:function t(){return this._automaticSilentRenew}},{key:\"validateSubOnSilentRenew\",get:function t(){return this._validateSubOnSilentRenew}},{key:\"includeIdTokenInSilentRenew\",get:function t(){return this._includeIdTokenInSilentRenew}},{key:\"accessTokenExpiringNotificationTime\",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:\"monitorSession\",get:function t(){return this._monitorSession}},{key:\"monitorAnonymousSession\",get:function t(){return this._monitorAnonymousSession}},{key:\"checkSessionInterval\",get:function t(){return this._checkSessionInterval}},{key:\"stopCheckSessionOnError\",get:function t(){return this._stopCheckSessionOnError}},{key:\"query_status_response_type\",get:function t(){return this._query_status_response_type}},{key:\"revokeAccessTokenOnSignout\",get:function t(){return this._revokeAccessTokenOnSignout}},{key:\"redirectNavigator\",get:function t(){return this._redirectNavigator}},{key:\"popupNavigator\",get:function t(){return this._popupNavigator}},{key:\"iframeNavigator\",get:function t(){return this._iframeNavigator}},{key:\"userStore\",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug(\"UserManagerEvents.load\"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug(\"UserManagerEvents.unload\"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;a(this,e);var s=u(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug(\"Timer.init timer \"+this._name+\" skipping initialization since already initialized for expiration:\",this.expiration);else{this.cancel(),i.Log.debug(\"Timer.init timer \"+this._name+\" for duration:\",e),this._expiration=r;var n=5;e createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\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 subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\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 var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\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 var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._subject = null;\n this._refCount = 0;\n this._connection = null;\n if (hasLift(source)) {\n this.lift = source.lift;\n }\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 _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject, undefined, () => {\n this._teardown();\n subject.complete();\n }, (err) => {\n this._teardown();\n subject.error(err);\n }, () => this._teardown())));\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}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).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 { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin(...args) {\n const resultSelector = popResultSelector(args);\n const { args: sources, keys } = argsArgArrayOrObject(args);\n const result = new Observable((subscriber) => {\n const { length } = sources;\n if (!length) {\n subscriber.complete();\n return;\n }\n const values = new Array(length);\n let remainingCompletions = length;\n let remainingEmissions = length;\n for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n let hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, () => remainingCompletions--, undefined, () => {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\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(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n let isComplete = false;\n const endDuration = () => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n const cleanupDuration = () => {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, () => {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = asyncScheduler) {\n return audit(() => timer(duration, scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler = asyncScheduler) {\n return operate((source, subscriber) => {\n let activeTask = null;\n let lastValue = null;\n let lastTime = null;\n const emit = () => {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n const targetTime = lastTime + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = activeTask = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\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 { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function pairwise() {\n return operate((source, subscriber) => {\n let prev;\n let hasPrev = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate((source, subscriber) => {\n let connection = null;\n source._refCount++;\n const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n const sharedConnection = source._connection;\n const conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return on(...args).subscribe(onSubscriber);\n}\n","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? () => EMPTY\n : operate((source, subscriber) => {\n let buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, () => {\n for (const value of buffer) {\n subscriber.next(value);\n }\n subscriber.complete();\n }, undefined, () => {\n buffer = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport const defaultThrottleConfig = {\n leading: true,\n trailing: false,\n};\nexport function throttle(durationSelector, config = defaultThrottleConfig) {\n return operate((source, subscriber) => {\n const { leading, trailing } = config;\n let hasValue = false;\n let sendValue = null;\n let throttled = null;\n let isComplete = false;\n const endThrottling = () => {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n const startThrottle = (value) => (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n const send = () => {\n if (hasValue) {\n hasValue = false;\n const value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { defaultThrottleConfig, throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler = asyncScheduler, config = defaultThrottleConfig) {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\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 }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\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';\nimport { animationFrameProvider } from './animationFrameProvider';\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 = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider.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 const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\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 = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider.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 const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\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 var _a;\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 = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.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 if (id != null) {\n intervalProvider.clearInterval(id);\n }\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;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this._active = false;\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 { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asapScheduler = new AsapScheduler(AsapAction);\nexport const asap = asapScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","import { Immediate } from '../util/Immediate';\nconst { setImmediate, clearImmediate } = Immediate;\nexport const immediateProvider = {\n setImmediate(...args) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate)(...args);\n },\n clearImmediate(handle) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n","export const intervalProvider = {\n setInterval(handler, timeout, ...args) {\n const { delegate } = intervalProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","let nextHandle = 1;\nlet resolved;\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 if (!resolved) {\n resolved = Promise.resolve();\n }\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","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from './isFunction';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\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 { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\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","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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 * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-browser because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return 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/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = rawValue?.toLowerCase() || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDirectionality.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Directionality, deps: [{ token: DIR_DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nDirectionality.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Directionality, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Directionality, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_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 * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDir.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Dir, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: Dir, selector: \"[dir]\", inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, host: { properties: { \"attr.dir\": \"_rawDir\" } }, providers: [{ provide: Directionality, useExisting: Dir }], exportAs: [\"dir\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Dir, decorators: [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir',\n }]\n }], propDecorators: { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\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 */\nclass BidiModule {\n}\nBidiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BidiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBidiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: BidiModule, declarations: [Dir], exports: [Dir] });\nBidiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BidiModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BidiModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir],\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 * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { ElementRef } 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 */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\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 coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(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 */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [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/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\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 * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\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 * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\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/**\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\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n","import { ConnectableObservable, isObservable, of, Subject } from 'rxjs';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken } 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 */\nclass DataSource {\n}\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource. We also can't use `isObservable`\n // here, because of some internal apps.\n return value && typeof value.connect === 'function' && !(value instanceof ConnectableObservable);\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/** DataSource wrapper for a native array. */\nclass ArrayDataSource extends DataSource {\n constructor(_data) {\n super();\n this._data = _data;\n }\n connect() {\n return isObservable(this._data) ? this._data : of(this._data);\n }\n disconnect() { }\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 * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _DisposeViewRepeaterStrategy {\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = viewContainerRef.createEmbeddedView(insertContext.templateRef, insertContext.context, insertContext.index);\n operation = 1 /* _ViewRepeaterOperation.INSERTED */;\n }\n else if (currentIndex == null) {\n viewContainerRef.remove(adjustedPreviousIndex);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n }\n else {\n view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record,\n });\n }\n });\n }\n detach() { }\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 repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _RecycleViewRepeaterStrategy {\n constructor() {\n /**\n * The size of the cache used to store unused views.\n * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n */\n this.viewCacheSize = 20;\n /**\n * View cache that stores embedded view instances that have been previously stamped out,\n * but don't are not currently rendered. The view repeater will reuse these views rather than\n * creating brand new ones.\n *\n * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n */\n this._viewCache = [];\n }\n /** Apply changes to the DOM. */\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n // Rearrange the views to put them in the right location.\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n // Item added.\n const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = view ? 1 /* _ViewRepeaterOperation.INSERTED */ : 0 /* _ViewRepeaterOperation.REPLACED */;\n }\n else if (currentIndex == null) {\n // Item removed.\n this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n }\n else {\n // Item moved.\n view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record,\n });\n }\n });\n }\n detach() {\n for (const view of this._viewCache) {\n view.destroy();\n }\n this._viewCache = [];\n }\n /**\n * Inserts a view for a new item, either from the cache or by creating a new\n * one. Returns `undefined` if the item was inserted into a cached view.\n */\n _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {\n const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);\n if (cachedView) {\n cachedView.context.$implicit = value;\n return undefined;\n }\n const viewArgs = viewArgsFactory();\n return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);\n }\n /** Detaches the view at the given index and inserts into the view cache. */\n _detachAndCacheView(index, viewContainerRef) {\n const detachedView = viewContainerRef.detach(index);\n this._maybeCacheView(detachedView, viewContainerRef);\n }\n /** Moves view at the previous index to the current index. */\n _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {\n const view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n view.context.$implicit = value;\n return view;\n }\n /**\n * Cache the given detached view. If the cache is full, the view will be\n * destroyed.\n */\n _maybeCacheView(view, viewContainerRef) {\n if (this._viewCache.length < this.viewCacheSize) {\n this._viewCache.push(view);\n }\n else {\n const index = viewContainerRef.indexOf(view);\n // The host component could remove views from the container outside of\n // the view repeater. It's unlikely this will occur, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n }\n else {\n viewContainerRef.remove(index);\n }\n }\n }\n /** Inserts a recycled view from the cache at the given index. */\n _insertViewFromCache(index, viewContainerRef) {\n const cachedView = this._viewCache.pop();\n if (cachedView) {\n viewContainerRef.insert(cachedView, index);\n }\n return cachedView || 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 * Class to be used to power selecting one or more options from a list.\n */\nclass SelectionModel {\n constructor(_multiple = false, initiallySelectedValues, _emitChanges = true, compareWith) {\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n this.compareWith = compareWith;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n }\n else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /** Selected values. */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(...values) {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values);\n values.forEach(value => this._markSelected(value));\n oldValues\n .filter(value => !newSelectedSet.has(value))\n .forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true) {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n /**\n * Determines whether a value is selected.\n */\n isSelected(value) {\n if (this.compareWith) {\n for (const otherValue of this._selection) {\n if (this.compareWith(otherValue, value)) {\n return true;\n }\n }\n return false;\n }\n return this._selection.has(value);\n }\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n /** Emits a change event and clears the records of selected and deselected values. */\n _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit,\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n /** Selects a value. */\n _markSelected(value) {\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /** Deselects a value. */\n _unmarkSelected(value) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /** Clears out the selected values. */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n /** Whether there are queued up change to be emitted. */\n _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\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 * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nclass UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id, name) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered) => {\n return listener !== registered;\n });\n };\n }\n ngOnDestroy() {\n this._listeners = [];\n }\n}\nUniqueSelectionDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: UniqueSelectionDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nUniqueSelectionDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: UniqueSelectionDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: UniqueSelectionDispatcher, 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/**\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 * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nconst _VIEW_REPEATER_STRATEGY = new InjectionToken('_ViewRepeater');\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 { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, _DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, getMultipleValuesInSingleSelectionError, isDataSource };\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 MAC_ENTER = 3;\nconst BACKSPACE = 8;\nconst TAB = 9;\nconst NUM_CENTER = 12;\nconst ENTER = 13;\nconst SHIFT = 16;\nconst CONTROL = 17;\nconst ALT = 18;\nconst PAUSE = 19;\nconst CAPS_LOCK = 20;\nconst ESCAPE = 27;\nconst SPACE = 32;\nconst PAGE_UP = 33;\nconst PAGE_DOWN = 34;\nconst END = 35;\nconst HOME = 36;\nconst LEFT_ARROW = 37;\nconst UP_ARROW = 38;\nconst RIGHT_ARROW = 39;\nconst DOWN_ARROW = 40;\nconst PLUS_SIGN = 43;\nconst PRINT_SCREEN = 44;\nconst INSERT = 45;\nconst DELETE = 46;\nconst ZERO = 48;\nconst ONE = 49;\nconst TWO = 50;\nconst THREE = 51;\nconst FOUR = 52;\nconst FIVE = 53;\nconst SIX = 54;\nconst SEVEN = 55;\nconst EIGHT = 56;\nconst NINE = 57;\nconst FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nconst FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nconst QUESTION_MARK = 63;\nconst AT_SIGN = 64;\nconst A = 65;\nconst B = 66;\nconst C = 67;\nconst D = 68;\nconst E = 69;\nconst F = 70;\nconst G = 71;\nconst H = 72;\nconst I = 73;\nconst J = 74;\nconst K = 75;\nconst L = 76;\nconst M = 77;\nconst N = 78;\nconst O = 79;\nconst P = 80;\nconst Q = 81;\nconst R = 82;\nconst S = 83;\nconst T = 84;\nconst U = 85;\nconst V = 86;\nconst W = 87;\nconst X = 88;\nconst Y = 89;\nconst Z = 90;\nconst META = 91; // WIN_KEY_LEFT\nconst MAC_WK_CMD_LEFT = 91;\nconst MAC_WK_CMD_RIGHT = 93;\nconst CONTEXT_MENU = 93;\nconst NUMPAD_ZERO = 96;\nconst NUMPAD_ONE = 97;\nconst NUMPAD_TWO = 98;\nconst NUMPAD_THREE = 99;\nconst NUMPAD_FOUR = 100;\nconst NUMPAD_FIVE = 101;\nconst NUMPAD_SIX = 102;\nconst NUMPAD_SEVEN = 103;\nconst NUMPAD_EIGHT = 104;\nconst NUMPAD_NINE = 105;\nconst NUMPAD_MULTIPLY = 106;\nconst NUMPAD_PLUS = 107;\nconst NUMPAD_MINUS = 109;\nconst NUMPAD_PERIOD = 110;\nconst NUMPAD_DIVIDE = 111;\nconst F1 = 112;\nconst F2 = 113;\nconst F3 = 114;\nconst F4 = 115;\nconst F5 = 116;\nconst F6 = 117;\nconst F7 = 118;\nconst F8 = 119;\nconst F9 = 120;\nconst F10 = 121;\nconst F11 = 122;\nconst F12 = 123;\nconst NUM_LOCK = 144;\nconst SCROLL_LOCK = 145;\nconst FIRST_MEDIA = 166;\nconst FF_MINUS = 173;\nconst MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nconst VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nconst VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nconst FF_MUTE = 181;\nconst FF_VOLUME_DOWN = 182;\nconst LAST_MEDIA = 183;\nconst FF_VOLUME_UP = 183;\nconst SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nconst EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nconst COMMA = 188;\nconst DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nconst PERIOD = 190;\nconst SLASH = 191;\nconst APOSTROPHE = 192;\nconst TILDE = 192;\nconst OPEN_SQUARE_BRACKET = 219;\nconst BACKSLASH = 220;\nconst CLOSE_SQUARE_BRACKET = 221;\nconst SINGLE_QUOTE = 222;\nconst MAC_META = 224;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nfunction hasModifierKey(event, ...modifiers) {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\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 { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, E, EIGHT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, G, H, HOME, I, INSERT, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, N, NINE, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, PRINT_SCREEN, Q, QUESTION_MARK, R, RIGHT_ARROW, S, SCROLL_LOCK, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, T, TAB, THREE, TILDE, TWO, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, hasModifierKey };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\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 scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\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 * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0);\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = 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/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\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 * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\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 * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = 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 * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n}\nScrollStrategyOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollStrategyOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollStrategyOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ScrollDispatcher }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [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/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the possible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\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 * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n}\nBaseOverlayDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBaseOverlayDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [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 * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n }\n else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n }\n else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n}\nOverlayKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone, decorators: [{\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 */\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = (event) => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = (event) => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget\n ? this._pointerDownEventTarget\n : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target) ||\n overlayRef.overlayElement.contains(origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n }\n else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n }\n else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n}\nOverlayOutsideClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayOutsideClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: i0.NgZone, decorators: [{\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 */\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n this._containerElement?.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\nOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\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 * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsDisabled = _animationsDisabled;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = (event) => this._backdropClick.next(event);\n this._backdropTransitionendHandler = (event) => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n // Insert the host into the DOM before attaching the portal, otherwise\n // the animations module will skip animations on repeat attachments.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n const attachResult = this._portalOutlet.attach(portal);\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n // TODO(crisbeto): the null check is here, because the portal outlet returns `any`.\n // We should be guaranteed for the result to be `ComponentRef | EmbeddedViewRef`, but\n // `instanceof EmbeddedViewRef` doesn't appear to work at the moment.\n if (typeof attachResult?.onDestroy === 'function') {\n // In most cases we control the portal and we know when it is being detached so that\n // we can finish the disposal process. The exception is if the user passes in a custom\n // `ViewContainerRef` that isn't destroyed through the overlay API. Note that we use\n // `detach` here instead of `dispose`, because we don't know if the user intends to\n // reattach the overlay at a later point. It also has the advantage of waiting for animations.\n attachResult.onDestroy(() => {\n if (this.hasAttached()) {\n // We have to delay the `detach` call, because detaching immediately prevents\n // other destroy hooks from running. This is likely a framework bug similar to\n // https://github.com/angular/angular/issues/46119\n this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));\n }\n });\n }\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n this._host?.remove();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = { ...this._config, ...sizeConfig };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = { ...this._config, direction: dir };\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._animationsDisabled) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-noop-animation');\n }\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (!this._animationsDisabled && typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n if (this._animationsDisabled) {\n this._disposeBackdrop(backdropToDetach);\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\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// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef &&\n overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos),\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally || (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y,\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) || (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) || (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stretches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin,\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breaking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width,\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height),\n };\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\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/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._alignItems = '';\n this._xPosition = '';\n this._xOffset = '';\n this._width = '';\n this._height = '';\n this._isDisposed = false;\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._xOffset = value;\n this._xPosition = 'left';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._xOffset = value;\n this._xPosition = 'right';\n return this;\n }\n /**\n * Sets the overlay to the start of the viewport, depending on the overlay direction.\n * This will be to the left in LTR layouts and to the right in RTL.\n * @param offset Offset from the edge of the screen.\n */\n start(value = '') {\n this._xOffset = value;\n this._xPosition = 'start';\n return this;\n }\n /**\n * Sets the overlay to the end of the viewport, depending on the overlay direction.\n * This will be to the right in LTR layouts and to the left in RTL.\n * @param offset Offset from the edge of the screen.\n */\n end(value = '') {\n this._xOffset = value;\n this._xPosition = 'end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._xPosition = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n const xPosition = this._xPosition;\n const xOffset = this._xOffset;\n const isRtl = this._overlayRef.getConfig().direction === 'rtl';\n let marginLeft = '';\n let marginRight = '';\n let justifyContent = '';\n if (shouldBeFlushHorizontally) {\n justifyContent = 'flex-start';\n }\n else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n }\n else {\n marginLeft = xOffset;\n }\n }\n else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n }\n else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginRight = xOffset;\n }\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : marginLeft;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = shouldBeFlushHorizontally ? '0' : marginRight;\n parentStyles.justifyContent = justifyContent;\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent =\n parentStyles.alignItems =\n styles.marginTop =\n styles.marginBottom =\n styles.marginLeft =\n styles.marginRight =\n styles.position =\n '';\n this._overlayRef = null;\n this._isDisposed = 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/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n}\nOverlayPositionBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayPositionBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayPositionBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ViewportRuler }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: OverlayContainer }]; } });\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/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor(\n /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsModuleType = _animationsModuleType;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === 'NoopAnimations');\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n}\nOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Overlay });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: ScrollStrategyOptions }, { type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: OverlayPositionBuilder }, { type: OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i5.Directionality }, { type: i6.Location }, { type: OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\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 */\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy');\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n constructor(\n /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n}\nCdkOverlayOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkOverlayOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkOverlayOrigin, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkOverlayOrigin, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether or not the overlay should attach a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() {\n return this._lockPosition;\n }\n set lockPosition(value) {\n this._lockPosition = coerceBooleanProperty(value);\n }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() {\n return this._flexibleDimensions;\n }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() {\n return this._growAfterOpen;\n }\n set growAfterOpen(value) {\n this._growAfterOpen = coerceBooleanProperty(value);\n }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() {\n return this._push;\n }\n set push(value) {\n this._push = coerceBooleanProperty(value);\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = (this._overlayRef = this._overlay.create(this._buildConfig()));\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = (this._position =\n this.positionStrategy || this._createPositionStrategy());\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this._getFlexibleConnectedPositionStrategyOrigin())\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n }\n else {\n return this.origin;\n }\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n}\nCdkConnectedOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkConnectedOverlay.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkConnectedOverlay, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: { origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\"], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"], push: [\"cdkConnectedOverlayPush\", \"push\"] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkConnectedOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n }]\n }], ctorParameters: function () { return [{ type: Overlay }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }] }, { type: i5.Directionality, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }], positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }], positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }], offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }], offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }], width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }], height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }], minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }], minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }], backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }], panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }], viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }], scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }], open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }], disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }], transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }], hasBackdrop: [{\n type: Input,\n args: ['cdkConnectedOverlayHasBackdrop']\n }], lockPosition: [{\n type: Input,\n args: ['cdkConnectedOverlayLockPosition']\n }], flexibleDimensions: [{\n type: Input,\n args: ['cdkConnectedOverlayFlexibleDimensions']\n }], growAfterOpen: [{\n type: Input,\n args: ['cdkConnectedOverlayGrowAfterOpen']\n }], push: [{\n type: Input,\n args: ['cdkConnectedOverlayPush']\n }], backdropClick: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], attach: [{\n type: Output\n }], detach: [{\n type: Output\n }], overlayKeydown: [{\n type: Output\n }], overlayOutsideClick: [{\n type: Output\n }] } });\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\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 OverlayModule {\n}\nOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayModule, declarations: [CdkConnectedOverlay, CdkOverlayOrigin], imports: [BidiModule, PortalModule, ScrollingModule], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] });\nOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: OverlayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n declarations: [CdkConnectedOverlay, CdkOverlayOrigin],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\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 * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return (_document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null);\n }\n}\nFullscreenOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nFullscreenOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\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 { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\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// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n}\ncatch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser &&\n !!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n}\nPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Platform, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_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 */\nclass PlatformModule {\n}\nPlatformModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPlatformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: PlatformModule });\nPlatformModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PlatformModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PlatformModule, decorators: [{\n type: NgModule,\n args: [{}]\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/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\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/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n }\n else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n }\n else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* RtlScrollAxisType.NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* RtlScrollAxisType.NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? 1 /* RtlScrollAxisType.NEGATED */ : 2 /* RtlScrollAxisType.INVERTED */;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document\n ? document.activeElement\n : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n }\n else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target);\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/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha));\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 { Platform, PlatformModule, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { ElementRef, Injector, Directive, EventEmitter, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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 * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a 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 * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef, \n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef, \n /** Contextual data to be passed in to the embedded view. */\n context, \n /** The injector to use for the embedded view. */\n injector) {\n super();\n this.templateRef = templateRef;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n this.injector = injector;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {\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 PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _componentFactoryResolver Used to resolve the component factory.\n * Only required when attaching component portals.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually\n * become a required parameter.\n */\n constructor(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = (portal.componentFactoryResolver || this._componentFactoryResolver);\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !resolver) {\n throw Error('Cannot attach component portal to outlet without a ComponentFactoryResolver.');\n }\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n this.setDisposeFn(() => componentRef.destroy());\n }\n else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef.viewCount > 0) {\n this._appRef.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n this._attachedPortal = portal;\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n this.outletElement.remove();\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {\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 * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nclass CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\nCdkPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkPortal, selector: \"[cdkPortal]\", exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nclass TemplatePortalDirective extends CdkPortal {\n}\nTemplatePortalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nTemplatePortalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: TemplatePortalDirective, selector: \"[cdk-portal], [portal]\", providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ], exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: TemplatePortalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n }]\n }] });\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ``\n */\nclass CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode);\n }\n}\nCdkPortalOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortalOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkPortalOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet'],\n }]\n }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { attached: [{\n type: Output\n }] } });\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n}\nPortalHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nPortalHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: PortalHostDirective, selector: \"[cdkPortalHost], [portalHost]\", inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ], exportAs: [\"cdkPortalHost\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalHostDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n }]\n }] });\nclass PortalModule {\n}\nPortalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPortalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalModule, declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] });\nPortalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: PortalModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\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 * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\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 * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n","import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\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/** The injection token used to specify the virtual scrolling strategy. */\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\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/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = { start: renderedRange.start, end: renderedRange.end };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n}\nCdkFixedSizeVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nCdkFixedSizeVirtualScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ],\n }]\n }], propDecorators: { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\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/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable((observer) => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0\n ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while ((element = element.parentElement));\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n}\nScrollDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [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 * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n}\nCdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkScrollable, selector: \"[cdk-scrollable], [cdkScrollable]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollable, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\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 */\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = (event) => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => (this._viewportSize = null));\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const { width, height } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top ||\n document.body.scrollTop ||\n window.scrollY ||\n documentElement.scrollTop ||\n 0;\n const left = -documentRect.left ||\n document.body.scrollLeft ||\n window.scrollX ||\n documentElement.scrollLeft ||\n 0;\n return { top, left };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n }\n}\nViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ViewportRuler, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ViewportRuler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [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 */\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n}\nCdkVirtualScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkVirtualScrollable, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollable, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\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 */\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n this._appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(value) {\n this._appendOnly = coerceBooleanProperty(value);\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable\n .elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER))\n .subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = { start: 0, end: Math.max(this._renderedRange.end, range.end) };\n }\n this._renderedRangeSubject.next((this._renderedRange = range));\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n }\n else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = { behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = (_from) => super.measureScrollOffset(_from);\n }\n else {\n measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) -\n this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n }\n else if (from) {\n fromRect = from;\n }\n else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth =\n this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n}\nCdkVirtualScrollViewport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }, { token: VIRTUAL_SCROLLABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nCdkVirtualScrollViewport.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: { orientation: \"orientation\", appendOnly: \"appendOnly\" }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, host: { properties: { \"class.cdk-virtual-scroll-orientation-horizontal\": \"orientation === \\\"horizontal\\\"\", \"class.cdk-virtual-scroll-orientation-vertical\": \"orientation !== \\\"horizontal\\\"\" }, classAttribute: \"cdk-virtual-scroll-viewport\" }, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], viewQueries: [{ propertyName: \"_contentWrapper\", first: true, predicate: [\"contentWrapper\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-virtual-scroll-viewport', host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler }, { type: CdkVirtualScrollable, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }] }]; }, propDecorators: { orientation: [{\n type: Input\n }], appendOnly: [{\n type: Input\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\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/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n constructor(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn\n ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)\n : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode\n ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode)\n : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange((record) => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false,\n },\n index,\n };\n }\n}\nCdkVirtualForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: { cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\", cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: i2$1._RecycleViewRepeaterStrategy, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: i0.NgZone }]; }, propDecorators: { cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }], cdkVirtualForTemplateCacheSize: [{\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 * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -\n this.measureScrollOffset(from));\n }\n}\nCdkVirtualScrollableElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollableElement, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollableElement.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkVirtualScrollableElement, selector: \"[cdkVirtualScrollingElement]\", host: { classAttribute: \"cdk-virtual-scrollable\" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }],\n host: {\n 'class': 'cdk-virtual-scrollable',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\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 */\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n}\nCdkVirtualScrollableWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [{ token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollableWindow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: CdkVirtualScrollableWindow, selector: \"cdk-virtual-scroll-viewport[scrollWindow]\", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }],\n }]\n }], ctorParameters: function () { return [{ type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\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 */\nclass CdkScrollableModule {\n}\nCdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollableModule, declarations: [CdkScrollable], exports: [CdkScrollable] });\nCdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollableModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: CdkScrollableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n declarations: [CdkScrollable],\n }]\n }] });\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n}\nScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollingModule, declarations: [CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement], imports: [BidiModule, CdkScrollableModule], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement] });\nScrollingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: ScrollingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, CdkScrollableModule],\n exports: [\n BidiModule,\n CdkScrollableModule,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n declarations: [\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\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/**\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 { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\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